README written
[vsorcdistro/.git] / ryu / doc / source / ofproto_v1_4_ref.rst
1 *************************************
2 OpenFlow v1.4 Messages and Structures
3 *************************************
4
5 .. py:currentmodule:: ryu.ofproto.ofproto_v1_4_parser
6
7 Controller-to-Switch Messages
8 =============================
9
10 Handshake
11 ---------
12
13 .. autoclass:: OFPFeaturesRequest
14
15     JSON Example:
16
17     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-5-ofp_features_request.packet.json
18
19 .. autoclass:: OFPSwitchFeatures
20
21     JSON Example:
22
23     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-6-ofp_features_reply.packet.json
24
25 Switch Configuration
26 --------------------
27
28 .. autoclass:: OFPSetConfig
29
30     JSON Example:
31
32     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-7-ofp_set_config.packet.json
33
34 .. autoclass:: OFPGetConfigRequest
35
36     JSON Example:
37
38     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-8-ofp_get_config_request.packet.json
39
40 .. autoclass:: OFPGetConfigReply
41
42     JSON Example:
43
44     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-9-ofp_get_config_reply.packet.json
45
46 Modify State Messages
47 ---------------------
48
49 .. autoclass:: OFPTableMod
50
51     JSON Example:
52
53     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-23-ofp_table_mod.packet.json
54
55 .. autoclass:: OFPFlowMod
56
57     JSON Example:
58
59     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-2-ofp_flow_mod.packet.json
60     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-3-ofp_flow_mod.packet.json
61     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-44-ofp_flow_mod.packet.json
62     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-58-ofp_flow_mod.packet.json
63
64 .. autoclass:: OFPGroupMod
65
66     JSON Example:
67
68     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-21-ofp_group_mod.packet.json
69
70 .. autoclass:: OFPPortMod
71
72     JSON Example:
73
74     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-22-ofp_port_mod.packet.json
75
76 .. autoclass:: OFPMeterMod
77
78     JSON Example:
79
80     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-43-ofp_meter_mod.packet.json
81
82 Multipart Messages
83 ------------------
84
85 .. autoclass:: OFPDescStatsRequest
86
87     JSON Example:
88
89     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-24-ofp_desc_request.packet.json
90
91 .. autoclass:: OFPDescStatsReply
92
93     JSON Example:
94
95     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-0-ofp_desc_reply.packet.json
96
97 .. autoclass:: OFPFlowStatsRequest
98
99     JSON Example:
100
101     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-11-ofp_flow_stats_request.packet.json
102
103 .. autoclass:: OFPFlowStatsReply
104
105     JSON Example:
106
107     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-12-ofp_flow_stats_reply.packet.json
108
109 .. autoclass:: OFPAggregateStatsRequest
110
111     JSON Example:
112
113     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-25-ofp_aggregate_stats_request.packet.json
114
115 .. autoclass:: OFPAggregateStatsReply
116
117     JSON Example:
118
119     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-26-ofp_aggregate_stats_reply.packet.json
120
121 .. autoclass:: OFPTableStatsRequest
122
123     JSON Example:
124
125     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-27-ofp_table_stats_request.packet.json
126
127 .. autoclass:: OFPTableStatsReply
128
129     JSON Example:
130
131     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-28-ofp_table_stats_reply.packet.json
132
133 .. autoclass:: OFPTableDescStatsRequest
134
135     JSON Example:
136
137     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-61-ofp_table_desc_request.packet.json
138
139 .. autoclass:: OFPTableDescStatsReply
140
141     JSON Example:
142
143     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-62-ofp_table_desc_reply.packet.json
144
145 .. autoclass:: OFPTableFeaturesStatsRequest
146
147     JSON Example:
148
149        See an example in:
150
151        ``ryu/tests/unit/ofproto/json/of14/5-53-ofp_table_features_request.packet.json``
152
153 .. autoclass:: OFPTableFeaturesStatsReply
154
155     JSON Example:
156
157        See an example in:
158
159        ``ryu/tests/unit/ofproto/json/of14/5-54-ofp_table_features_reply.packet.json``
160
161 .. autoclass:: OFPPortStatsRequest
162
163     JSON Example:
164
165     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-29-ofp_port_stats_request.packet.json
166
167 .. autoclass:: OFPPortStatsReply
168
169     JSON Example:
170
171     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-30-ofp_port_stats_reply.packet.json
172
173 .. autoclass:: OFPPortDescStatsRequest
174
175     JSON Example:
176
177     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-51-ofp_port_desc_request.packet.json
178
179 .. autoclass:: OFPPortDescStatsReply
180
181     JSON Example:
182
183     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-52-ofp_port_desc_reply.packet.json
184
185 .. autoclass:: OFPQueueStatsRequest
186
187     JSON Example:
188
189     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-35-ofp_queue_stats_request.packet.json
190
191 .. autoclass:: OFPQueueStatsReply
192
193     JSON Example:
194
195     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-36-ofp_queue_stats_reply.packet.json
196
197 .. autoclass:: OFPQueueDescStatsRequest
198
199     JSON Example:
200
201     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-63-ofp_queue_desc_request.packet.json
202
203 .. autoclass:: OFPQueueDescStatsReply
204
205     JSON Example:
206
207     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-64-ofp_queue_desc_reply.packet.json
208
209 .. autoclass:: OFPGroupStatsRequest
210
211     JSON Example:
212
213     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-55-ofp_group_stats_request.packet.json
214
215 .. autoclass:: OFPGroupStatsReply
216
217     JSON Example:
218
219     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-56-ofp_group_stats_reply.packet.json
220
221 .. autoclass:: OFPGroupDescStatsRequest
222
223     JSON Example:
224
225     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-33-ofp_group_desc_request.packet.json
226
227 .. autoclass:: OFPGroupDescStatsReply
228
229     JSON Example:
230
231     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-34-ofp_group_desc_reply.packet.json
232
233 .. autoclass:: OFPGroupFeaturesStatsRequest
234
235     JSON Example:
236
237     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-31-ofp_group_features_request.packet.json
238
239 .. autoclass:: OFPGroupFeaturesStatsReply
240
241     JSON Example:
242
243     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-32-ofp_group_features_reply.packet.json
244
245 .. autoclass:: OFPMeterStatsRequest
246
247     JSON Example:
248
249     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-47-ofp_meter_stats_request.packet.json
250
251 .. autoclass:: OFPMeterStatsReply
252
253     JSON Example:
254
255     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-48-ofp_meter_stats_reply.packet.json
256
257 .. autoclass:: OFPMeterConfigStatsRequest
258
259     JSON Example:
260
261     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-45-ofp_meter_config_request.packet.json
262
263 .. autoclass:: OFPMeterConfigStatsReply
264
265     JSON Example:
266
267     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-46-ofp_meter_config_reply.packet.json
268
269 .. autoclass:: OFPMeterFeaturesStatsRequest
270
271     JSON Example:
272
273     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-49-ofp_meter_features_request.packet.json
274
275 .. autoclass:: OFPMeterFeaturesStatsReply
276
277     JSON Example:
278
279     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-50-ofp_meter_features_reply.packet.json
280
281 .. autoclass:: OFPFlowMonitorRequest
282
283     JSON Example:
284
285     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-66-ofp_flow_monitor_request.packet.json
286
287 .. autoclass:: OFPFlowMonitorReply
288
289     JSON Example:
290
291     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-67-ofp_flow_monitor_reply.packet.json
292
293 .. autoclass:: OFPExperimenterStatsRequest
294
295     JSON Example:
296
297     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-59-ofp_experimenter_request.packet.json
298
299 .. autoclass:: OFPExperimenterStatsReply
300
301     JSON Example:
302
303     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-60-ofp_experimenter_reply.packet.json
304
305 Packet-Out Message
306 ------------------
307
308 .. autoclass:: OFPPacketOut
309
310     JSON Example:
311
312     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-1-ofp_packet_out.packet.json
313
314 Barrier Message
315 ---------------
316
317 .. autoclass:: OFPBarrierRequest
318
319     JSON Example:
320
321     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-17-ofp_barrier_request.packet.json
322
323 .. autoclass:: OFPBarrierReply
324
325     JSON Example:
326
327     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-18-ofp_barrier_reply.packet.json
328
329 Role Request Message
330 --------------------
331
332 .. autoclass:: OFPRoleRequest
333
334     JSON Example:
335
336     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-19-ofp_role_request.packet.json
337
338 .. autoclass:: OFPRoleReply
339
340     JSON Example:
341
342     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-20-ofp_role_reply.packet.json
343
344 Bundle Messages
345 ---------------
346
347 .. autoclass:: OFPBundleCtrlMsg
348
349     JSON Example:
350
351     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-69-ofp_bundle_ctrl_msg.packet.json
352
353 .. autoclass:: OFPBundleAddMsg
354
355     JSON Example:
356
357     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-70-ofp_bundle_add_msg.packet.json
358
359 Set Asynchronous Configuration Message
360 --------------------------------------
361
362 .. autoclass:: OFPSetAsync
363
364     JSON Example:
365
366     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-42-ofp_set_async.packet.json
367
368 .. autoclass:: OFPGetAsyncRequest
369
370     JSON Example:
371
372     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-40-ofp_get_async_request.packet.json
373
374 .. autoclass:: OFPGetAsyncReply
375
376     JSON Example:
377
378     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-41-ofp_get_async_reply.packet.json
379
380
381 Asynchronous Messages
382 =====================
383
384 Packet-In Message
385 -----------------
386
387 .. autoclass:: OFPPacketIn
388
389     JSON Example:
390
391     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-4-ofp_packet_in.packet.json
392     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-57-ofp_packet_in.packet.json
393
394 Flow Removed Message
395 --------------------
396
397 .. autoclass:: OFPFlowRemoved
398
399     JSON Example:
400
401     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-38-ofp_flow_removed.packet.json
402
403 Port Status Message
404 -------------------
405
406 .. autoclass:: OFPPortStatus
407
408     JSON Example:
409
410     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-37-ofp_port_status.packet.json
411
412 Controller Role Status Message
413 ------------------------------
414
415 .. autoclass:: OFPRoleStatus
416
417     JSON Example:
418
419     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-65-ofp_role_status.packet.json
420
421 Table Status Message
422 --------------------
423
424 .. autoclass:: OFPTableStatus
425
426     JSON Example:
427
428     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-68-ofp_table_status.packet.json
429
430 Request Forward Message
431 -----------------------
432
433 .. autoclass:: OFPRequestForward
434
435     JSON Example:
436
437     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-71-ofp_requestforward.packet.json
438
439
440 Symmetric Messages
441 ==================
442
443 Hello
444 -----
445
446 .. autoclass:: OFPHello
447
448     JSON Example:
449
450     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-10-ofp_hello.packet.json
451
452 .. autoclass:: OFPHelloElemVersionBitmap
453
454 Echo Request
455 ------------
456
457 .. autoclass:: OFPEchoRequest
458
459     JSON Example:
460
461     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-13-ofp_echo_request.packet.json
462
463 Echo Reply
464 ----------
465
466 .. autoclass:: OFPEchoReply
467
468     JSON Example:
469
470     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-14-ofp_echo_reply.packet.json
471
472 Error Message
473 -------------
474
475 .. autoclass:: OFPErrorMsg
476
477     JSON Example:
478
479     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-15-ofp_error_msg.packet.json
480
481 Experimenter
482 ------------
483
484 .. autoclass:: OFPExperimenter
485
486     JSON Example:
487
488     .. literalinclude:: ../../ryu/tests/unit/ofproto/json/of14/5-16-ofp_experimenter.packet.json
489
490 Port Structures
491 ===============
492
493 .. autoclass:: OFPPort
494
495
496 Flow Match Structure
497 ====================
498
499 .. autoclass:: OFPMatch
500
501
502 Flow Instruction Structures
503 ===========================
504
505 .. autoclass:: OFPInstructionGotoTable
506 .. autoclass:: OFPInstructionWriteMetadata
507 .. autoclass:: OFPInstructionActions
508 .. autoclass:: OFPInstructionMeter
509
510
511 Action Structures
512 =================
513
514 .. autoclass:: OFPActionOutput
515 .. autoclass:: OFPActionCopyTtlOut
516 .. autoclass:: OFPActionCopyTtlIn
517 .. autoclass:: OFPActionSetMplsTtl
518 .. autoclass:: OFPActionDecMplsTtl
519 .. autoclass:: OFPActionPushVlan
520 .. autoclass:: OFPActionPopVlan
521 .. autoclass:: OFPActionPushMpls
522 .. autoclass:: OFPActionPopMpls
523 .. autoclass:: OFPActionSetQueue
524 .. autoclass:: OFPActionGroup
525 .. autoclass:: OFPActionSetNwTtl
526 .. autoclass:: OFPActionDecNwTtl
527 .. autoclass:: OFPActionSetField
528 .. autoclass:: OFPActionPushPbb
529 .. autoclass:: OFPActionPopPbb
530 .. autoclass:: OFPActionExperimenter