xref: /linux/Documentation/netlink/specs/conntrack.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: conntrack
4protocol: netlink-raw
5protonum: 12
6
7doc: >-
8  Netfilter connection tracking subsystem over nfnetlink
9
10definitions:
11  -
12    name: nfgenmsg
13    type: struct
14    members:
15      -
16        name: nfgen-family
17        type: u8
18      -
19        name: version
20        type: u8
21      -
22        name: res-id
23        byte-order: big-endian
24        type: u16
25  -
26    name: nf-ct-tcp-flags-mask
27    type: struct
28    members:
29      -
30        name: flags
31        type: u8
32        enum: nf-ct-tcp-flags
33        enum-as-flags: true
34      -
35        name: mask
36        type: u8
37        enum: nf-ct-tcp-flags
38        enum-as-flags: true
39  -
40    name: nf-ct-tcp-flags
41    type: flags
42    entries:
43      - window-scale
44      - sack-perm
45      - close-init
46      - be-liberal
47      - unacked
48      - maxack
49      - challenge-ack
50      - simultaneous-open
51  -
52    name: nf-ct-tcp-state
53    type: enum
54    entries:
55      - none
56      - syn-sent
57      - syn-recv
58      - established
59      - fin-wait
60      - close-wait
61      - last-ack
62      - time-wait
63      - close
64      - syn-sent2
65      - max
66      - ignore
67      - retrans
68      - unack
69      - timeout-max
70  -
71    name: nf-ct-sctp-state
72    type: enum
73    entries:
74      - none
75      - cloned
76      - cookie-wait
77      - cookie-echoed
78      - established
79      - shutdown-sent
80      - shutdown-received
81      - shutdown-ack-sent
82      - shutdown-heartbeat-sent
83  -
84    name: nf-ct-status
85    type: flags
86    entries:
87      - expected
88      - seen-reply
89      - assured
90      - confirmed
91      - src-nat
92      - dst-nat
93      - seq-adj
94      - src-nat-done
95      - dst-nat-done
96      - dying
97      - fixed-timeout
98      - template
99      - nat-clash
100      - helper
101      - offload
102      - hw-offload
103
104attribute-sets:
105  -
106    name: counter-attrs
107    attributes:
108      -
109        name: packets
110        type: u64
111        byte-order: big-endian
112      -
113        name: bytes
114        type: u64
115        byte-order: big-endian
116      -
117        name: packets-old
118        type: u32
119      -
120        name: bytes-old
121        type: u32
122      -
123        name: pad
124        type: pad
125  -
126    name: tuple-proto-attrs
127    attributes:
128      -
129        name: proto-num
130        type: u8
131        doc: l4 protocol number
132      -
133        name: proto-src-port
134        type: u16
135        byte-order: big-endian
136        doc: l4 source port
137      -
138        name: proto-dst-port
139        type: u16
140        byte-order: big-endian
141        doc: l4 source port
142      -
143        name: proto-icmp-id
144        type: u16
145        byte-order: big-endian
146        doc: l4 icmp id
147      -
148        name: proto-icmp-type
149        type: u8
150      -
151        name: proto-icmp-code
152        type: u8
153      -
154        name: proto-icmpv6-id
155        type: u16
156        byte-order: big-endian
157        doc: l4 icmp id
158      -
159        name: proto-icmpv6-type
160        type: u8
161      -
162        name: proto-icmpv6-code
163        type: u8
164  -
165    name: tuple-ip-attrs
166    attributes:
167      -
168        name: ip-v4-src
169        type: u32
170        byte-order: big-endian
171        display-hint: ipv4
172        doc: ipv4 source address
173      -
174        name: ip-v4-dst
175        type: u32
176        byte-order: big-endian
177        display-hint: ipv4
178        doc: ipv4 destination address
179      -
180        name: ip-v6-src
181        type: binary
182        checks:
183          min-len: 16
184        byte-order: big-endian
185        display-hint: ipv6
186        doc: ipv6 source address
187      -
188        name: ip-v6-dst
189        type: binary
190        checks:
191          min-len: 16
192        byte-order: big-endian
193        display-hint: ipv6
194        doc: ipv6 destination address
195  -
196    name: tuple-attrs
197    attributes:
198      -
199        name: tuple-ip
200        type: nest
201        nested-attributes: tuple-ip-attrs
202        doc: conntrack l3 information
203      -
204        name: tuple-proto
205        type: nest
206        nested-attributes: tuple-proto-attrs
207        doc: conntrack l4 information
208      -
209        name: tuple-zone
210        type: u16
211        byte-order: big-endian
212        doc: conntrack zone id
213  -
214    name: protoinfo-tcp-attrs
215    attributes:
216      -
217        name: tcp-state
218        type: u8
219        enum: nf-ct-tcp-state
220        doc: tcp connection state
221      -
222        name: tcp-wscale-original
223        type: u8
224        doc: window scaling factor in original direction
225      -
226        name: tcp-wscale-reply
227        type: u8
228        doc: window scaling factor in reply direction
229      -
230        name: tcp-flags-original
231        type: binary
232        struct: nf-ct-tcp-flags-mask
233      -
234        name: tcp-flags-reply
235        type: binary
236        struct: nf-ct-tcp-flags-mask
237  -
238    name: protoinfo-dccp-attrs
239    attributes:
240      -
241        name: dccp-state
242        type: u8
243        doc: dccp connection state
244      -
245        name: dccp-role
246        type: u8
247      -
248        name: dccp-handshake-seq
249        type: u64
250        byte-order: big-endian
251      -
252        name: dccp-pad
253        type: pad
254  -
255    name: protoinfo-sctp-attrs
256    attributes:
257      -
258        name: sctp-state
259        type: u8
260        doc: sctp connection state
261        enum: nf-ct-sctp-state
262      -
263        name: vtag-original
264        type: u32
265        byte-order: big-endian
266      -
267        name: vtag-reply
268        type: u32
269        byte-order: big-endian
270  -
271    name: protoinfo-attrs
272    attributes:
273      -
274        name: protoinfo-tcp
275        type: nest
276        nested-attributes: protoinfo-tcp-attrs
277        doc: conntrack tcp state information
278      -
279        name: protoinfo-dccp
280        type: nest
281        nested-attributes: protoinfo-dccp-attrs
282        doc: conntrack dccp state information
283      -
284        name: protoinfo-sctp
285        type: nest
286        nested-attributes: protoinfo-sctp-attrs
287        doc: conntrack sctp state information
288  -
289    name: help-attrs
290    attributes:
291      -
292        name: help-name
293        type: string
294        doc: helper name
295  -
296    name: nat-proto-attrs
297    attributes:
298      -
299        name: nat-port-min
300        type: u16
301        byte-order: big-endian
302      -
303        name: nat-port-max
304        type: u16
305        byte-order: big-endian
306  -
307    name: nat-attrs
308    attributes:
309      -
310        name: nat-v4-minip
311        type: u32
312        byte-order: big-endian
313      -
314        name: nat-v4-maxip
315        type: u32
316        byte-order: big-endian
317      -
318        name: nat-v6-minip
319        type: binary
320      -
321        name: nat-v6-maxip
322        type: binary
323      -
324        name: nat-proto
325        type: nest
326        nested-attributes: nat-proto-attrs
327  -
328    name: seqadj-attrs
329    attributes:
330      -
331        name: correction-pos
332        type: u32
333        byte-order: big-endian
334      -
335        name: offset-before
336        type: u32
337        byte-order: big-endian
338      -
339        name: offset-after
340        type: u32
341        byte-order: big-endian
342  -
343    name: secctx-attrs
344    attributes:
345      -
346        name: secctx-name
347        type: string
348  -
349    name: synproxy-attrs
350    attributes:
351      -
352        name: isn
353        type: u32
354        byte-order: big-endian
355      -
356        name: its
357        type: u32
358        byte-order: big-endian
359      -
360        name: tsoff
361        type: u32
362        byte-order: big-endian
363  -
364    name: filter-attrs
365    attributes:
366      -
367        name: orig-flags
368        type: u32
369        doc: bitmask of tuple fields to filter on, original direction
370      -
371        name: reply-flags
372        type: u32
373        doc: bitmask of tuple fields to filter on, reply direction
374  -
375    name: conntrack-attrs
376    attributes:
377      -
378        name: tuple-orig
379        type: nest
380        nested-attributes: tuple-attrs
381        doc: conntrack l3+l4 protocol information, original direction
382      -
383        name: tuple-reply
384        type: nest
385        nested-attributes: tuple-attrs
386        doc: conntrack l3+l4 protocol information, reply direction
387      -
388        name: status
389        type: u32
390        byte-order: big-endian
391        enum: nf-ct-status
392        enum-as-flags: true
393        doc: conntrack flag bits
394      -
395        name: protoinfo
396        type: nest
397        nested-attributes: protoinfo-attrs
398      -
399        name: help
400        type: nest
401        nested-attributes: help-attrs
402      -
403        name: nat-src
404        type: nest
405        nested-attributes: nat-attrs
406      -
407        name: timeout
408        type: u32
409        byte-order: big-endian
410      -
411        name: mark
412        type: u32
413        byte-order: big-endian
414      -
415        name: counters-orig
416        type: nest
417        nested-attributes: counter-attrs
418      -
419        name: counters-reply
420        type: nest
421        nested-attributes: counter-attrs
422      -
423        name: use
424        type: u32
425        byte-order: big-endian
426      -
427        name: id
428        type: u32
429        byte-order: big-endian
430      -
431        name: nat-dst
432        type: nest
433        nested-attributes: nat-attrs
434      -
435        name: tuple-master
436        type: nest
437        nested-attributes: tuple-attrs
438      -
439        name: seq-adj-orig
440        type: nest
441        nested-attributes: seqadj-attrs
442      -
443        name: seq-adj-reply
444        type: nest
445        nested-attributes: seqadj-attrs
446      -
447        name: secmark
448        type: binary
449        doc: obsolete
450      -
451        name: zone
452        type: u16
453        byte-order: big-endian
454        doc: conntrack zone id
455      -
456        name: secctx
457        type: nest
458        nested-attributes: secctx-attrs
459      -
460        name: timestamp
461        type: u64
462        byte-order: big-endian
463      -
464        name: mark-mask
465        type: u32
466        byte-order: big-endian
467      -
468        name: labels
469        type: binary
470      -
471        name: labels-mask
472        type: binary
473      -
474        name: synproxy
475        type: nest
476        nested-attributes: synproxy-attrs
477      -
478        name: filter
479        type: nest
480        nested-attributes: filter-attrs
481      -
482        name: status-mask
483        type: u32
484        byte-order: big-endian
485        enum: nf-ct-status
486        enum-as-flags: true
487        doc: conntrack flag bits to change
488      -
489        name: timestamp-event
490        type: u64
491        byte-order: big-endian
492  -
493    name: conntrack-stats-attrs
494    attributes:
495      -
496        name: searched
497        type: u32
498        byte-order: big-endian
499        doc: obsolete
500      -
501        name: found
502        type: u32
503        byte-order: big-endian
504      -
505        name: new
506        type: u32
507        byte-order: big-endian
508        doc: obsolete
509      -
510        name: invalid
511        type: u32
512        byte-order: big-endian
513        doc: obsolete
514      -
515        name: ignore
516        type: u32
517        byte-order: big-endian
518        doc: obsolete
519      -
520        name: delete
521        type: u32
522        byte-order: big-endian
523        doc: obsolete
524      -
525        name: delete-list
526        type: u32
527        byte-order: big-endian
528        doc: obsolete
529      -
530        name: insert
531        type: u32
532        byte-order: big-endian
533      -
534        name: insert-failed
535        type: u32
536        byte-order: big-endian
537      -
538        name: drop
539        type: u32
540        byte-order: big-endian
541      -
542        name: early-drop
543        type: u32
544        byte-order: big-endian
545      -
546        name: error
547        type: u32
548        byte-order: big-endian
549      -
550        name: search-restart
551        type: u32
552        byte-order: big-endian
553      -
554        name: clash-resolve
555        type: u32
556        byte-order: big-endian
557      -
558        name: chain-toolong
559        type: u32
560        byte-order: big-endian
561
562operations:
563  enum-model: directional
564  list:
565    -
566      name: get
567      doc: get / dump entries
568      attribute-set: conntrack-attrs
569      fixed-header: nfgenmsg
570      do:
571        request:
572          value: 0x101
573          attributes:
574            - tuple-orig
575            - tuple-reply
576            - zone
577        reply:
578          value: 0x100
579          attributes:
580            - tuple-orig
581            - tuple-reply
582            - status
583            - protoinfo
584            - help
585            - nat-src
586            - nat-dst
587            - timeout
588            - mark
589            - counters-orig
590            - counters-reply
591            - use
592            - id
593            - nat-dst
594            - tuple-master
595            - seq-adj-orig
596            - seq-adj-reply
597            - zone
598            - secctx
599            - labels
600            - synproxy
601      dump:
602        request:
603          value: 0x101
604          attributes:
605            - tuple-orig
606            - tuple-reply
607            - status
608            - mark
609            - zone
610            - mark-mask
611            - filter
612            - status-mask
613        reply:
614          value: 0x100
615          attributes:
616            - tuple-orig
617            - tuple-reply
618            - status
619            - protoinfo
620            - help
621            - nat-src
622            - nat-dst
623            - timeout
624            - mark
625            - counters-orig
626            - counters-reply
627            - use
628            - id
629            - nat-dst
630            - tuple-master
631            - seq-adj-orig
632            - seq-adj-reply
633            - zone
634            - secctx
635            - labels
636            - synproxy
637    -
638      name: get-stats
639      doc: dump pcpu conntrack stats
640      attribute-set: conntrack-stats-attrs
641      fixed-header: nfgenmsg
642      dump:
643        request:
644          value: 0x104
645        reply:
646          value: 0x104
647          attributes:
648            - searched
649            - found
650            - insert
651            - insert-failed
652            - drop
653            - early-drop
654            - error
655            - search-restart
656            - clash-resolve
657            - chain-toolong
658