nftables.yaml 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526
  1. # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
  2. name: nftables
  3. protocol: netlink-raw
  4. protonum: 12
  5. doc:
  6. Netfilter nftables configuration over netlink.
  7. definitions:
  8. -
  9. name: nfgenmsg
  10. type: struct
  11. members:
  12. -
  13. name: nfgen-family
  14. type: u8
  15. -
  16. name: version
  17. type: u8
  18. -
  19. name: res-id
  20. byte-order: big-endian
  21. type: u16
  22. -
  23. name: meta-keys
  24. type: enum
  25. entries:
  26. - len
  27. - protocol
  28. - priority
  29. - mark
  30. - iif
  31. - oif
  32. - iifname
  33. - oifname
  34. - iftype
  35. - oiftype
  36. - skuid
  37. - skgid
  38. - nftrace
  39. - rtclassid
  40. - secmark
  41. - nfproto
  42. - l4-proto
  43. - bri-iifname
  44. - bri-oifname
  45. - pkttype
  46. - cpu
  47. - iifgroup
  48. - oifgroup
  49. - cgroup
  50. - prandom
  51. - secpath
  52. - iifkind
  53. - oifkind
  54. - bri-iifpvid
  55. - bri-iifvproto
  56. - time-ns
  57. - time-day
  58. - time-hour
  59. - sdif
  60. - sdifname
  61. - bri-broute
  62. -
  63. name: bitwise-ops
  64. type: enum
  65. entries:
  66. - bool
  67. - lshift
  68. - rshift
  69. -
  70. name: cmp-ops
  71. type: enum
  72. entries:
  73. - eq
  74. - neq
  75. - lt
  76. - lte
  77. - gt
  78. - gte
  79. -
  80. name: object-type
  81. type: enum
  82. entries:
  83. - unspec
  84. - counter
  85. - quota
  86. - ct-helper
  87. - limit
  88. - connlimit
  89. - tunnel
  90. - ct-timeout
  91. - secmark
  92. - ct-expect
  93. - synproxy
  94. -
  95. name: nat-range-flags
  96. type: flags
  97. entries:
  98. - map-ips
  99. - proto-specified
  100. - proto-random
  101. - persistent
  102. - proto-random-fully
  103. - proto-offset
  104. - netmap
  105. -
  106. name: table-flags
  107. type: flags
  108. entries:
  109. - dormant
  110. - owner
  111. - persist
  112. -
  113. name: chain-flags
  114. type: flags
  115. entries:
  116. - base
  117. - hw-offload
  118. - binding
  119. -
  120. name: set-flags
  121. type: flags
  122. entries:
  123. - anonymous
  124. - constant
  125. - interval
  126. - map
  127. - timeout
  128. - eval
  129. - object
  130. - concat
  131. - expr
  132. -
  133. name: lookup-flags
  134. type: flags
  135. entries:
  136. - invert
  137. -
  138. name: ct-keys
  139. type: enum
  140. entries:
  141. - state
  142. - direction
  143. - status
  144. - mark
  145. - secmark
  146. - expiration
  147. - helper
  148. - l3protocol
  149. - src
  150. - dst
  151. - protocol
  152. - proto-src
  153. - proto-dst
  154. - labels
  155. - pkts
  156. - bytes
  157. - avgpkt
  158. - zone
  159. - eventmask
  160. - src-ip
  161. - dst-ip
  162. - src-ip6
  163. - dst-ip6
  164. - ct-id
  165. -
  166. name: ct-direction
  167. type: enum
  168. entries:
  169. - original
  170. - reply
  171. -
  172. name: quota-flags
  173. type: flags
  174. entries:
  175. - invert
  176. - depleted
  177. -
  178. name: verdict-code
  179. type: enum
  180. entries:
  181. - name: continue
  182. value: 0xffffffff
  183. - name: break
  184. value: 0xfffffffe
  185. - name: jump
  186. value: 0xfffffffd
  187. - name: goto
  188. value: 0xfffffffc
  189. - name: return
  190. value: 0xfffffffb
  191. - name: drop
  192. value: 0
  193. - name: accept
  194. value: 1
  195. - name: stolen
  196. value: 2
  197. - name: queue
  198. value: 3
  199. - name: repeat
  200. value: 4
  201. -
  202. name: fib-result
  203. type: enum
  204. entries:
  205. - oif
  206. - oifname
  207. - addrtype
  208. -
  209. name: fib-flags
  210. type: flags
  211. entries:
  212. - saddr
  213. - daddr
  214. - mark
  215. - iif
  216. - oif
  217. - present
  218. -
  219. name: reject-types
  220. type: enum
  221. entries:
  222. - icmp-unreach
  223. - tcp-rst
  224. - icmpx-unreach
  225. attribute-sets:
  226. -
  227. name: empty-attrs
  228. attributes:
  229. -
  230. name: name
  231. type: string
  232. -
  233. name: batch-attrs
  234. attributes:
  235. -
  236. name: genid
  237. type: u32
  238. byte-order: big-endian
  239. -
  240. name: table-attrs
  241. attributes:
  242. -
  243. name: name
  244. type: string
  245. doc: name of the table
  246. -
  247. name: flags
  248. type: u32
  249. byte-order: big-endian
  250. doc: bitmask of flags
  251. enum: table-flags
  252. enum-as-flags: true
  253. -
  254. name: use
  255. type: u32
  256. byte-order: big-endian
  257. doc: number of chains in this table
  258. -
  259. name: handle
  260. type: u64
  261. byte-order: big-endian
  262. doc: numeric handle of the table
  263. -
  264. name: userdata
  265. type: binary
  266. doc: user data
  267. -
  268. name: chain-attrs
  269. attributes:
  270. -
  271. name: table
  272. type: string
  273. doc: name of the table containing the chain
  274. -
  275. name: handle
  276. type: u64
  277. byte-order: big-endian
  278. doc: numeric handle of the chain
  279. -
  280. name: name
  281. type: string
  282. doc: name of the chain
  283. -
  284. name: hook
  285. type: nest
  286. nested-attributes: nft-hook-attrs
  287. doc: hook specification for basechains
  288. -
  289. name: policy
  290. type: u32
  291. byte-order: big-endian
  292. doc: numeric policy of the chain
  293. -
  294. name: use
  295. type: u32
  296. byte-order: big-endian
  297. doc: number of references to this chain
  298. -
  299. name: type
  300. type: string
  301. doc: type name of the chain
  302. -
  303. name: counters
  304. type: nest
  305. nested-attributes: nft-counter-attrs
  306. doc: counter specification of the chain
  307. -
  308. name: flags
  309. type: u32
  310. byte-order: big-endian
  311. doc: chain flags
  312. enum: chain-flags
  313. enum-as-flags: true
  314. -
  315. name: id
  316. type: u32
  317. byte-order: big-endian
  318. doc: uniquely identifies a chain in a transaction
  319. -
  320. name: userdata
  321. type: binary
  322. doc: user data
  323. -
  324. name: counter-attrs
  325. attributes:
  326. -
  327. name: bytes
  328. type: u64
  329. byte-order: big-endian
  330. -
  331. name: packets
  332. type: u64
  333. byte-order: big-endian
  334. -
  335. name: pad
  336. type: pad
  337. -
  338. name: nft-hook-attrs
  339. attributes:
  340. -
  341. name: num
  342. type: u32
  343. byte-order: big-endian
  344. -
  345. name: priority
  346. type: s32
  347. byte-order: big-endian
  348. -
  349. name: dev
  350. type: string
  351. doc: net device name
  352. -
  353. name: devs
  354. type: nest
  355. nested-attributes: hook-dev-attrs
  356. doc: list of net devices
  357. -
  358. name: hook-dev-attrs
  359. attributes:
  360. -
  361. name: name
  362. type: string
  363. multi-attr: true
  364. -
  365. name: nft-counter-attrs
  366. attributes:
  367. -
  368. name: bytes
  369. type: u64
  370. -
  371. name: packets
  372. type: u64
  373. -
  374. name: rule-attrs
  375. attributes:
  376. -
  377. name: table
  378. type: string
  379. doc: name of the table containing the rule
  380. -
  381. name: chain
  382. type: string
  383. doc: name of the chain containing the rule
  384. -
  385. name: handle
  386. type: u64
  387. byte-order: big-endian
  388. doc: numeric handle of the rule
  389. -
  390. name: expressions
  391. type: nest
  392. nested-attributes: expr-list-attrs
  393. doc: list of expressions
  394. -
  395. name: compat
  396. type: nest
  397. nested-attributes: rule-compat-attrs
  398. doc: compatibility specifications of the rule
  399. -
  400. name: position
  401. type: u64
  402. byte-order: big-endian
  403. doc: numeric handle of the previous rule
  404. -
  405. name: userdata
  406. type: binary
  407. doc: user data
  408. -
  409. name: id
  410. type: u32
  411. doc: uniquely identifies a rule in a transaction
  412. -
  413. name: position-id
  414. type: u32
  415. doc: transaction unique identifier of the previous rule
  416. -
  417. name: chain-id
  418. type: u32
  419. doc: add the rule to chain by ID, alternative to chain name
  420. -
  421. name: expr-list-attrs
  422. attributes:
  423. -
  424. name: elem
  425. type: nest
  426. nested-attributes: expr-attrs
  427. multi-attr: true
  428. -
  429. name: expr-attrs
  430. attributes:
  431. -
  432. name: name
  433. type: string
  434. doc: name of the expression type
  435. -
  436. name: data
  437. type: sub-message
  438. sub-message: expr-ops
  439. selector: name
  440. doc: type specific data
  441. -
  442. name: rule-compat-attrs
  443. attributes:
  444. -
  445. name: proto
  446. type: binary
  447. doc: numeric value of the handled protocol
  448. -
  449. name: flags
  450. type: binary
  451. doc: bitmask of flags
  452. -
  453. name: set-attrs
  454. attributes:
  455. -
  456. name: table
  457. type: string
  458. doc: table name
  459. -
  460. name: name
  461. type: string
  462. doc: set name
  463. -
  464. name: flags
  465. type: u32
  466. enum: set-flags
  467. byte-order: big-endian
  468. doc: bitmask of enum nft_set_flags
  469. -
  470. name: key-type
  471. type: u32
  472. byte-order: big-endian
  473. doc: key data type, informational purpose only
  474. -
  475. name: key-len
  476. type: u32
  477. byte-order: big-endian
  478. doc: key data length
  479. -
  480. name: data-type
  481. type: u32
  482. byte-order: big-endian
  483. doc: mapping data type
  484. -
  485. name: data-len
  486. type: u32
  487. byte-order: big-endian
  488. doc: mapping data length
  489. -
  490. name: policy
  491. type: u32
  492. byte-order: big-endian
  493. doc: selection policy
  494. -
  495. name: desc
  496. type: nest
  497. nested-attributes: set-desc-attrs
  498. doc: set description
  499. -
  500. name: id
  501. type: u32
  502. doc: uniquely identifies a set in a transaction
  503. -
  504. name: timeout
  505. type: u64
  506. doc: default timeout value
  507. -
  508. name: gc-interval
  509. type: u32
  510. doc: garbage collection interval
  511. -
  512. name: userdata
  513. type: binary
  514. doc: user data
  515. -
  516. name: pad
  517. type: pad
  518. -
  519. name: obj-type
  520. type: u32
  521. byte-order: big-endian
  522. doc: stateful object type
  523. -
  524. name: handle
  525. type: u64
  526. byte-order: big-endian
  527. doc: set handle
  528. -
  529. name: expr
  530. type: nest
  531. nested-attributes: expr-attrs
  532. doc: set expression
  533. multi-attr: true
  534. -
  535. name: expressions
  536. type: nest
  537. nested-attributes: set-list-attrs
  538. doc: list of expressions
  539. -
  540. name: set-desc-attrs
  541. attributes:
  542. -
  543. name: size
  544. type: u32
  545. byte-order: big-endian
  546. doc: number of elements in set
  547. -
  548. name: concat
  549. type: nest
  550. nested-attributes: set-desc-concat-attrs
  551. doc: description of field concatenation
  552. multi-attr: true
  553. -
  554. name: set-desc-concat-attrs
  555. attributes:
  556. -
  557. name: elem
  558. type: nest
  559. nested-attributes: set-field-attrs
  560. -
  561. name: set-field-attrs
  562. attributes:
  563. -
  564. name: len
  565. type: u32
  566. byte-order: big-endian
  567. -
  568. name: set-list-attrs
  569. attributes:
  570. -
  571. name: elem
  572. type: nest
  573. nested-attributes: expr-attrs
  574. multi-attr: true
  575. -
  576. name: setelem-attrs
  577. attributes:
  578. -
  579. name: key
  580. type: nest
  581. nested-attributes: data-attrs
  582. doc: key value
  583. -
  584. name: data
  585. type: nest
  586. nested-attributes: data-attrs
  587. doc: data value of mapping
  588. -
  589. name: flags
  590. type: binary
  591. doc: bitmask of nft_set_elem_flags
  592. -
  593. name: timeout
  594. type: u64
  595. doc: timeout value
  596. -
  597. name: expiration
  598. type: u64
  599. doc: expiration time
  600. -
  601. name: userdata
  602. type: binary
  603. doc: user data
  604. -
  605. name: expr
  606. type: nest
  607. nested-attributes: expr-attrs
  608. doc: expression
  609. -
  610. name: objref
  611. type: string
  612. doc: stateful object reference
  613. -
  614. name: key-end
  615. type: nest
  616. nested-attributes: data-attrs
  617. doc: closing key value
  618. -
  619. name: expressions
  620. type: nest
  621. nested-attributes: expr-list-attrs
  622. doc: list of expressions
  623. -
  624. name: setelem-list-elem-attrs
  625. attributes:
  626. -
  627. name: elem
  628. type: nest
  629. nested-attributes: setelem-attrs
  630. multi-attr: true
  631. -
  632. name: setelem-list-attrs
  633. attributes:
  634. -
  635. name: table
  636. type: string
  637. -
  638. name: set
  639. type: string
  640. -
  641. name: elements
  642. type: nest
  643. nested-attributes: setelem-list-elem-attrs
  644. -
  645. name: set-id
  646. type: u32
  647. -
  648. name: gen-attrs
  649. attributes:
  650. -
  651. name: id
  652. type: u32
  653. byte-order: big-endian
  654. doc: ruleset generation id
  655. -
  656. name: proc-pid
  657. type: u32
  658. byte-order: big-endian
  659. -
  660. name: proc-name
  661. type: string
  662. -
  663. name: obj-attrs
  664. attributes:
  665. -
  666. name: table
  667. type: string
  668. doc: name of the table containing the expression
  669. -
  670. name: name
  671. type: string
  672. doc: name of this expression type
  673. -
  674. name: type
  675. type: u32
  676. enum: object-type
  677. byte-order: big-endian
  678. doc: stateful object type
  679. -
  680. name: data
  681. type: sub-message
  682. sub-message: obj-data
  683. selector: type
  684. doc: stateful object data
  685. -
  686. name: use
  687. type: u32
  688. byte-order: big-endian
  689. doc: number of references to this expression
  690. -
  691. name: handle
  692. type: u64
  693. byte-order: big-endian
  694. doc: object handle
  695. -
  696. name: pad
  697. type: pad
  698. -
  699. name: userdata
  700. type: binary
  701. doc: user data
  702. -
  703. name: quota-attrs
  704. attributes:
  705. -
  706. name: bytes
  707. type: u64
  708. byte-order: big-endian
  709. -
  710. name: flags
  711. type: u32
  712. byte-order: big-endian
  713. enum: quota-flags
  714. -
  715. name: pad
  716. type: pad
  717. -
  718. name: consumed
  719. type: u64
  720. byte-order: big-endian
  721. -
  722. name: flowtable-attrs
  723. attributes:
  724. -
  725. name: table
  726. type: string
  727. -
  728. name: name
  729. type: string
  730. -
  731. name: hook
  732. type: nest
  733. nested-attributes: flowtable-hook-attrs
  734. -
  735. name: use
  736. type: u32
  737. byte-order: big-endian
  738. -
  739. name: handle
  740. type: u64
  741. byte-order: big-endian
  742. -
  743. name: pad
  744. type: pad
  745. -
  746. name: flags
  747. type: u32
  748. byte-order: big-endian
  749. -
  750. name: flowtable-hook-attrs
  751. attributes:
  752. -
  753. name: num
  754. type: u32
  755. byte-order: big-endian
  756. -
  757. name: priority
  758. type: u32
  759. byte-order: big-endian
  760. -
  761. name: devs
  762. type: nest
  763. nested-attributes: hook-dev-attrs
  764. -
  765. name: expr-bitwise-attrs
  766. attributes:
  767. -
  768. name: sreg
  769. type: u32
  770. byte-order: big-endian
  771. -
  772. name: dreg
  773. type: u32
  774. byte-order: big-endian
  775. -
  776. name: len
  777. type: u32
  778. byte-order: big-endian
  779. -
  780. name: mask
  781. type: nest
  782. nested-attributes: data-attrs
  783. -
  784. name: xor
  785. type: nest
  786. nested-attributes: data-attrs
  787. -
  788. name: op
  789. type: u32
  790. byte-order: big-endian
  791. enum: bitwise-ops
  792. -
  793. name: data
  794. type: nest
  795. nested-attributes: data-attrs
  796. -
  797. name: expr-cmp-attrs
  798. attributes:
  799. -
  800. name: sreg
  801. type: u32
  802. byte-order: big-endian
  803. -
  804. name: op
  805. type: u32
  806. byte-order: big-endian
  807. enum: cmp-ops
  808. -
  809. name: data
  810. type: nest
  811. nested-attributes: data-attrs
  812. -
  813. name: data-attrs
  814. attributes:
  815. -
  816. name: value
  817. type: binary
  818. # sub-type: u8
  819. -
  820. name: verdict
  821. type: nest
  822. nested-attributes: verdict-attrs
  823. -
  824. name: verdict-attrs
  825. attributes:
  826. -
  827. name: code
  828. type: u32
  829. byte-order: big-endian
  830. enum: verdict-code
  831. -
  832. name: chain
  833. type: string
  834. -
  835. name: chain-id
  836. type: u32
  837. -
  838. name: expr-counter-attrs
  839. attributes:
  840. -
  841. name: bytes
  842. type: u64
  843. doc: Number of bytes
  844. -
  845. name: packets
  846. type: u64
  847. doc: Number of packets
  848. -
  849. name: pad
  850. type: pad
  851. -
  852. name: expr-fib-attrs
  853. attributes:
  854. -
  855. name: dreg
  856. type: u32
  857. byte-order: big-endian
  858. -
  859. name: result
  860. type: u32
  861. byte-order: big-endian
  862. enum: fib-result
  863. -
  864. name: flags
  865. type: u32
  866. byte-order: big-endian
  867. enum: fib-flags
  868. -
  869. name: expr-ct-attrs
  870. attributes:
  871. -
  872. name: dreg
  873. type: u32
  874. byte-order: big-endian
  875. -
  876. name: key
  877. type: u32
  878. byte-order: big-endian
  879. enum: ct-keys
  880. -
  881. name: direction
  882. type: u8
  883. enum: ct-direction
  884. -
  885. name: sreg
  886. type: u32
  887. byte-order: big-endian
  888. -
  889. name: expr-flow-offload-attrs
  890. attributes:
  891. -
  892. name: name
  893. type: string
  894. doc: Flow offload table name
  895. -
  896. name: expr-immediate-attrs
  897. attributes:
  898. -
  899. name: dreg
  900. type: u32
  901. byte-order: big-endian
  902. -
  903. name: data
  904. type: nest
  905. nested-attributes: data-attrs
  906. -
  907. name: expr-lookup-attrs
  908. attributes:
  909. -
  910. name: set
  911. type: string
  912. doc: Name of set to use
  913. -
  914. name: set id
  915. type: u32
  916. byte-order: big-endian
  917. doc: ID of set to use
  918. -
  919. name: sreg
  920. type: u32
  921. byte-order: big-endian
  922. -
  923. name: dreg
  924. type: u32
  925. byte-order: big-endian
  926. -
  927. name: flags
  928. type: u32
  929. byte-order: big-endian
  930. enum: lookup-flags
  931. -
  932. name: expr-meta-attrs
  933. attributes:
  934. -
  935. name: dreg
  936. type: u32
  937. byte-order: big-endian
  938. -
  939. name: key
  940. type: u32
  941. byte-order: big-endian
  942. enum: meta-keys
  943. -
  944. name: sreg
  945. type: u32
  946. byte-order: big-endian
  947. -
  948. name: expr-nat-attrs
  949. attributes:
  950. -
  951. name: type
  952. type: u32
  953. byte-order: big-endian
  954. -
  955. name: family
  956. type: u32
  957. byte-order: big-endian
  958. -
  959. name: reg-addr-min
  960. type: u32
  961. byte-order: big-endian
  962. -
  963. name: reg-addr-max
  964. type: u32
  965. byte-order: big-endian
  966. -
  967. name: reg-proto-min
  968. type: u32
  969. byte-order: big-endian
  970. -
  971. name: reg-proto-max
  972. type: u32
  973. byte-order: big-endian
  974. -
  975. name: flags
  976. type: u32
  977. byte-order: big-endian
  978. enum: nat-range-flags
  979. enum-as-flags: true
  980. -
  981. name: expr-payload-attrs
  982. attributes:
  983. -
  984. name: dreg
  985. type: u32
  986. byte-order: big-endian
  987. -
  988. name: base
  989. type: u32
  990. byte-order: big-endian
  991. -
  992. name: offset
  993. type: u32
  994. byte-order: big-endian
  995. -
  996. name: len
  997. type: u32
  998. byte-order: big-endian
  999. -
  1000. name: sreg
  1001. type: u32
  1002. byte-order: big-endian
  1003. -
  1004. name: csum-type
  1005. type: u32
  1006. byte-order: big-endian
  1007. -
  1008. name: csum-offset
  1009. type: u32
  1010. byte-order: big-endian
  1011. -
  1012. name: csum-flags
  1013. type: u32
  1014. byte-order: big-endian
  1015. -
  1016. name: expr-reject-attrs
  1017. attributes:
  1018. -
  1019. name: type
  1020. type: u32
  1021. byte-order: big-endian
  1022. enum: reject-types
  1023. -
  1024. name: icmp-code
  1025. type: u8
  1026. -
  1027. name: expr-target-attrs
  1028. attributes:
  1029. -
  1030. name: name
  1031. type: string
  1032. -
  1033. name: rev
  1034. type: u32
  1035. byte-order: big-endian
  1036. -
  1037. name: info
  1038. type: binary
  1039. -
  1040. name: expr-tproxy-attrs
  1041. attributes:
  1042. -
  1043. name: family
  1044. type: u32
  1045. byte-order: big-endian
  1046. -
  1047. name: reg-addr
  1048. type: u32
  1049. byte-order: big-endian
  1050. -
  1051. name: reg-port
  1052. type: u32
  1053. byte-order: big-endian
  1054. -
  1055. name: expr-objref-attrs
  1056. attributes:
  1057. -
  1058. name: imm-type
  1059. type: u32
  1060. byte-order: big-endian
  1061. -
  1062. name: imm-name
  1063. type: string
  1064. doc: object name
  1065. -
  1066. name: set-sreg
  1067. type: u32
  1068. byte-order: big-endian
  1069. -
  1070. name: set-name
  1071. type: string
  1072. doc: name of object map
  1073. -
  1074. name: set-id
  1075. type: u32
  1076. byte-order: big-endian
  1077. doc: id of object map
  1078. sub-messages:
  1079. -
  1080. name: expr-ops
  1081. formats:
  1082. -
  1083. value: bitwise
  1084. attribute-set: expr-bitwise-attrs
  1085. -
  1086. value: cmp
  1087. attribute-set: expr-cmp-attrs
  1088. -
  1089. value: counter
  1090. attribute-set: expr-counter-attrs
  1091. -
  1092. value: ct
  1093. attribute-set: expr-ct-attrs
  1094. -
  1095. value: fib
  1096. attribute-set: expr-fib-attrs
  1097. -
  1098. value: flow_offload
  1099. attribute-set: expr-flow-offload-attrs
  1100. -
  1101. value: immediate
  1102. attribute-set: expr-immediate-attrs
  1103. -
  1104. value: lookup
  1105. attribute-set: expr-lookup-attrs
  1106. -
  1107. value: meta
  1108. attribute-set: expr-meta-attrs
  1109. -
  1110. value: nat
  1111. attribute-set: expr-nat-attrs
  1112. -
  1113. value: objref
  1114. attribute-set: expr-objref-attrs
  1115. -
  1116. value: payload
  1117. attribute-set: expr-payload-attrs
  1118. -
  1119. value: quota
  1120. attribute-set: quota-attrs
  1121. -
  1122. value: reject
  1123. attribute-set: expr-reject-attrs
  1124. -
  1125. value: target
  1126. attribute-set: expr-target-attrs
  1127. -
  1128. value: tproxy
  1129. attribute-set: expr-tproxy-attrs
  1130. -
  1131. name: obj-data
  1132. formats:
  1133. -
  1134. value: counter
  1135. attribute-set: counter-attrs
  1136. -
  1137. value: quota
  1138. attribute-set: quota-attrs
  1139. operations:
  1140. enum-model: directional
  1141. list:
  1142. -
  1143. name: batch-begin
  1144. doc: Start a batch of operations
  1145. attribute-set: batch-attrs
  1146. fixed-header: nfgenmsg
  1147. do:
  1148. request:
  1149. value: 0x10
  1150. attributes:
  1151. - genid
  1152. reply:
  1153. value: 0x10
  1154. attributes:
  1155. - genid
  1156. -
  1157. name: batch-end
  1158. doc: Finish a batch of operations
  1159. attribute-set: batch-attrs
  1160. fixed-header: nfgenmsg
  1161. do:
  1162. request:
  1163. value: 0x11
  1164. attributes:
  1165. - genid
  1166. -
  1167. name: newtable
  1168. doc: Create a new table.
  1169. attribute-set: table-attrs
  1170. fixed-header: nfgenmsg
  1171. do:
  1172. request:
  1173. value: 0xa00
  1174. attributes:
  1175. - name
  1176. -
  1177. name: gettable
  1178. doc: Get / dump tables.
  1179. attribute-set: table-attrs
  1180. fixed-header: nfgenmsg
  1181. do:
  1182. request:
  1183. value: 0xa01
  1184. attributes:
  1185. - name
  1186. reply:
  1187. value: 0xa00
  1188. attributes:
  1189. - name
  1190. -
  1191. name: deltable
  1192. doc: Delete an existing table.
  1193. attribute-set: table-attrs
  1194. fixed-header: nfgenmsg
  1195. do:
  1196. request:
  1197. value: 0xa02
  1198. attributes:
  1199. - name
  1200. -
  1201. name: destroytable
  1202. doc: Delete an existing table with destroy semantics (ignoring ENOENT errors).
  1203. attribute-set: table-attrs
  1204. fixed-header: nfgenmsg
  1205. do:
  1206. request:
  1207. value: 0xa1a
  1208. attributes:
  1209. - name
  1210. -
  1211. name: newchain
  1212. doc: Create a new chain.
  1213. attribute-set: chain-attrs
  1214. fixed-header: nfgenmsg
  1215. do:
  1216. request:
  1217. value: 0xa03
  1218. attributes:
  1219. - name
  1220. -
  1221. name: getchain
  1222. doc: Get / dump chains.
  1223. attribute-set: chain-attrs
  1224. fixed-header: nfgenmsg
  1225. do:
  1226. request:
  1227. value: 0xa04
  1228. attributes:
  1229. - name
  1230. reply:
  1231. value: 0xa03
  1232. attributes:
  1233. - name
  1234. -
  1235. name: delchain
  1236. doc: Delete an existing chain.
  1237. attribute-set: chain-attrs
  1238. fixed-header: nfgenmsg
  1239. do:
  1240. request:
  1241. value: 0xa05
  1242. attributes:
  1243. - name
  1244. -
  1245. name: destroychain
  1246. doc: Delete an existing chain with destroy semantics (ignoring ENOENT errors).
  1247. attribute-set: chain-attrs
  1248. fixed-header: nfgenmsg
  1249. do:
  1250. request:
  1251. value: 0xa1b
  1252. attributes:
  1253. - name
  1254. -
  1255. name: newrule
  1256. doc: Create a new rule.
  1257. attribute-set: rule-attrs
  1258. fixed-header: nfgenmsg
  1259. do:
  1260. request:
  1261. value: 0xa06
  1262. attributes:
  1263. - name
  1264. -
  1265. name: getrule
  1266. doc: Get / dump rules.
  1267. attribute-set: rule-attrs
  1268. fixed-header: nfgenmsg
  1269. do:
  1270. request:
  1271. value: 0xa07
  1272. attributes:
  1273. - name
  1274. reply:
  1275. value: 0xa06
  1276. attributes:
  1277. - name
  1278. -
  1279. name: getrule-reset
  1280. doc: Get / dump rules and reset stateful expressions.
  1281. attribute-set: rule-attrs
  1282. fixed-header: nfgenmsg
  1283. do:
  1284. request:
  1285. value: 0xa19
  1286. attributes:
  1287. - name
  1288. reply:
  1289. value: 0xa06
  1290. attributes:
  1291. - name
  1292. -
  1293. name: delrule
  1294. doc: Delete an existing rule.
  1295. attribute-set: rule-attrs
  1296. fixed-header: nfgenmsg
  1297. do:
  1298. request:
  1299. value: 0xa08
  1300. attributes:
  1301. - name
  1302. -
  1303. name: destroyrule
  1304. doc: Delete an existing rule with destroy semantics (ignoring ENOENT errors).
  1305. attribute-set: rule-attrs
  1306. fixed-header: nfgenmsg
  1307. do:
  1308. request:
  1309. value: 0xa1c
  1310. attributes:
  1311. - name
  1312. -
  1313. name: newset
  1314. doc: Create a new set.
  1315. attribute-set: set-attrs
  1316. fixed-header: nfgenmsg
  1317. do:
  1318. request:
  1319. value: 0xa09
  1320. attributes:
  1321. - name
  1322. -
  1323. name: getset
  1324. doc: Get / dump sets.
  1325. attribute-set: set-attrs
  1326. fixed-header: nfgenmsg
  1327. do:
  1328. request:
  1329. value: 0xa0a
  1330. attributes:
  1331. - name
  1332. reply:
  1333. value: 0xa09
  1334. attributes:
  1335. - name
  1336. -
  1337. name: delset
  1338. doc: Delete an existing set.
  1339. attribute-set: set-attrs
  1340. fixed-header: nfgenmsg
  1341. do:
  1342. request:
  1343. value: 0xa0b
  1344. attributes:
  1345. - name
  1346. -
  1347. name: destroyset
  1348. doc: Delete an existing set with destroy semantics (ignoring ENOENT errors).
  1349. attribute-set: set-attrs
  1350. fixed-header: nfgenmsg
  1351. do:
  1352. request:
  1353. value: 0xa1d
  1354. attributes:
  1355. - name
  1356. -
  1357. name: newsetelem
  1358. doc: Create a new set element.
  1359. attribute-set: setelem-list-attrs
  1360. fixed-header: nfgenmsg
  1361. do:
  1362. request:
  1363. value: 0xa0c
  1364. attributes:
  1365. - name
  1366. -
  1367. name: getsetelem
  1368. doc: Get / dump set elements.
  1369. attribute-set: setelem-list-attrs
  1370. fixed-header: nfgenmsg
  1371. do:
  1372. request:
  1373. value: 0xa0d
  1374. attributes:
  1375. - name
  1376. reply:
  1377. value: 0xa0c
  1378. attributes:
  1379. - name
  1380. -
  1381. name: getsetelem-reset
  1382. doc: Get / dump set elements and reset stateful expressions.
  1383. attribute-set: setelem-list-attrs
  1384. fixed-header: nfgenmsg
  1385. do:
  1386. request:
  1387. value: 0xa21
  1388. attributes:
  1389. - name
  1390. reply:
  1391. value: 0xa0c
  1392. attributes:
  1393. - name
  1394. -
  1395. name: delsetelem
  1396. doc: Delete an existing set element.
  1397. attribute-set: setelem-list-attrs
  1398. fixed-header: nfgenmsg
  1399. do:
  1400. request:
  1401. value: 0xa0e
  1402. attributes:
  1403. - name
  1404. -
  1405. name: destroysetelem
  1406. doc: Delete an existing set element with destroy semantics.
  1407. attribute-set: setelem-list-attrs
  1408. fixed-header: nfgenmsg
  1409. do:
  1410. request:
  1411. value: 0xa1e
  1412. attributes:
  1413. - name
  1414. -
  1415. name: getgen
  1416. doc: Get / dump rule-set generation.
  1417. attribute-set: gen-attrs
  1418. fixed-header: nfgenmsg
  1419. do:
  1420. request:
  1421. value: 0xa10
  1422. attributes:
  1423. - name
  1424. reply:
  1425. value: 0xa0f
  1426. attributes:
  1427. - name
  1428. -
  1429. name: newobj
  1430. doc: Create a new stateful object.
  1431. attribute-set: obj-attrs
  1432. fixed-header: nfgenmsg
  1433. do:
  1434. request:
  1435. value: 0xa12
  1436. attributes:
  1437. - name
  1438. -
  1439. name: getobj
  1440. doc: Get / dump stateful objects.
  1441. attribute-set: obj-attrs
  1442. fixed-header: nfgenmsg
  1443. do:
  1444. request:
  1445. value: 0xa13
  1446. attributes:
  1447. - name
  1448. reply:
  1449. value: 0xa12
  1450. attributes:
  1451. - name
  1452. -
  1453. name: delobj
  1454. doc: Delete an existing stateful object.
  1455. attribute-set: obj-attrs
  1456. fixed-header: nfgenmsg
  1457. do:
  1458. request:
  1459. value: 0xa14
  1460. attributes:
  1461. - name
  1462. -
  1463. name: destroyobj
  1464. doc: Delete an existing stateful object with destroy semantics.
  1465. attribute-set: obj-attrs
  1466. fixed-header: nfgenmsg
  1467. do:
  1468. request:
  1469. value: 0xa1f
  1470. attributes:
  1471. - name
  1472. -
  1473. name: newflowtable
  1474. doc: Create a new flow table.
  1475. attribute-set: flowtable-attrs
  1476. fixed-header: nfgenmsg
  1477. do:
  1478. request:
  1479. value: 0xa16
  1480. attributes:
  1481. - name
  1482. -
  1483. name: getflowtable
  1484. doc: Get / dump flow tables.
  1485. attribute-set: flowtable-attrs
  1486. fixed-header: nfgenmsg
  1487. do:
  1488. request:
  1489. value: 0xa17
  1490. attributes:
  1491. - name
  1492. reply:
  1493. value: 0xa16
  1494. attributes:
  1495. - name
  1496. -
  1497. name: delflowtable
  1498. doc: Delete an existing flow table.
  1499. attribute-set: flowtable-attrs
  1500. fixed-header: nfgenmsg
  1501. do:
  1502. request:
  1503. value: 0xa18
  1504. attributes:
  1505. - name
  1506. -
  1507. name: destroyflowtable
  1508. doc: Delete an existing flow table with destroy semantics.
  1509. attribute-set: flowtable-attrs
  1510. fixed-header: nfgenmsg
  1511. do:
  1512. request:
  1513. value: 0xa20
  1514. attributes:
  1515. - name
  1516. mcast-groups:
  1517. list:
  1518. -
  1519. name: mgmt