@@ -205,6 +205,7 @@ static inline void nft_data_copy(u32 *dst, const struct nft_data *src,
205205 * @nla: netlink attributes
206206 * @portid: netlink portID of the original message
207207 * @seq: netlink sequence number
208+ * @flags: modifiers to new request
208209 * @family: protocol family
209210 * @level: depth of the chains
210211 * @report: notify via unicast netlink message
@@ -282,6 +283,7 @@ struct nft_elem_priv { };
282283 *
283284 * @key: element key
284285 * @key_end: closing element key
286+ * @data: element data
285287 * @priv: element private data and extensions
286288 */
287289struct nft_set_elem {
@@ -325,10 +327,10 @@ struct nft_set_iter {
325327 * @dtype: data type
326328 * @dlen: data length
327329 * @objtype: object type
328- * @flags: flags
329330 * @size: number of set elements
330331 * @policy: set policy
331332 * @gc_int: garbage collector interval
333+ * @timeout: element timeout
332334 * @field_len: length of each field in concatenation, bytes
333335 * @field_count: number of concatenated fields in element
334336 * @expr: set must support for expressions
@@ -351,9 +353,9 @@ struct nft_set_desc {
351353/**
352354 * enum nft_set_class - performance class
353355 *
354- * @NFT_LOOKUP_O_1 : constant, O(1)
355- * @NFT_LOOKUP_O_LOG_N : logarithmic, O(log N)
356- * @NFT_LOOKUP_O_N : linear, O(N)
356+ * @NFT_SET_CLASS_O_1 : constant, O(1)
357+ * @NFT_SET_CLASS_O_LOG_N : logarithmic, O(log N)
358+ * @NFT_SET_CLASS_O_N : linear, O(N)
357359 */
358360enum nft_set_class {
359361 NFT_SET_CLASS_O_1 ,
@@ -422,9 +424,13 @@ struct nft_set_ext;
422424 * @remove: remove element from set
423425 * @walk: iterate over all set elements
424426 * @get: get set elements
427+ * @commit: commit set elements
428+ * @abort: abort set elements
425429 * @privsize: function to return size of set private data
430+ * @estimate: estimate the required memory size and the lookup complexity class
426431 * @init: initialize private data of new set instance
427432 * @destroy: destroy private data of set instance
433+ * @gc_init: initialize garbage collection
428434 * @elemsize: element private size
429435 *
430436 * Operations lookup, update and delete have simpler interfaces, are faster
@@ -540,13 +546,16 @@ struct nft_set_elem_expr {
540546 * @policy: set parameterization (see enum nft_set_policies)
541547 * @udlen: user data length
542548 * @udata: user data
543- * @expr: stateful expression
549+ * @pending_update: list of pending update set element
544550 * @ops: set ops
545551 * @flags: set flags
546552 * @dead: set will be freed, never cleared
547553 * @genmask: generation mask
548554 * @klen: key length
549555 * @dlen: data length
556+ * @num_exprs: numbers of exprs
557+ * @exprs: stateful expression
558+ * @catchall_list: list of catch-all set element
550559 * @data: private set data
551560 */
552561struct nft_set {
@@ -692,6 +701,7 @@ extern const struct nft_set_ext_type nft_set_ext_types[];
692701 *
693702 * @len: length of extension area
694703 * @offset: offsets of individual extension types
704+ * @ext_len: length of the expected extension(used to sanity check)
695705 */
696706struct nft_set_ext_tmpl {
697707 u16 len ;
@@ -840,6 +850,7 @@ struct nft_expr_ops;
840850 * @select_ops: function to select nft_expr_ops
841851 * @release_ops: release nft_expr_ops
842852 * @ops: default ops, used when no select_ops functions is present
853+ * @inner_ops: inner ops, used for inner packet operation
843854 * @list: used internally
844855 * @name: Identifier
845856 * @owner: module reference
@@ -881,14 +892,22 @@ struct nft_offload_ctx;
881892 * struct nft_expr_ops - nf_tables expression operations
882893 *
883894 * @eval: Expression evaluation function
895+ * @clone: Expression clone function
884896 * @size: full expression size, including private data size
885897 * @init: initialization function
886898 * @activate: activate expression in the next generation
887899 * @deactivate: deactivate expression in next generation
888900 * @destroy: destruction function, called after synchronize_rcu
901+ * @destroy_clone: destruction clone function
889902 * @dump: function to dump parameters
890- * @type: expression type
891903 * @validate: validate expression, called during loop detection
904+ * @reduce: reduce expression
905+ * @gc: garbage collection expression
906+ * @offload: hardware offload expression
907+ * @offload_action: function to report true/false to allocate one slot or not in the flow
908+ * offload array
909+ * @offload_stats: function to synchronize hardware stats via updating the counter expression
910+ * @type: expression type
892911 * @data: extra data to attach to this expression operation
893912 */
894913struct nft_expr_ops {
@@ -1041,14 +1060,21 @@ struct nft_rule_blob {
10411060/**
10421061 * struct nft_chain - nf_tables chain
10431062 *
1063+ * @blob_gen_0: rule blob pointer to the current generation
1064+ * @blob_gen_1: rule blob pointer to the future generation
10441065 * @rules: list of rules in the chain
10451066 * @list: used internally
10461067 * @rhlhead: used internally
10471068 * @table: table that this chain belongs to
10481069 * @handle: chain handle
10491070 * @use: number of jump references to this chain
1050- * @flags: bitmask of enum nft_chain_flags
1071+ * @flags: bitmask of enum NFTA_CHAIN_FLAGS
1072+ * @bound: bind or not
1073+ * @genmask: generation mask
10511074 * @name: name of the chain
1075+ * @udlen: user data length
1076+ * @udata: user data in the chain
1077+ * @blob_next: rule blob pointer to the next in the chain
10521078 */
10531079struct nft_chain {
10541080 struct nft_rule_blob __rcu * blob_gen_0 ;
@@ -1146,6 +1172,7 @@ struct nft_hook {
11461172 * @hook_list: list of netfilter hooks (for NFPROTO_NETDEV family)
11471173 * @type: chain type
11481174 * @policy: default policy
1175+ * @flags: indicate the base chain disabled or not
11491176 * @stats: per-cpu chain stats
11501177 * @chain: the chain
11511178 * @flow_block: flow block (for hardware offload)
@@ -1274,11 +1301,13 @@ struct nft_object_hash_key {
12741301 * struct nft_object - nf_tables stateful object
12751302 *
12761303 * @list: table stateful object list node
1277- * @key: keys that identify this object
12781304 * @rhlhead: nft_objname_ht node
1305+ * @key: keys that identify this object
12791306 * @genmask: generation mask
12801307 * @use: number of references to this stateful object
12811308 * @handle: unique object handle
1309+ * @udlen: length of user data
1310+ * @udata: user data
12821311 * @ops: object operations
12831312 * @data: object data, layout depends on type
12841313 */
@@ -1344,6 +1373,7 @@ struct nft_object_type {
13441373 * @destroy: release existing stateful object
13451374 * @dump: netlink dump stateful object
13461375 * @update: update stateful object
1376+ * @type: pointer to object type
13471377 */
13481378struct nft_object_ops {
13491379 void (* eval )(struct nft_object * obj ,
@@ -1379,9 +1409,8 @@ void nft_unregister_obj(struct nft_object_type *obj_type);
13791409 * @genmask: generation mask
13801410 * @use: number of references to this flow table
13811411 * @handle: unique object handle
1382- * @dev_name: array of device names
1412+ * @hook_list: hook list for hooks per net_device in flowtables
13831413 * @data: rhashtable and garbage collector
1384- * @ops: array of hooks
13851414 */
13861415struct nft_flowtable {
13871416 struct list_head list ;
0 commit comments