Files
linux/Documentation/netlink/specs/nftables.yaml
Remy D. Farley 568b370f12 doc/netlink: nftables: Fill out operation attributes
Filled out operation attributes:
- newtable
- gettable
- deltable
- destroytable
- newchain
- getchain
- delchain
- destroychain
- newrule
- getrule
- getrule-reset
- delrule
- destroyrule
- newset
- getset
- delset
- destroyset
- newsetelem
- getsetelem
- getsetelem-reset
- delsetelem
- destroysetelem
- getgen
- newobj
- getobj
- delobj
- destroyobj
- newflowtable
- getflowtable
- delflowtable
- destroyflowtable

Signed-off-by: Remy D. Farley <one-d-wide@protonmail.com>
Link: https://patch.msgid.link/20260303195638.381642-6-one-d-wide@protonmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-03-05 18:49:08 -08:00

2124 lines
44 KiB
YAML

# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nftables
protocol: netlink-raw
protonum: 12
doc: >-
Netfilter nftables configuration over netlink.
definitions:
-
name: nfgenmsg
type: struct
members:
-
name: nfgen-family
type: u8
-
name: version
type: u8
-
name: res-id
byte-order: big-endian
type: u16
-
name: meta-keys
type: enum
entries:
- len
- protocol
- priority
- mark
- iif
- oif
- iifname
- oifname
- iftype
- oiftype
- skuid
- skgid
- nftrace
- rtclassid
- secmark
- nfproto
- l4-proto
- bri-iifname
- bri-oifname
- pkttype
- cpu
- iifgroup
- oifgroup
- cgroup
- prandom
- secpath
- iifkind
- oifkind
- bri-iifpvid
- bri-iifvproto
- time-ns
- time-day
- time-hour
- sdif
- sdifname
- bri-broute
-
name: bitwise-ops
type: enum
entries:
-
name: mask-xor # aka bool (old name)
doc: >-
mask-and-xor operation used to implement NOT, AND, OR and XOR boolean
operations
-
name: lshift
-
name: rshift
-
name: and
-
name: or
-
name: xor
-
name: cmp-ops
type: enum
entries:
- eq
- neq
- lt
- lte
- gt
- gte
-
name: object-type
type: enum
entries:
- unspec
- counter
- quota
- ct-helper
- limit
- connlimit
- tunnel
- ct-timeout
- secmark
- ct-expect
- synproxy
-
name: nat-range-flags
type: flags
entries:
- map-ips
- proto-specified
- proto-random
- persistent
- proto-random-fully
- proto-offset
- netmap
-
name: table-flags
type: flags
entries:
- dormant
- owner
- persist
-
name: chain-flags
type: flags
entries:
- base
- hw-offload
- binding
-
name: set-flags
type: flags
entries:
- anonymous
- constant
- interval
- map
- timeout
- eval
- object
- concat
- expr
-
name: set-elem-flags
type: flags
entries:
- interval-end
- catchall
-
name: lookup-flags
type: flags
entries:
- invert
-
name: ct-keys
type: enum
entries:
- state
- direction
- status
- mark
- secmark
- expiration
- helper
- l3protocol
- src
- dst
- protocol
- proto-src
- proto-dst
- labels
- pkts
- bytes
- avgpkt
- zone
- eventmask
- src-ip
- dst-ip
- src-ip6
- dst-ip6
- ct-id
-
name: ct-direction
type: enum
entries:
- original
- reply
-
name: quota-flags
type: flags
entries:
- invert
- depleted
-
name: verdict-code
type: enum
entries:
- name: continue
value: 0xffffffff
- name: break
value: 0xfffffffe
- name: jump
value: 0xfffffffd
- name: goto
value: 0xfffffffc
- name: return
value: 0xfffffffb
- name: drop
value: 0
- name: accept
value: 1
- name: stolen
value: 2
- name: queue
value: 3
- name: repeat
value: 4
-
name: fib-result
type: enum
entries:
- oif
- oifname
- addrtype
-
name: fib-flags
type: flags
entries:
- saddr
- daddr
- mark
- iif
- oif
- present
-
name: reject-types
type: enum
entries:
- icmp-unreach
- tcp-rst
- icmpx-unreach
-
name: reject-inet-code
doc: These codes are mapped to real ICMP and ICMPv6 codes.
type: enum
entries:
- icmpx-no-route
- icmpx-port-unreach
- icmpx-host-unreach
- icmpx-admin-prohibited
-
name: payload-base
type: enum
entries:
- link-layer-header
- network-header
- transport-header
- inner-header
- tun-header
-
name: range-ops
doc: Range operator
type: enum
entries:
- eq
- neq
-
name: registers
doc: |
nf_tables registers.
nf_tables used to have five registers: a verdict register and four data
registers of size 16. The data registers have been changed to 16 registers
of size 4. For compatibility reasons, the NFT_REG_[1-4] registers still
map to areas of size 16, the 4 byte registers are addressed using
NFT_REG32_00 - NFT_REG32_15.
type: enum
entries:
-
name: reg-verdict
-
name: reg-1
-
name: reg-2
-
name: reg-3
-
name: reg-4
-
name: reg32-00
value: 8
-
name: reg32-01
-
name: reg32-02
-
name: reg32-03
-
name: reg32-04
-
name: reg32-05
-
name: reg32-06
-
name: reg32-07
-
name: reg32-08
-
name: reg32-09
-
name: reg32-10
-
name: reg32-11
-
name: reg32-12
-
name: reg32-13
-
name: reg32-14
-
name: reg32-15
-
name: numgen-types
type: enum
entries:
- incremental
- random
-
name: log-level
doc: nf_tables log levels
type: enum
entries:
-
name: emerg
doc: system is unusable
-
name: alert
doc: action must be taken immediately
-
name: crit
doc: critical conditions
-
name: err
doc: error conditions
-
name: warning
doc: warning conditions
-
name: notice
doc: normal but significant condition
-
name: info
doc: informational
-
name: debug
doc: debug-level messages
-
name: audit
doc: enabling audit logging
-
name: log-flags
doc: nf_tables log flags
header: linux/netfilter/nf_log.h
type: flags
entries:
-
name: tcpseq
doc: Log TCP sequence numbers
-
name: tcpopt
doc: Log TCP options
-
name: ipopt
doc: Log IP options
-
name: uid
doc: Log UID owning local socket
-
name: nflog
doc: Unsupported, don't reuse
-
name: macdecode
doc: Decode MAC header
attribute-sets:
-
name: log-attrs
doc: log expression netlink attributes
attributes:
# Mentioned in nft_log_init()
-
name: group
doc: netlink group to send messages to
type: u16
byte-order: big-endian
-
name: prefix
doc: prefix to prepend to log messages
type: string
-
name: snaplen
doc: length of payload to include in netlink message
type: u32
byte-order: big-endian
-
name: qthreshold
doc: queue threshold
type: u16
byte-order: big-endian
-
name: level
doc: log level
type: u32
enum: log-level
byte-order: big-endian
-
name: flags
doc: logging flags
type: u32
enum: log-flags
byte-order: big-endian
-
name: numgen-attrs
doc: nf_tables number generator expression netlink attributes
attributes:
-
name: dreg
doc: destination register
type: u32
enum: registers
-
name: modulus
doc: maximum counter value
type: u32
byte-order: big-endian
-
name: type
doc: operation type
type: u32
byte-order: big-endian
enum: numgen-types
-
name: offset
doc: offset to be added to the counter
type: u32
byte-order: big-endian
-
name: range-attrs
attributes:
# Mentioned in net/netfilter/nft_range.c
-
name: sreg
doc: source register of data to compare
type: u32
byte-order: big-endian
enum: registers
-
name: op
doc: cmp operation
type: u32
byte-order: big-endian
enum: range-ops
checks:
max: 255
-
name: from-data
doc: data range from
type: nest
nested-attributes: data-attrs
-
name: to-data
doc: data range to
type: nest
nested-attributes: data-attrs
-
name: batch-attrs
attributes:
-
name: genid
doc: generation ID for this changeset
type: u32
byte-order: big-endian
-
name: table-attrs
attributes:
-
name: name
type: string
doc: name of the table
-
name: flags
type: u32
byte-order: big-endian
doc: bitmask of flags
enum: table-flags
enum-as-flags: true
-
name: use
type: u32
byte-order: big-endian
doc: number of chains in this table
-
name: handle
type: u64
byte-order: big-endian
doc: numeric handle of the table
-
name: pad
type: pad
-
name: userdata
type: binary
doc: user data
-
name: owner
type: u32
byte-order: big-endian
doc: owner of this table through netlink portID
-
name: chain-attrs
attributes:
-
name: table
type: string
doc: name of the table containing the chain
-
name: handle
type: u64
byte-order: big-endian
doc: numeric handle of the chain
-
name: name
type: string
doc: name of the chain
-
name: hook
type: nest
nested-attributes: nft-hook-attrs
doc: hook specification for basechains
-
name: policy
type: u32
byte-order: big-endian
doc: numeric policy of the chain
-
name: use
type: u32
byte-order: big-endian
doc: number of references to this chain
-
name: type
type: string
doc: type name of the chain
-
name: counters
type: nest
nested-attributes: nft-counter-attrs
doc: counter specification of the chain
-
name: flags
type: u32
byte-order: big-endian
doc: chain flags
enum: chain-flags
enum-as-flags: true
-
name: id
type: u32
byte-order: big-endian
doc: uniquely identifies a chain in a transaction
-
name: userdata
type: binary
doc: user data
-
name: counter-attrs
attributes:
-
name: bytes
type: u64
byte-order: big-endian
-
name: packets
type: u64
byte-order: big-endian
-
name: pad
type: pad
-
name: nft-hook-attrs
attributes:
-
name: num
type: u32
byte-order: big-endian
-
name: priority
type: s32
byte-order: big-endian
-
name: dev
type: string
doc: net device name
-
name: devs
type: nest
nested-attributes: hook-dev-attrs
doc: list of net devices
-
name: hook-dev-attrs
attributes:
-
name: name
type: string
multi-attr: true
-
name: nft-counter-attrs
attributes:
-
name: bytes
type: u64
byte-order: big-endian
-
name: packets
type: u64
byte-order: big-endian
-
name: rule-attrs
attributes:
-
name: table
type: string
doc: name of the table containing the rule
-
name: chain
type: string
doc: name of the chain containing the rule
-
name: handle
type: u64
byte-order: big-endian
doc: numeric handle of the rule
-
name: expressions
type: nest
nested-attributes: expr-list-attrs
doc: list of expressions
-
name: compat
type: nest
nested-attributes: rule-compat-attrs
doc: compatibility specifications of the rule
-
name: position
type: u64
byte-order: big-endian
doc: numeric handle of the previous rule
-
name: userdata
type: binary
doc: user data
-
name: id
type: u32
doc: uniquely identifies a rule in a transaction
-
name: position-id
type: u32
doc: transaction unique identifier of the previous rule
-
name: chain-id
type: u32
doc: add the rule to chain by ID, alternative to chain name
-
name: expr-list-attrs
attributes:
-
name: elem
type: nest
nested-attributes: expr-attrs
multi-attr: true
-
name: expr-attrs
attributes:
-
name: name
type: string
doc: name of the expression type
-
name: data
type: sub-message
sub-message: expr-ops
selector: name
doc: type specific data
-
# Mentioned in nft_parse_compat() in net/netfilter/nft_compat.c
name: rule-compat-attrs
attributes:
-
name: proto
type: u32
byte-order: big-endian
doc: numeric value of the handled protocol
-
name: flags
type: u32
byte-order: big-endian
doc: bitmask of flags
-
name: set-attrs
attributes:
-
name: table
type: string
doc: table name
-
name: name
type: string
doc: set name
-
name: flags
type: u32
enum: set-flags
byte-order: big-endian
doc: bitmask of enum nft_set_flags
-
name: key-type
type: u32
byte-order: big-endian
doc: key data type, informational purpose only
-
name: key-len
type: u32
byte-order: big-endian
doc: key data length
-
name: data-type
type: u32
byte-order: big-endian
doc: mapping data type
-
name: data-len
type: u32
byte-order: big-endian
doc: mapping data length
-
name: policy
type: u32
byte-order: big-endian
doc: selection policy
-
name: desc
type: nest
nested-attributes: set-desc-attrs
doc: set description
-
name: id
type: u32
doc: uniquely identifies a set in a transaction
-
name: timeout
type: u64
doc: default timeout value
-
name: gc-interval
type: u32
doc: garbage collection interval
-
name: userdata
type: binary
doc: user data
-
name: pad
type: pad
-
name: obj-type
type: u32
byte-order: big-endian
doc: stateful object type
-
name: handle
type: u64
byte-order: big-endian
doc: set handle
-
name: expr
type: nest
nested-attributes: expr-attrs
doc: set expression
multi-attr: true
-
name: expressions
type: nest
nested-attributes: set-list-attrs
doc: list of expressions
-
name: type
type: string
doc: set backend type
-
name: count
type: u32
byte-order: big-endian
doc: number of set elements
-
name: set-desc-attrs
attributes:
-
name: size
type: u32
byte-order: big-endian
doc: number of elements in set
-
name: concat
type: nest
nested-attributes: set-desc-concat-attrs
doc: description of field concatenation
multi-attr: true
-
name: set-desc-concat-attrs
attributes:
-
name: elem
type: nest
nested-attributes: set-field-attrs
-
name: set-field-attrs
attributes:
-
name: len
type: u32
byte-order: big-endian
-
name: set-list-attrs
attributes:
-
name: elem
type: nest
nested-attributes: expr-attrs
multi-attr: true
-
name: setelem-attrs
attributes:
-
name: key
type: nest
nested-attributes: data-attrs
doc: key value
-
name: data
type: nest
nested-attributes: data-attrs
doc: data value of mapping
-
name: flags
type: binary
doc: bitmask of nft_set_elem_flags
-
name: timeout
type: u64
doc: timeout value
-
name: expiration
type: u64
doc: expiration time
-
name: userdata
type: binary
doc: user data
-
name: expr
type: nest
nested-attributes: expr-attrs
doc: expression
-
name: objref
type: string
doc: stateful object reference
-
name: key-end
type: nest
nested-attributes: data-attrs
doc: closing key value
-
name: expressions
type: nest
nested-attributes: expr-list-attrs
doc: list of expressions
-
name: setelem-list-elem-attrs
attributes:
-
name: elem
type: nest
nested-attributes: setelem-attrs
multi-attr: true
-
name: setelem-list-attrs
attributes:
-
name: table
type: string
-
name: set
type: string
-
name: elements
type: nest
nested-attributes: setelem-list-elem-attrs
-
name: set-id
type: u32
-
name: gen-attrs
attributes:
-
name: id
type: u32
byte-order: big-endian
doc: ruleset generation id
-
name: proc-pid
type: u32
byte-order: big-endian
-
name: proc-name
type: string
-
name: obj-attrs
attributes:
-
name: table
type: string
doc: name of the table containing the expression
-
name: name
type: string
doc: name of this expression type
-
name: type
type: u32
enum: object-type
byte-order: big-endian
doc: stateful object type
-
name: data
type: sub-message
sub-message: obj-data
selector: type
doc: stateful object data
-
name: use
type: u32
byte-order: big-endian
doc: number of references to this expression
-
name: handle
type: u64
byte-order: big-endian
doc: object handle
-
name: pad
type: pad
-
name: userdata
type: binary
doc: user data
-
name: quota-attrs
attributes:
-
name: bytes
type: u64
byte-order: big-endian
-
name: flags
type: u32
byte-order: big-endian
enum: quota-flags
-
name: pad
type: pad
-
name: consumed
type: u64
byte-order: big-endian
-
name: flowtable-attrs
attributes:
-
name: table
type: string
-
name: name
type: string
-
name: hook
type: nest
nested-attributes: flowtable-hook-attrs
-
name: use
type: u32
byte-order: big-endian
-
name: handle
type: u64
byte-order: big-endian
-
name: pad
type: pad
-
name: flags
type: u32
byte-order: big-endian
-
name: flowtable-hook-attrs
attributes:
-
name: num
type: u32
byte-order: big-endian
-
name: priority
type: u32
byte-order: big-endian
-
name: devs
type: nest
nested-attributes: hook-dev-attrs
-
name: expr-bitwise-attrs
doc: |
The bitwise expression supports boolean and shift operations. It
implements the boolean operations by performing the following
operation::
dreg = (sreg & mask) ^ xor
with these mask and xor values:
op mask xor
---- ---- ---
NOT: 1 1
OR: ~x x
XOR: 1 x
AND: x 0
attributes:
-
name: sreg
type: u32
byte-order: big-endian
-
name: dreg
type: u32
byte-order: big-endian
-
name: len
type: u32
byte-order: big-endian
-
name: mask
type: nest
nested-attributes: data-attrs
-
name: xor
type: nest
nested-attributes: data-attrs
-
name: op
type: u32
byte-order: big-endian
enum: bitwise-ops
checks:
max: 255
-
name: data
type: nest
nested-attributes: data-attrs
-
name: expr-cmp-attrs
attributes:
-
name: sreg
type: u32
byte-order: big-endian
-
name: op
type: u32
byte-order: big-endian
enum: cmp-ops
-
name: data
type: nest
nested-attributes: data-attrs
-
name: data-attrs
attributes:
-
name: value
type: binary
# sub-type: u8
-
name: verdict
type: nest
nested-attributes: verdict-attrs
-
name: verdict-attrs
attributes:
-
name: code
doc: nf_tables verdict
type: u32
byte-order: big-endian
enum: verdict-code
-
name: chain
doc: jump target chain name
type: string
-
name: chain-id
doc: jump target chain ID
type: u32
byte-order: big-endian
-
name: expr-counter-attrs
attributes:
-
name: bytes
type: u64
byte-order: big-endian
doc: Number of bytes
-
name: packets
type: u64
byte-order: big-endian
doc: Number of packets
-
name: pad
type: pad
-
name: expr-fib-attrs
attributes:
-
name: dreg
type: u32
byte-order: big-endian
-
name: result
type: u32
byte-order: big-endian
enum: fib-result
-
name: flags
type: u32
byte-order: big-endian
enum: fib-flags
-
name: expr-ct-attrs
attributes:
-
name: dreg
type: u32
byte-order: big-endian
-
name: key
type: u32
byte-order: big-endian
enum: ct-keys
-
name: direction
type: u8
enum: ct-direction
-
name: sreg
type: u32
byte-order: big-endian
-
name: expr-flow-offload-attrs
attributes:
-
name: name
type: string
doc: Flow offload table name
-
name: expr-immediate-attrs
attributes:
-
name: dreg
type: u32
byte-order: big-endian
-
name: data
type: nest
nested-attributes: data-attrs
-
name: expr-lookup-attrs
attributes:
-
name: set
type: string
doc: Name of set to use
-
name: set-id
type: u32
byte-order: big-endian
doc: ID of set to use
-
name: sreg
type: u32
byte-order: big-endian
-
name: dreg
type: u32
byte-order: big-endian
-
name: flags
type: u32
byte-order: big-endian
enum: lookup-flags
-
name: expr-masq-attrs
attributes:
-
name: flags
type: u32
byte-order: big-endian
enum: nat-range-flags
enum-as-flags: true
-
name: reg-proto-min
type: u32
byte-order: big-endian
enum: registers
-
name: reg-proto-max
type: u32
byte-order: big-endian
enum: registers
-
name: expr-meta-attrs
attributes:
-
name: dreg
type: u32
byte-order: big-endian
-
name: key
type: u32
byte-order: big-endian
enum: meta-keys
-
name: sreg
type: u32
byte-order: big-endian
-
name: expr-nat-attrs
attributes:
-
name: type
type: u32
byte-order: big-endian
-
name: family
type: u32
byte-order: big-endian
-
name: reg-addr-min
type: u32
byte-order: big-endian
-
name: reg-addr-max
type: u32
byte-order: big-endian
-
name: reg-proto-min
type: u32
byte-order: big-endian
-
name: reg-proto-max
type: u32
byte-order: big-endian
-
name: flags
type: u32
byte-order: big-endian
enum: nat-range-flags
enum-as-flags: true
-
name: expr-payload-attrs
doc: nf_tables payload expression netlink attributes
attributes:
-
name: dreg
doc: destination register to load data into
type: u32
byte-order: big-endian
enum: registers
-
name: base
doc: payload base
type: u32
enum: payload-base
byte-order: big-endian
-
name: offset
doc: payload offset relative to base
type: u32
byte-order: big-endian
-
name: len
doc: payload length
type: u32
byte-order: big-endian
-
name: sreg
doc: source register to load data from
type: u32
byte-order: big-endian
enum: registers
-
name: csum-type
doc: checksum type
type: u32
byte-order: big-endian
-
name: csum-offset
doc: checksum offset relative to base
type: u32
byte-order: big-endian
-
name: csum-flags
doc: checksum flags
type: u32
byte-order: big-endian
-
name: expr-reject-attrs
attributes:
-
name: type
type: u32
byte-order: big-endian
enum: reject-types
-
name: icmp-code
type: u8
-
name: expr-target-attrs
attributes:
-
name: name
type: string
-
name: rev
type: u32
byte-order: big-endian
-
name: info
type: binary
-
name: expr-tproxy-attrs
attributes:
-
name: family
type: u32
byte-order: big-endian
-
name: reg-addr
type: u32
byte-order: big-endian
-
name: reg-port
type: u32
byte-order: big-endian
-
name: expr-objref-attrs
attributes:
-
name: imm-type
type: u32
byte-order: big-endian
-
name: imm-name
type: string
doc: object name
-
name: set-sreg
type: u32
byte-order: big-endian
-
name: set-name
type: string
doc: name of object map
-
name: set-id
type: u32
byte-order: big-endian
doc: id of object map
-
name: compat-target-attrs
header: linux/netfilter/nf_tables_compat.h
attributes:
-
name: name
type: string
checks:
max-len: 32
-
name: rev
type: u32
byte-order: big-endian
checks:
max: 255
-
name: info
type: binary
-
name: compat-match-attrs
header: linux/netfilter/nf_tables_compat.h
attributes:
-
name: name
type: string
checks:
max-len: 32
-
name: rev
type: u32
byte-order: big-endian
checks:
max: 255
-
name: info
type: binary
-
name: compat-attrs
header: linux/netfilter/nf_tables_compat.h
attributes:
-
name: name
type: string
checks:
max-len: 32
-
name: rev
type: u32
byte-order: big-endian
checks:
max: 255
-
name: type
type: u32
byte-order: big-endian
sub-messages:
-
name: expr-ops
formats:
-
value: bitwise
attribute-set: expr-bitwise-attrs
-
value: cmp
attribute-set: expr-cmp-attrs
-
value: counter
attribute-set: expr-counter-attrs
-
value: ct
attribute-set: expr-ct-attrs
-
value: fib
attribute-set: expr-fib-attrs
-
value: flow_offload
attribute-set: expr-flow-offload-attrs
-
value: immediate
attribute-set: expr-immediate-attrs
-
value: log
attribute-set: log-attrs
-
value: lookup
attribute-set: expr-lookup-attrs
-
value: match
attribute-set: compat-match-attrs
-
value: meta
attribute-set: expr-meta-attrs
-
value: nat
attribute-set: expr-nat-attrs
-
value: numgen
attribute-set: numgen-attrs
-
value: objref
attribute-set: expr-objref-attrs
-
value: payload
attribute-set: expr-payload-attrs
-
value: quota
attribute-set: quota-attrs
-
value: range
attribute-set: range-attrs
-
value: reject
attribute-set: expr-reject-attrs
-
value: target
attribute-set: expr-target-attrs
-
value: tproxy
attribute-set: expr-tproxy-attrs
# There're more sub-messages to go:
# grep -A10 nft_expr_type
# and look for .name\s*=\s*"..."
-
name: obj-data
formats:
-
value: counter
attribute-set: counter-attrs
-
value: quota
attribute-set: quota-attrs
operations:
enum-model: directional
list:
-
name: batch-begin
doc: Start a batch of operations
attribute-set: batch-attrs
fixed-header: nfgenmsg
do:
request:
value: 0x10
attributes:
- genid
reply:
value: 0x10
attributes:
- genid
-
name: batch-end
doc: Finish a batch of operations
attribute-set: batch-attrs
fixed-header: nfgenmsg
do:
request:
value: 0x11
attributes:
- genid
-
name: newtable
doc: Create a new table.
attribute-set: table-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa00
attributes:
# Mentioned in nf_tables_newtable()
- name
- flags
- userdata
-
name: gettable
doc: Get / dump tables.
attribute-set: table-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa01
attributes:
# Mentioned in nf_tables_gettable()
- name
reply:
value: 0xa00
attributes: &get-table
# Mentioned in nf_tables_fill_table_info()
- name
- use
- handle
- flags
- owner
- userdata
dump:
reply:
attributes: *get-table
-
name: deltable
doc: Delete an existing table.
attribute-set: table-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa02
attributes: &del-table
# Mentioned in nf_tables_deltable()
- name
- handle
-
name: destroytable
doc: |
Delete an existing table with destroy semantics (ignoring ENOENT
errors).
attribute-set: table-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1a
attributes: *del-table
-
name: newchain
doc: Create a new chain.
attribute-set: chain-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa03
attributes:
# Mentioned in nf_tables_newchain()
- table
- handle
- policy
- flags
# Mentioned in nf_tables_updchain()
- hook
- name
- counters
# Mentioned in nf_tables_addchain()
- userdata
# Mentioned in nft_chain_parse_hook()
- type
-
name: getchain
doc: Get / dump chains.
attribute-set: chain-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa04
attributes:
# Mentioned in nf_tables_getchain()
- table
- name
reply:
value: 0xa03
attributes: &get-chain
# Mentioned in nf_tables_fill_chain_info()
- table
- name
- handle
- hook
- policy
- type
- flags
- counters
- id
- use
- userdata
dump:
reply:
attributes: *get-chain
-
name: delchain
doc: Delete an existing chain.
attribute-set: chain-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa05
attributes: &del-chain
# Mentioned in nf_tables_delchain()
- table
- handle
- name
- hook
-
name: destroychain
doc: |
Delete an existing chain with destroy semantics (ignoring ENOENT
errors).
attribute-set: chain-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1b
attributes: *del-chain
-
name: newrule
doc: Create a new rule.
attribute-set: rule-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa06
attributes:
# Mentioned in nf_tables_newrule()
- table
- chain
- chain-id
- handle
- position
- position-id
- expressions
- userdata
- compat
-
name: getrule
doc: Get / dump rules.
attribute-set: rule-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa07
attributes: &get-rule-request
# Mentioned in nf_tables_getrule_single()
- table
- chain
- handle
reply:
value: 0xa06
attributes: &get-rule
# Mentioned in nf_tables_fill_rule_info()
- table
- chain
- handle
- position
- expressions
- userdata
dump:
request:
attributes:
# Mentioned in nf_tables_dump_rules_start()
- table
- chain
reply:
attributes: *get-rule
-
name: getrule-reset
doc: Get / dump rules and reset stateful expressions.
attribute-set: rule-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa19
attributes: *get-rule-request
reply:
value: 0xa06
attributes: *get-rule
dump:
request:
attributes: *get-rule-request
reply:
attributes: *get-rule
-
name: delrule
doc: Delete an existing rule.
attribute-set: rule-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa08
attributes: &del-rule
- table
- chain
- handle
- id
-
name: destroyrule
doc: |
Delete an existing rule with destroy semantics (ignoring ENOENT errors).
attribute-set: rule-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1c
attributes: *del-rule
-
name: newset
doc: Create a new set.
attribute-set: set-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa09
attributes:
# Mentioned in nf_tables_newset()
- table
- name
- key-len
- id
- key-type
- flags
- data-type
- data-len
- obj-type
- timeout
- gc-interval
- policy
- desc
- userdata
-
name: getset
doc: Get / dump sets.
attribute-set: set-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa0a
attributes:
# Mentioned in nf_tables_getset()
- table
- name
reply:
value: 0xa09
attributes: &get-set
# Mentioned in nf_tables_fill_set()
- table
- name
- handle
- flags
- key-len
- key-type
- data-type
- data-len
- obj-type
- gc-interval
- policy
- userdata
- desc
- expr
- expressions
dump:
request:
attributes:
# Mentioned in nf_tables_getset()
- table
reply:
attributes: *get-set
-
name: delset
doc: Delete an existing set.
attribute-set: set-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa0b
attributes: &del-set
# Mentioned in nf_tables_delset()
- table
- handle
- name
-
name: destroyset
doc: |
Delete an existing set with destroy semantics (ignoring ENOENT errors).
attribute-set: set-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1d
attributes: *del-set
-
name: newsetelem
doc: Create a new set element.
attribute-set: setelem-list-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa0c
attributes:
# Mentioned in nf_tables_newsetelem()
- table
- set
- set-id
- elements
-
name: getsetelem
doc: Get / dump set elements.
attribute-set: setelem-list-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa0d
attributes:
# Mentioned in nf_tables_getsetelem()
- table
- set
- elements
reply:
value: 0xa0c
attributes:
# Mentioned in nf_tables_fill_setelem_info()
- elements
dump:
request:
attributes: &dump-set-request
# Mentioned in nft_set_dump_ctx_init()
- table
- set
reply:
attributes: &dump-set
# Mentioned in nf_tables_dump_set()
- table
- set
- elements
-
name: getsetelem-reset
doc: Get / dump set elements and reset stateful expressions.
attribute-set: setelem-list-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa21
attributes:
# Mentioned in nf_tables_getsetelem_reset()
- elements
reply:
value: 0xa0c
attributes:
# Mentioned in nf_tables_dumpreset_set()
- table
- set
- elements
dump:
request:
attributes: *dump-set-request
reply:
attributes: *dump-set
-
name: delsetelem
doc: Delete an existing set element.
attribute-set: setelem-list-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa0e
attributes: &del-setelem
# Mentioned in nf_tables_delsetelem()
- table
- set
- elements
-
name: destroysetelem
doc: Delete an existing set element with destroy semantics.
attribute-set: setelem-list-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1e
attributes: *del-setelem
-
name: getgen
doc: Get / dump rule-set generation.
attribute-set: gen-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa10
reply:
value: 0xa0f
attributes: &get-gen
# Mentioned in nf_tables_fill_gen_info()
- id
- proc-pid
- proc-name
dump:
reply:
attributes: *get-gen
-
name: newobj
doc: Create a new stateful object.
attribute-set: obj-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa12
attributes:
# Mentioned in nf_tables_newobj()
- type
- name
- data
- table
- userdata
-
name: getobj
doc: Get / dump stateful objects.
attribute-set: obj-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa13
attributes:
# Mentioned in nf_tables_getobj_single()
- name
- type
- table
reply:
value: 0xa12
attributes: &obj-info
# Mentioned in nf_tables_fill_obj_info()
- table
- name
- type
- handle
- use
- data
- userdata
dump:
request:
attributes:
# Mentioned in nf_tables_dump_obj_start()
- table
- type
reply:
attributes: *obj-info
-
name: delobj
doc: Delete an existing stateful object.
attribute-set: obj-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa14
attributes:
# Mentioned in nf_tables_delobj()
- table
- name
- type
- handle
-
name: destroyobj
doc: Delete an existing stateful object with destroy semantics.
attribute-set: obj-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa1f
attributes:
# Mentioned in nf_tables_delobj()
- table
- name
- type
- handle
-
name: newflowtable
doc: Create a new flow table.
attribute-set: flowtable-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa16
attributes:
# Mentioned in nf_tables_newflowtable()
- table
- name
- hook
- flags
-
name: getflowtable
doc: Get / dump flow tables.
attribute-set: flowtable-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa17
attributes:
# Mentioned in nf_tables_getflowtable()
- name
- table
reply:
value: 0xa16
attributes: &flowtable-info
# Mentioned in nf_tables_fill_flowtable_info()
- table
- name
- handle
- use
- flags
- hook
dump:
reply:
attributes: *flowtable-info
-
name: delflowtable
doc: Delete an existing flow table.
attribute-set: flowtable-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa18
attributes: &del-flowtable
# Mentioned in nf_tables_delflowtable()
- table
- name
- handle
- hook
-
name: destroyflowtable
doc: Delete an existing flow table with destroy semantics.
attribute-set: flowtable-attrs
fixed-header: nfgenmsg
do:
request:
value: 0xa20
attributes: *del-flowtable
mcast-groups:
list:
-
name: mgmt