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