xref: /openbmc/qemu/qapi/rocker.json (revision bcad45de)
1##
2# @Rocker:
3#
4# Rocker switch information.
5#
6# @name: switch name
7#
8# @id: switch ID
9#
10# @ports: number of front-panel ports
11#
12# Since: 2.4
13##
14{ 'struct': 'RockerSwitch',
15  'data': { 'name': 'str', 'id': 'uint64', 'ports': 'uint32' } }
16
17##
18# @query-rocker:
19#
20# Return rocker switch information.
21#
22# Returns: @Rocker information
23#
24# Since: 2.4
25##
26{ 'command': 'query-rocker',
27  'data': { 'name': 'str' },
28  'returns': 'RockerSwitch' }
29
30##
31# @RockerPortDuplex:
32#
33# An eumeration of port duplex states.
34#
35# @half: half duplex
36#
37# @full: full duplex
38#
39# Since: 2.4
40##
41{ 'enum': 'RockerPortDuplex', 'data': [ 'half', 'full' ] }
42
43##
44# @RockerPortAutoneg:
45#
46# An eumeration of port autoneg states.
47#
48# @off: autoneg is off
49#
50# @on: autoneg is on
51#
52# Since: 2.4
53##
54{ 'enum': 'RockerPortAutoneg', 'data': [ 'off', 'on' ] }
55
56##
57# @RockerPort:
58#
59# Rocker switch port information.
60#
61# @name: port name
62#
63# @enabled: port is enabled for I/O
64#
65# @link-up: physical link is UP on port
66#
67# @speed: port link speed in Mbps
68#
69# @duplex: port link duplex
70#
71# @autoneg: port link autoneg
72#
73# Since: 2.4
74##
75{ 'struct': 'RockerPort',
76  'data': { 'name': 'str', 'enabled': 'bool', 'link-up': 'bool',
77            'speed': 'uint32', 'duplex': 'RockerPortDuplex',
78            'autoneg': 'RockerPortAutoneg' } }
79
80##
81# @query-rocker-ports:
82#
83# Return rocker switch information.
84#
85# Returns: @Rocker information
86#
87# Since: 2.4
88##
89{ 'command': 'query-rocker-ports',
90  'data': { 'name': 'str' },
91  'returns': ['RockerPort'] }
92
93##
94# @RockerOfDpaFlowKey:
95#
96# Rocker switch OF-DPA flow key
97#
98# @priority: key priority, 0 being lowest priority
99#
100# @tbl-id: flow table ID
101#
102# @in-pport: #optional physical input port
103#
104# @tunnel-id: #optional tunnel ID
105#
106# @vlan-id: #optional VLAN ID
107#
108# @eth-type: #optional Ethernet header type
109#
110# @eth-src: #optional Ethernet header source MAC address
111#
112# @eth-dst: #optional Ethernet header destination MAC address
113#
114# @ip-proto: #optional IP Header protocol field
115#
116# @ip-tos: #optional IP header TOS field
117#
118# @ip-dst: #optional IP header destination address
119#
120# Note: fields are marked #optional to indicate that they may or may not
121# appear in the flow key depending if they're relevant to the flow key.
122#
123# Since: 2.4
124##
125{ 'struct': 'RockerOfDpaFlowKey',
126  'data' : { 'priority': 'uint32', 'tbl-id': 'uint32', '*in-pport': 'uint32',
127             '*tunnel-id': 'uint32', '*vlan-id': 'uint16',
128             '*eth-type': 'uint16', '*eth-src': 'str', '*eth-dst': 'str',
129             '*ip-proto': 'uint8', '*ip-tos': 'uint8', '*ip-dst': 'str' } }
130
131##
132# @RockerOfDpaFlowMask:
133#
134# Rocker switch OF-DPA flow mask
135#
136# @in-pport: #optional physical input port
137#
138# @tunnel-id: #optional tunnel ID
139#
140# @vlan-id: #optional VLAN ID
141#
142# @eth-src: #optional Ethernet header source MAC address
143#
144# @eth-dst: #optional Ethernet header destination MAC address
145#
146# @ip-proto: #optional IP Header protocol field
147#
148# @ip-tos: #optional IP header TOS field
149#
150# Note: fields are marked #optional to indicate that they may or may not
151# appear in the flow mask depending if they're relevant to the flow mask.
152#
153# Since: 2.4
154##
155{ 'struct': 'RockerOfDpaFlowMask',
156  'data' : { '*in-pport': 'uint32', '*tunnel-id': 'uint32',
157             '*vlan-id': 'uint16', '*eth-src': 'str', '*eth-dst': 'str',
158             '*ip-proto': 'uint8', '*ip-tos': 'uint8' } }
159
160##
161# @RockerOfDpaFlowAction:
162#
163# Rocker switch OF-DPA flow action
164#
165# @goto-tbl: #optional next table ID
166#
167# @group-id: #optional group ID
168#
169# @tunnel-lport: #optional tunnel logical port ID
170#
171# @vlan-id: #optional VLAN ID
172#
173# @new-vlan-id: #optional new VLAN ID
174#
175# @out-pport: #optional physical output port
176#
177# Note: fields are marked #optional to indicate that they may or may not
178# appear in the flow action depending if they're relevant to the flow action.
179#
180# Since: 2.4
181##
182{ 'struct': 'RockerOfDpaFlowAction',
183  'data' : { '*goto-tbl': 'uint32', '*group-id': 'uint32',
184             '*tunnel-lport': 'uint32', '*vlan-id': 'uint16',
185             '*new-vlan-id': 'uint16', '*out-pport': 'uint32' } }
186
187##
188# @RockerOfDpaFlow:
189#
190# Rocker switch OF-DPA flow
191#
192# @cookie: flow unique cookie ID
193#
194# @hits: count of matches (hits) on flow
195#
196# @key: flow key
197#
198# @mask: flow mask
199#
200# @action: flow action
201#
202# Since: 2.4
203##
204{ 'struct': 'RockerOfDpaFlow',
205  'data': { 'cookie': 'uint64', 'hits': 'uint64', 'key': 'RockerOfDpaFlowKey',
206            'mask': 'RockerOfDpaFlowMask', 'action': 'RockerOfDpaFlowAction' } }
207
208##
209# @query-rocker-of-dpa-flows:
210#
211# Return rocker OF-DPA flow information.
212#
213# @name: switch name
214#
215# @tbl-id: #optional flow table ID.  If tbl-id is not specified, returns
216# flow information for all tables.
217#
218# Returns: @Rocker OF-DPA flow information
219#
220# Since: 2.4
221##
222{ 'command': 'query-rocker-of-dpa-flows',
223  'data': { 'name': 'str', '*tbl-id': 'uint32' },
224  'returns': ['RockerOfDpaFlow'] }
225
226##
227# @RockerOfDpaGroup:
228#
229# Rocker switch OF-DPA group
230#
231# @id: group unique ID
232#
233# @type: group type
234#
235# @vlan-id: #optional VLAN ID
236#
237# @pport: #optional physical port number
238#
239# @index: #optional group index, unique with group type
240#
241# @out-pport: #optional output physical port number
242#
243# @group-id: #optional next group ID
244#
245# @set-vlan-id: #optional VLAN ID to set
246#
247# @pop-vlan: #optional pop VLAN headr from packet
248#
249# @group-ids: #optional list of next group IDs
250#
251# @set-eth-src: #optional set source MAC address in Ethernet header
252#
253# @set-eth-dst: #optional set destination MAC address in Ethernet header
254#
255# @ttl-check: #optional perform TTL check
256#
257# Note: fields are marked #optional to indicate that they may or may not
258# appear in the group depending if they're relevant to the group type.
259#
260# Since: 2.4
261##
262{ 'struct': 'RockerOfDpaGroup',
263  'data': { 'id': 'uint32',  'type': 'uint8', '*vlan-id': 'uint16',
264            '*pport': 'uint32', '*index': 'uint32', '*out-pport': 'uint32',
265            '*group-id': 'uint32', '*set-vlan-id': 'uint16',
266            '*pop-vlan': 'uint8', '*group-ids': ['uint32'],
267            '*set-eth-src': 'str', '*set-eth-dst': 'str',
268            '*ttl-check': 'uint8' } }
269
270##
271# @query-rocker-of-dpa-groups:
272#
273# Return rocker OF-DPA group information.
274#
275# @name: switch name
276#
277# @type: #optional group type.  If type is not specified, returns
278# group information for all group types.
279#
280# Returns: @Rocker OF-DPA group information
281#
282# Since: 2.4
283##
284{ 'command': 'query-rocker-of-dpa-groups',
285  'data': { 'name': 'str', '*type': 'uint8' },
286  'returns': ['RockerOfDpaGroup'] }
287