]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
include: updated nf_tables.h
authorMáté Eckl <ecklm94@gmail.com>
Mon, 28 May 2018 23:11:44 +0000 (01:11 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 28 May 2018 23:14:30 +0000 (01:14 +0200)
Joint work with Pablo.

Signed-off-by: Máté Eckl <ecklm94@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/linux/netfilter/nf_tables.h
src/expr/ct.c
src/expr/rt.c

index 48b095eef96218ede2e55fb71aaed10108c76b13..660168ab924a3b7394578b3968254ded125d3c4e 100644 (file)
@@ -1,10 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 #ifndef _LINUX_NF_TABLES_H
 #define _LINUX_NF_TABLES_H
 
-#define NFT_TABLE_MAXNAMELEN   32
-#define NFT_CHAIN_MAXNAMELEN   32
-#define NFT_SET_MAXNAMELEN     32
-#define NFT_OBJ_MAXNAMELEN     32
+#define NFT_NAME_MAXLEN                256
+#define NFT_TABLE_MAXNAMELEN   NFT_NAME_MAXLEN
+#define NFT_CHAIN_MAXNAMELEN   NFT_NAME_MAXLEN
+#define NFT_SET_MAXNAMELEN     NFT_NAME_MAXLEN
+#define NFT_OBJ_MAXNAMELEN     NFT_NAME_MAXLEN
 #define NFT_USERDATA_MAXLEN    256
 
 /**
@@ -317,7 +319,7 @@ enum nft_set_desc_attributes {
  * @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32)
  * @NFTA_SET_USERDATA: user data (NLA_BINARY)
  * @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*)
- * @NFTA_SET_HANDLE: numerical table handle (NLA_U64)
+ * @NFTA_SET_HANDLE: set handle (NLA_U64)
  */
 enum nft_set_attributes {
        NFTA_SET_UNSPEC,
@@ -822,13 +824,16 @@ enum nft_meta_keys {
  * @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid)
  * @NFT_RT_NEXTHOP4: routing nexthop for IPv4
  * @NFT_RT_NEXTHOP6: routing nexthop for IPv6
+ * @NFT_RT_TCPMSS: fetch current path tcp mss
  */
 enum nft_rt_keys {
        NFT_RT_CLASSID,
        NFT_RT_NEXTHOP4,
        NFT_RT_NEXTHOP6,
        NFT_RT_TCPMSS,
+       __NFT_RT_MAX
 };
+#define NFT_RT_MAX             (__NFT_RT_MAX - 1)
 
 /**
  * enum nft_hash_types - nf_tables hash expression types
@@ -950,7 +955,9 @@ enum nft_ct_keys {
        NFT_CT_DST_IP,
        NFT_CT_SRC_IP6,
        NFT_CT_DST_IP6,
+       __NFT_CT_MAX
 };
+#define NFT_CT_MAX             (__NFT_CT_MAX - 1)
 
 /**
  * enum nft_ct_attributes - nf_tables ct expression netlink attributes
@@ -1259,6 +1266,8 @@ enum nft_objref_attributes {
 enum nft_gen_attributes {
        NFTA_GEN_UNSPEC,
        NFTA_GEN_ID,
+       NFTA_GEN_PROC_PID,
+       NFTA_GEN_PROC_NAME,
        __NFTA_GEN_MAX
 };
 #define NFTA_GEN_MAX           (__NFTA_GEN_MAX - 1)
@@ -1322,10 +1331,10 @@ enum nft_ct_helper_attributes {
  *
  * @NFTA_OBJ_TABLE: name of the table containing the expression (NLA_STRING)
  * @NFTA_OBJ_NAME: name of this expression type (NLA_STRING)
- * @NFTA_OBJ_HANDLE: numeric object handle (NLA_U64)
  * @NFTA_OBJ_TYPE: stateful object type (NLA_U32)
  * @NFTA_OBJ_DATA: stateful object data (NLA_NESTED)
  * @NFTA_OBJ_USE: number of references to this expression (NLA_U32)
+ * @NFTA_OBJ_HANDLE: object handle (NLA_U64)
  */
 enum nft_object_attributes {
        NFTA_OBJ_UNSPEC,
@@ -1335,6 +1344,7 @@ enum nft_object_attributes {
        NFTA_OBJ_DATA,
        NFTA_OBJ_USE,
        NFTA_OBJ_HANDLE,
+       NFTA_OBJ_PAD,
        __NFTA_OBJ_MAX
 };
 #define NFTA_OBJ_MAX           (__NFTA_OBJ_MAX - 1)
@@ -1453,7 +1463,7 @@ enum nft_trace_types {
  * @NFTA_NG_TYPE: operation type (NLA_U32)
  * @NFTA_NG_OFFSET: offset to be added to the counter (NLA_U32)
  * @NFTA_NG_SET_NAME: name of the map to lookup (NLA_STRING)
- * @NFTA_NG_SET_ID: if of the map (NLA_U32)
+ * @NFTA_NG_SET_ID: id of the map (NLA_U32)
  */
 enum nft_ng_attributes {
        NFTA_NG_UNSPEC,
index d4dd1d92c11604fe5ea0631c0d8dbdc1490712d0..39e9be6c5da28cbea85b210184c9bfba54614cbb 100644 (file)
@@ -31,10 +31,6 @@ struct nftnl_expr_ct {
 #define IP_CT_DIR_ORIGINAL     0
 #define IP_CT_DIR_REPLY                1
 
-#ifndef NFT_CT_MAX
-#define NFT_CT_MAX (NFT_CT_DST_IP6 + 1)
-#endif
-
 static int
 nftnl_expr_ct_set(struct nftnl_expr *e, uint16_t type,
                       const void *data, uint32_t data_len)
@@ -152,7 +148,7 @@ nftnl_expr_ct_parse(struct nftnl_expr *e, struct nlattr *attr)
        return 0;
 }
 
-static const char *ctkey2str_array[NFT_CT_MAX] = {
+static const char *ctkey2str_array[NFT_CT_MAX + 1] = {
        [NFT_CT_STATE]          = "state",
        [NFT_CT_DIRECTION]      = "direction",
        [NFT_CT_STATUS]         = "status",
index 62c01a0be0f523edf2802d9281b88b67b6640128..ab56831a8cb5aaa0533f15504bdd29f172922ce8 100644 (file)
 #include <libnftnl/expr.h>
 #include <libnftnl/rule.h>
 
-#ifndef NFT_RT_MAX
-#define NFT_RT_MAX (NFT_RT_TCPMSS + 1)
-#endif
-
 struct nftnl_expr_rt {
        enum nft_rt_keys        key;
        enum nft_registers      dreg;
@@ -116,7 +112,7 @@ nftnl_expr_rt_parse(struct nftnl_expr *e, struct nlattr *attr)
        return 0;
 }
 
-static const char *rt_key2str_array[NFT_RT_MAX] = {
+static const char *rt_key2str_array[NFT_RT_MAX + 1] = {
        [NFT_RT_CLASSID]        = "classid",
        [NFT_RT_NEXTHOP4]       = "nexthop4",
        [NFT_RT_NEXTHOP6]       = "nexthop6",