From patchwork Mon Jan 21 11:37:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: nevola X-Patchwork-Id: 1028605 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; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="t4bVMSgh"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43jqKc3mYyz9s7T for ; Mon, 21 Jan 2019 22:37:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728137AbfAULhj (ORCPT ); Mon, 21 Jan 2019 06:37:39 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:45637 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727679AbfAULhj (ORCPT ); Mon, 21 Jan 2019 06:37:39 -0500 Received: by mail-wr1-f65.google.com with SMTP id t6so22872501wrr.12 for ; Mon, 21 Jan 2019 03:37:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=A85y3Lr7qYQLGhgvUrUNCBe1kTc/81tyE0cGlEvbt1c=; b=t4bVMSghu4vDISZ2581R84zjG6Y43YCpPF4NJ1wtJN2vMJQR7vA8DrDfzXUbdaMnfZ +1/MTy63rtlfuy46wywCInMGyH4rXeN6QQqGXVbH2uzVLyN4HySJTJ5vuO4fnX0sJHNn PCAco82pEIOEWW+NyRrQV0oLiCXXXmxGCw7PyqMIFHDTCuL3JFvFLjka0UTqEWgtXemP LDcJGCNsDXzVYlKoIJuokYromKPSkdhd/aNG9XLkV/eU/g39ekEV/7fbk5zTgZKTQn1d jtFu0cnKm6UrTNjGydypWG7so9hh3VTBdJBwrvT5aub6dlijDSuxF1lpQTkTW4j9uaVV Ax7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=A85y3Lr7qYQLGhgvUrUNCBe1kTc/81tyE0cGlEvbt1c=; b=NxmaEQRaUgh2zgv67OYi/M2qK9e4JytipIJZrWit9Vu5fRUSnTa8VtKRXYQotYmvhj BbWhetkHDKYC+drxeatonH+Om8qjsxgt4rSE+MNgABi4GM+EQfCz1RIyAN1ezX9LIhpp PNFy4KfhIF8kA1tl3wbN9hAfaJoiur9QhFrSWyFHjcDg43YegEjh5Opaazz+qW191u/c D+E/cJ2En32kLif1ypzbifops1JbOayxDyDZuU4BWdITCOkUQkTUT+7GkeS5uc0NOLMW hl1Gm5ENnKLm/yqP6jFEanbHaNXftWH9nycQuOw9Py7Bb+Y+IxvGv2GYrB9jqaCFpYGX byGA== X-Gm-Message-State: AJcUukeg247frtoJTlriscwxZcdaUI7yV3nChpUpWSOPUbQEYReiMEJc JFViFvmNnGYsmvMKRjLwxNKSh+PH X-Google-Smtp-Source: ALg8bN6kcwGgEwkHDEo6Kc7GqvkW/92aanJZHDU2iZHQamVOL1fuXJGPr8eRz2zmgc2aRqb/Zuz25g== X-Received: by 2002:adf:fe8f:: with SMTP id l15mr12427726wrr.313.1548070657121; Mon, 21 Jan 2019 03:37:37 -0800 (PST) Received: from nevthink ([82.213.198.93]) by smtp.gmail.com with ESMTPSA id g188sm64115514wmf.32.2019.01.21.03.37.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 21 Jan 2019 03:37:36 -0800 (PST) Date: Mon, 21 Jan 2019 12:37:34 +0100 From: Laura Garcia Liebana To: pablo@netfilter.org Cc: netfilter-devel@vger.kernel.org Subject: [PATCH libnftnl 1/2] Revert "expr: add map lookups for numgen statements" Message-ID: <20190121113734.j72x5ze7kixrves7@nevthink> MIME-Version: 1.0 Content-Disposition: inline User-Agent: NeoMutt/20170113 (1.7.2) Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org A better way to implement this from userspace has been found without specific code in the kernel side, revert this. Fixes: b97f45c2ebaa ("expr: add map lookups for numgen statements") Signed-off-by: Laura Garcia Liebana --- include/libnftnl/expr.h | 4 ++-- include/linux/netfilter/nf_tables.h | 4 ++-- src/expr/numgen.c | 43 ------------------------------------- 3 files changed, 4 insertions(+), 47 deletions(-) diff --git a/include/libnftnl/expr.h b/include/libnftnl/expr.h index cb1b54b..7d128fe 100644 --- a/include/libnftnl/expr.h +++ b/include/libnftnl/expr.h @@ -55,8 +55,8 @@ enum { NFTNL_EXPR_NG_MODULUS, NFTNL_EXPR_NG_TYPE, NFTNL_EXPR_NG_OFFSET, - NFTNL_EXPR_NG_SET_NAME, - NFTNL_EXPR_NG_SET_ID, + NFTNL_EXPR_NG_SET_NAME, /* deprecated */ + NFTNL_EXPR_NG_SET_ID, /* deprecated */ }; enum { diff --git a/include/linux/netfilter/nf_tables.h b/include/linux/netfilter/nf_tables.h index 40c71c9..9075cbf 100644 --- a/include/linux/netfilter/nf_tables.h +++ b/include/linux/netfilter/nf_tables.h @@ -1611,8 +1611,8 @@ enum nft_ng_attributes { NFTA_NG_MODULUS, NFTA_NG_TYPE, NFTA_NG_OFFSET, - NFTA_NG_SET_NAME, - NFTA_NG_SET_ID, + NFTA_NG_SET_NAME, /* deprecated */ + NFTA_NG_SET_ID, /* deprecated */ __NFTA_NG_MAX }; #define NFTA_NG_MAX (__NFTA_NG_MAX - 1) diff --git a/src/expr/numgen.c b/src/expr/numgen.c index 70d0d0d..4e0d541 100644 --- a/src/expr/numgen.c +++ b/src/expr/numgen.c @@ -25,10 +25,6 @@ struct nftnl_expr_ng { unsigned int modulus; enum nft_ng_types type; unsigned int offset; - struct { - const char *name; - uint32_t id; - } map; }; static int @@ -50,14 +46,6 @@ nftnl_expr_ng_set(struct nftnl_expr *e, uint16_t type, case NFTNL_EXPR_NG_OFFSET: memcpy(&ng->offset, data, sizeof(ng->offset)); break; - case NFTNL_EXPR_NG_SET_NAME: - ng->map.name = strdup(data); - if (!ng->map.name) - return -1; - break; - case NFTNL_EXPR_NG_SET_ID: - memcpy(&ng->map.id, data, sizeof(ng->map.id)); - break; default: return -1; } @@ -83,12 +71,6 @@ nftnl_expr_ng_get(const struct nftnl_expr *e, uint16_t type, case NFTNL_EXPR_NG_OFFSET: *data_len = sizeof(ng->offset); return &ng->offset; - case NFTNL_EXPR_NG_SET_NAME: - *data_len = strlen(ng->map.name) + 1; - return ng->map.name; - case NFTNL_EXPR_NG_SET_ID: - *data_len = sizeof(ng->map.id); - return &ng->map.id; } return NULL; } @@ -106,14 +88,9 @@ static int nftnl_expr_ng_cb(const struct nlattr *attr, void *data) case NFTA_NG_MODULUS: case NFTA_NG_TYPE: case NFTA_NG_OFFSET: - case NFTA_NG_SET_ID: if (mnl_attr_validate(attr, MNL_TYPE_U32) < 0) abi_breakage(); break; - case NFTA_NG_SET_NAME: - if (mnl_attr_validate(attr, MNL_TYPE_STRING) < 0) - abi_breakage(); - break; } tb[type] = attr; @@ -133,10 +110,6 @@ nftnl_expr_ng_build(struct nlmsghdr *nlh, const struct nftnl_expr *e) mnl_attr_put_u32(nlh, NFTA_NG_TYPE, htonl(ng->type)); if (e->flags & (1 << NFTNL_EXPR_NG_OFFSET)) mnl_attr_put_u32(nlh, NFTA_NG_OFFSET, htonl(ng->offset)); - if (e->flags & (1 << NFTNL_EXPR_NG_SET_NAME)) - mnl_attr_put_str(nlh, NFTA_NG_SET_NAME, ng->map.name); - if (e->flags & (1 << NFTNL_EXPR_NG_SET_ID)) - mnl_attr_put_u32(nlh, NFTA_NG_SET_ID, htonl(ng->map.id)); } static int @@ -165,16 +138,6 @@ nftnl_expr_ng_parse(struct nftnl_expr *e, struct nlattr *attr) ng->offset = ntohl(mnl_attr_get_u32(tb[NFTA_NG_OFFSET])); e->flags |= (1 << NFTNL_EXPR_NG_OFFSET); } - if (tb[NFTA_NG_SET_NAME]) { - ng->map.name = - strdup(mnl_attr_get_str(tb[NFTA_NG_SET_NAME])); - e->flags |= (1 << NFTNL_EXPR_NG_SET_NAME); - } - if (tb[NFTA_NG_SET_ID]) { - ng->map.id = - ntohl(mnl_attr_get_u32(tb[NFTA_NG_SET_ID])); - e->flags |= (1 << NFTNL_EXPR_NG_SET_ID); - } return ret; } @@ -206,12 +169,6 @@ nftnl_expr_ng_snprintf_default(char *buf, size_t size, SNPRINTF_BUFFER_SIZE(ret, remain, offset); } - if (ng->map.id) { - ret = snprintf(buf + offset, remain, "set %s id %u ", - ng->map.name, ng->map.id); - SNPRINTF_BUFFER_SIZE(ret, remain, offset); - } - return offset; }