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