xref: /linux/Documentation/netlink/specs/team.yaml (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2---
3name: team
4
5protocol: genetlink-legacy
6
7doc: |
8  Network team device driver.
9
10c-family-name: team-genl-name
11c-version-name: team-genl-version
12kernel-policy: global
13uapi-header: linux/if_team.h
14
15definitions:
16  -
17    name: string-max-len
18    type: const
19    value: 32
20  -
21    name: genl-change-event-mc-grp-name
22    type: const
23    value: change_event
24
25attribute-sets:
26  -
27    name: team
28    doc: |
29      The team nested layout of get/set msg looks like::
30
31          [TEAM_ATTR_LIST_OPTION]
32              [TEAM_ATTR_ITEM_OPTION]
33                  [TEAM_ATTR_OPTION_*], ...
34              [TEAM_ATTR_ITEM_OPTION]
35                  [TEAM_ATTR_OPTION_*], ...
36              ...
37          [TEAM_ATTR_LIST_PORT]
38              [TEAM_ATTR_ITEM_PORT]
39                  [TEAM_ATTR_PORT_*], ...
40              [TEAM_ATTR_ITEM_PORT]
41                  [TEAM_ATTR_PORT_*], ...
42              ...
43
44    name-prefix: team-attr-
45    attributes:
46      -
47        name: unspec
48        type: unused
49        value: 0
50      -
51        name: team-ifindex
52        type: u32
53      -
54        name: list-option
55        type: nest
56        nested-attributes: item-option
57      -
58        name: list-port
59        type: nest
60        nested-attributes: item-port
61  -
62    name: item-option
63    name-prefix: team-attr-item-
64    attr-cnt-name: __team-attr-item-option-max
65    attr-max-name: team-attr-item-option-max
66    attributes:
67      -
68        name: option-unspec
69        type: unused
70        value: 0
71      -
72        name: option
73        type: nest
74        nested-attributes: attr-option
75  -
76    name: attr-option
77    name-prefix: team-attr-option-
78    attributes:
79      -
80        name: unspec
81        type: unused
82        value: 0
83      -
84        name: name
85        type: string
86        checks:
87          max-len: string-max-len
88          unterminated-ok: true
89      -
90        name: changed
91        type: flag
92      -
93        name: type
94        type: u8
95      -
96        name: data
97        type: binary
98      -
99        name: removed
100        type: flag
101      -
102        name: port-ifindex
103        type: u32
104        doc: for per-port options
105      -
106        name: array-index
107        type: u32
108        doc: for array options
109  -
110    name: item-port
111    name-prefix: team-attr-item-
112    attr-cnt-name: __team-attr-item-port-max
113    attr-max-name: team-attr-item-port-max
114    attributes:
115      -
116        name: port-unspec
117        type: unused
118        value: 0
119      -
120        name: port
121        type: nest
122        nested-attributes: attr-port
123  -
124    name: attr-port
125    name-prefix: team-attr-port-
126    attributes:
127      -
128        name: unspec
129        type: unused
130        value: 0
131      -
132        name: ifindex
133        type: u32
134      -
135        name: changed
136        type: flag
137      -
138        name: linkup
139        type: flag
140      -
141        name: speed
142        type: u32
143      -
144        name: duplex
145        type: u8
146      -
147        name: removed
148        type: flag
149
150operations:
151  list:
152    -
153      name: noop
154      doc: No operation
155      value: 0
156      attribute-set: team
157      dont-validate: [strict]
158
159      do:
160        # Actually it only reply the team netlink family
161        reply:
162          attributes:
163            - team-ifindex
164
165    -
166      name: options-set
167      doc: Set team options
168      attribute-set: team
169      dont-validate: [strict]
170      flags: [admin-perm]
171
172      do:
173        request: &option_attrs
174          attributes:
175            - team-ifindex
176            - list-option
177        reply: *option_attrs
178
179    -
180      name: options-get
181      doc: Get team options info
182      attribute-set: team
183      dont-validate: [strict]
184      flags: [admin-perm]
185
186      do:
187        request:
188          attributes:
189            - team-ifindex
190        reply: *option_attrs
191
192    -
193      name: port-list-get
194      doc: Get team ports info
195      attribute-set: team
196      dont-validate: [strict]
197      flags: [admin-perm]
198
199      do:
200        request:
201          attributes:
202            - team-ifindex
203        reply: &port_attrs
204          attributes:
205            - team-ifindex
206            - list-port
207