1527 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			1527 lines
		
	
	
		
			30 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:
 | |
|       - bool
 | |
|       - lshift
 | |
|       - rshift
 | |
|   -
 | |
|     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: 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
 | |
| 
 | |
| attribute-sets:
 | |
|   -
 | |
|     name: empty-attrs
 | |
|     attributes:
 | |
|       -
 | |
|         name: name
 | |
|         type: string
 | |
|   -
 | |
|     name: batch-attrs
 | |
|     attributes:
 | |
|       -
 | |
|         name: genid
 | |
|         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: userdata
 | |
|         type: binary
 | |
|         doc: user data
 | |
|   -
 | |
|     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
 | |
|       -
 | |
|         name: packets
 | |
|         type: u64
 | |
|   -
 | |
|     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
 | |
|   -
 | |
|     name: rule-compat-attrs
 | |
|     attributes:
 | |
|       -
 | |
|         name: proto
 | |
|         type: binary
 | |
|         doc: numeric value of the handled protocol
 | |
|       -
 | |
|         name: flags
 | |
|         type: binary
 | |
|         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: 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
 | |
|     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
 | |
|       -
 | |
|         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
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|         enum: verdict-code
 | |
|       -
 | |
|         name: chain
 | |
|         type: string
 | |
|       -
 | |
|         name: chain-id
 | |
|         type: u32
 | |
|   -
 | |
|     name: expr-counter-attrs
 | |
|     attributes:
 | |
|       -
 | |
|         name: bytes
 | |
|         type: u64
 | |
|         doc: Number of bytes
 | |
|       -
 | |
|         name: packets
 | |
|         type: u64
 | |
|         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-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
 | |
|     attributes:
 | |
|       -
 | |
|         name: dreg
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: base
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: offset
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: len
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: sreg
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: csum-type
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: csum-offset
 | |
|         type: u32
 | |
|         byte-order: big-endian
 | |
|       -
 | |
|         name: csum-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
 | |
| 
 | |
| 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: lookup
 | |
|         attribute-set: expr-lookup-attrs
 | |
|       -
 | |
|         value: meta
 | |
|         attribute-set: expr-meta-attrs
 | |
|       -
 | |
|         value: nat
 | |
|         attribute-set: expr-nat-attrs
 | |
|       -
 | |
|         value: objref
 | |
|         attribute-set: expr-objref-attrs
 | |
|       -
 | |
|         value: payload
 | |
|         attribute-set: expr-payload-attrs
 | |
|       -
 | |
|         value: quota
 | |
|         attribute-set: quota-attrs
 | |
|       -
 | |
|         value: reject
 | |
|         attribute-set: expr-reject-attrs
 | |
|       -
 | |
|         value: target
 | |
|         attribute-set: expr-target-attrs
 | |
|       -
 | |
|         value: tproxy
 | |
|         attribute-set: expr-tproxy-attrs
 | |
|   -
 | |
|     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:
 | |
|             - name
 | |
|     -
 | |
|       name: gettable
 | |
|       doc: Get / dump tables.
 | |
|       attribute-set: table-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa01
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa00
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: deltable
 | |
|       doc: Delete an existing table.
 | |
|       attribute-set: table-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa02
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       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:
 | |
|             - name
 | |
|     -
 | |
|       name: newchain
 | |
|       doc: Create a new chain.
 | |
|       attribute-set: chain-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa03
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getchain
 | |
|       doc: Get / dump chains.
 | |
|       attribute-set: chain-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa04
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa03
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delchain
 | |
|       doc: Delete an existing chain.
 | |
|       attribute-set: chain-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa05
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       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:
 | |
|             - name
 | |
|     -
 | |
|       name: newrule
 | |
|       doc: Create a new rule.
 | |
|       attribute-set: rule-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa06
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getrule
 | |
|       doc: Get / dump rules.
 | |
|       attribute-set: rule-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa07
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa06
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getrule-reset
 | |
|       doc: Get / dump rules and reset stateful expressions.
 | |
|       attribute-set: rule-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa19
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa06
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delrule
 | |
|       doc: Delete an existing rule.
 | |
|       attribute-set: rule-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa08
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       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:
 | |
|             - name
 | |
|     -
 | |
|       name: newset
 | |
|       doc: Create a new set.
 | |
|       attribute-set: set-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa09
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getset
 | |
|       doc: Get / dump sets.
 | |
|       attribute-set: set-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa0a
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa09
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delset
 | |
|       doc: Delete an existing set.
 | |
|       attribute-set: set-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa0b
 | |
|           attributes:
 | |
|             - 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:
 | |
|             - name
 | |
|     -
 | |
|       name: newsetelem
 | |
|       doc: Create a new set element.
 | |
|       attribute-set: setelem-list-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa0c
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getsetelem
 | |
|       doc: Get / dump set elements.
 | |
|       attribute-set: setelem-list-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa0d
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa0c
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       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:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa0c
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delsetelem
 | |
|       doc: Delete an existing set element.
 | |
|       attribute-set: setelem-list-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa0e
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: destroysetelem
 | |
|       doc: Delete an existing set element with destroy semantics.
 | |
|       attribute-set: setelem-list-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa1e
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getgen
 | |
|       doc: Get / dump rule-set generation.
 | |
|       attribute-set: gen-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa10
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa0f
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: newobj
 | |
|       doc: Create a new stateful object.
 | |
|       attribute-set: obj-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa12
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getobj
 | |
|       doc: Get / dump stateful objects.
 | |
|       attribute-set: obj-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa13
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa12
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delobj
 | |
|       doc: Delete an existing stateful object.
 | |
|       attribute-set: obj-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa14
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: destroyobj
 | |
|       doc: Delete an existing stateful object with destroy semantics.
 | |
|       attribute-set: obj-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa1f
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: newflowtable
 | |
|       doc: Create a new flow table.
 | |
|       attribute-set: flowtable-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa16
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: getflowtable
 | |
|       doc: Get / dump flow tables.
 | |
|       attribute-set: flowtable-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa17
 | |
|           attributes:
 | |
|             - name
 | |
|         reply:
 | |
|           value: 0xa16
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: delflowtable
 | |
|       doc: Delete an existing flow table.
 | |
|       attribute-set: flowtable-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa18
 | |
|           attributes:
 | |
|             - name
 | |
|     -
 | |
|       name: destroyflowtable
 | |
|       doc: Delete an existing flow table with destroy semantics.
 | |
|       attribute-set: flowtable-attrs
 | |
|       fixed-header: nfgenmsg
 | |
|       do:
 | |
|         request:
 | |
|           value: 0xa20
 | |
|           attributes:
 | |
|             - name
 | |
| 
 | |
| mcast-groups:
 | |
|   list:
 | |
|     -
 | |
|       name: mgmt
 |