GNU Linux-libre 6.9.1-gnu
[releases.git] / Documentation / netlink / specs / fou.yaml
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3 name: fou
4
5 protocol: genetlink-legacy
6
7 doc: |
8   Foo-over-UDP.
9
10 c-family-name: fou-genl-name
11 c-version-name: fou-genl-version
12 max-by-define: true
13 kernel-policy: global
14
15 definitions:
16   -
17     type: enum
18     name: encap_type
19     name-prefix: fou-encap-
20     enum-name:
21     entries: [ unspec, direct, gue ]
22
23 attribute-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       -
43         name: type
44         type: u8
45       -
46         name: remcsum_nopartial
47         type: flag
48       -
49         name: local_v4
50         type: u32
51       -
52         name: local_v6
53         type: binary
54         checks:
55           min-len: 16
56       -
57         name: peer_v4
58         type: u32
59       -
60         name: peer_v6
61         type: binary
62         checks:
63           min-len: 16
64       -
65         name: peer_port
66         type: u16
67         byte-order: big-endian
68       -
69         name: ifindex
70         type: s32
71
72 operations:
73   list:
74     -
75       name: unspec
76       doc: unused
77       value: 0
78
79     -
80       name: add
81       doc: Add port.
82       attribute-set: fou
83
84       dont-validate: [ strict, dump ]
85       flags: [ admin-perm ]
86
87       do:
88         request: &all_attrs
89           attributes:
90             - port
91             - ipproto
92             - type
93             - remcsum_nopartial
94             - local_v4
95             - peer_v4
96             - local_v6
97             - peer_v6
98             - peer_port
99             - ifindex
100
101     -
102       name: del
103       doc: Delete port.
104       attribute-set: fou
105
106       dont-validate: [ strict, dump ]
107       flags: [ admin-perm ]
108
109       do:
110         request: &select_attrs
111           attributes:
112             - af
113             - ifindex
114             - port
115             - peer_port
116             - local_v4
117             - peer_v4
118             - local_v6
119             - peer_v6
120
121     -
122       name: get
123       doc: Get tunnel info.
124       attribute-set: fou
125       dont-validate: [ strict, dump ]
126
127       do:
128         request: *select_attrs
129         reply: *all_attrs
130
131       dump:
132         reply: *all_attrs