Add qemu 2.4.0
[kvmfornfv.git] / qemu / qapi / rocker.json
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'] }