From patchwork Tue Jan 9 19:12:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harsha Sharma X-Patchwork-Id: 857698 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netfilter-devel-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="g6stElQT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zGMHP25cCz9sPk for ; Wed, 10 Jan 2018 06:13:21 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935452AbeAITNP (ORCPT ); Tue, 9 Jan 2018 14:13:15 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:36180 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933944AbeAITNK (ORCPT ); Tue, 9 Jan 2018 14:13:10 -0500 Received: by mail-pg0-f65.google.com with SMTP id j2so7420209pgv.3 for ; Tue, 09 Jan 2018 11:13:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=BBmP++1vwJlFqMvVWnyGFFsO2Sb6/4wkAFOOmCa4w+k=; b=g6stElQTwJ1c0aVoP6wANR/TXKQdua9ST4SigGXp+d4/fIzI1fw/o51aG3hbIawiWB pIREHNUfRHxGrDTdjifqslPBR9jLTQqmRvyXAs4OUWnYNQU6LAYmdYD8v4+2pPAdNpAH RFpSVCGQ2SNATnuySHcALrvXZ7y+juAw1qeFLILvZCAgADza8n4931INfXLY2Ft6zwHx KXaWz0GyhtKmcWDyZOp+RRv0pJ+EH9THWEUHIp1aSUrTqEzLve9zMI2BZXM87yEYRYCo 2ZPVZZnm5n7jq4Lhn0hHQwSczx5vNJcusTDhbReloKI7dEf6W/D8APzHIKFu1LiIhWFS cmFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=BBmP++1vwJlFqMvVWnyGFFsO2Sb6/4wkAFOOmCa4w+k=; b=ebK4lE66g8LRLOnmii0h2wiArGD6KcYelR/X9L29I9V1+VfaqTJByEV5EGWxxJDOx5 7jB6bj4rnDo8N0mA5c2QGhTX8W1E7raSNMs81DubcQ7H1IbqA7sxXxjFE7V71abQbKBO vIARfsGdj44eJaXRdeLcsvenP/4/CyH5eqbozPwZA9/Q4rZUwnt0TcYw4yy1/gdHPqeN N84o2jX3/hkpr1ITXbgWP4w8klDnj8+kYmncElgC1i4XYK2smNE1atQcZtL5HcPChPsI syxJK58yu2pPaJcZ3GaIvfRX5QBVgzjAOi0RrX17AshoaX+9EhOAVXrDb4R3aBhO/GzP G9+A== X-Gm-Message-State: AKwxytfwf9qbNDiK1I+FU2AOVJptuKtF5gHK/9S5/g/FDbq/TSW9SbN6 bmfVlqc7tfLB35m28w5m9x8= X-Google-Smtp-Source: ACJfBouzCNq/0tUMpav2/Upd+A7LLi0/WgUrZ6qK5bMDGUZ7Yh4AXkDgY+lgTN1NUqpyTdxnzEcTmw== X-Received: by 10.84.217.20 with SMTP id o20mr4274461pli.263.1515525189954; Tue, 09 Jan 2018 11:13:09 -0800 (PST) Received: from localhost.localdomain ([103.37.201.27]) by smtp.gmail.com with ESMTPSA id x8sm15715617pgr.7.2018.01.09.11.13.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Jan 2018 11:13:09 -0800 (PST) From: Harsha Sharma To: pablo@netfilter.org, harshasharmaiitr@gmail.com Cc: netfilter-devel@vger.kernel.org Subject: [PATCH] netfilter: nf_tables: delete chains via chain handle Date: Wed, 10 Jan 2018 00:42:50 +0530 Message-Id: <20180109191250.13089-1-harshasharmaiitr@gmail.com> X-Mailer: git-send-email 2.11.0 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org This patch allows deletion of chains via unique chain handle which can be listed via '-a' option and table family and table name. Signed-off-by: Harsha Sharma --- net/netfilter/nf_tables_api.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index f12671e0ec48..b4db7bd836d9 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -1660,6 +1660,7 @@ static int nf_tables_delchain(struct net *net, struct sock *nlsk, int family = nfmsg->nfgen_family; struct nft_ctx ctx; u32 use; + u64 handle; int err; afi = nf_tables_afinfo_lookup(net, family, false); @@ -1670,7 +1671,12 @@ static int nf_tables_delchain(struct net *net, struct sock *nlsk, if (IS_ERR(table)) return PTR_ERR(table); - chain = nf_tables_chain_lookup(table, nla[NFTA_CHAIN_NAME], genmask); + if (nla[NFTA_CHAIN_HANDLE]) { + handle = be64_to_cpu(nla_get_be64(nla[NFTA_CHAIN_HANDLE])); + chain = nf_tables_chain_lookup_byhandle(table, handle, genmask); + } else { + chain = nf_tables_chain_lookup(table, nla[NFTA_CHAIN_NAME], genmask); + } if (IS_ERR(chain)) return PTR_ERR(chain);