xref: /linux/Documentation/netlink/specs/fou.yaml (revision 2d7eaeb05ae265bd64270376e6a2c0d80244771f)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: fou
4
5protocol: genetlink-legacy
6
7doc: |
8  Foo-over-UDP.
9
10c-family-name: fou-genl-name
11c-version-name: fou-genl-version
12max-by-define: true
13kernel-policy: global
14
15definitions:
16  -
17    type: enum
18    name: encap-type
19    name-prefix: fou-encap-
20    enum-name:
21    entries: [unspec, direct, gue]
22
23attribute-sets:
24  -
25    name: fou
26    name-prefix: fou-attr-
27    attributes:
28      -
29        name: unspec
30        type: unused
31        value: 0
32      -
33        name: port
34        type: u16
35        byte-order: big-endian
36      -
37        name: af
38        type: u8
39      -
40        name: ipproto
41        type: u8
42        checks:
43          min: 1
44      -
45        name: type
46        type: u8
47        enum: encap-type
48      -
49        name: remcsum-nopartial
50        type: flag
51      -
52        name: local-v4
53        type: u32
54        byte-order: big-endian
55      -
56        name: local-v6
57        type: binary
58        checks:
59          exact-len: 16
60      -
61        name: peer-v4
62        type: u32
63        byte-order: big-endian
64      -
65        name: peer-v6
66        type: binary
67        checks:
68          exact-len: 16
69      -
70        name: peer-port
71        type: u16
72        byte-order: big-endian
73      -
74        name: ifindex
75        type: s32
76
77operations:
78  list:
79    -
80      name: unspec
81      doc: unused
82      value: 0
83
84    -
85      name: add
86      doc: Add port.
87      attribute-set: fou
88
89      dont-validate: [strict, dump]
90      flags: [admin-perm]
91
92      do:
93        request: &all_attrs
94          attributes:
95            - port
96            - af
97            - ipproto
98            - type
99            - remcsum-nopartial
100            - local-v4
101            - peer-v4
102            - local-v6
103            - peer-v6
104            - peer-port
105            - ifindex
106
107    -
108      name: del
109      doc: Delete port.
110      attribute-set: fou
111
112      dont-validate: [strict, dump]
113      flags: [admin-perm]
114
115      do:
116        request: &select_attrs
117          attributes:
118            - af
119            - ifindex
120            - port
121            - peer-port
122            - local-v4
123            - peer-v4
124            - local-v6
125            - peer-v6
126
127    -
128      name: get
129      doc: Get tunnel info.
130      attribute-set: fou
131      dont-validate: [strict, dump]
132
133      do:
134        request: *select_attrs
135        reply: *all_attrs
136
137      dump:
138        reply: *all_attrs
139