blob: ca836ab6126fbb75b35691c2653792935f3f17f1 [file] [log] [blame]
Stephane Barbarie14088962017-06-01 16:56:55 -04001<?xml version="1.0" encoding="UTF-8"?>
2<module xmlns="urn:ietf:params:xml:ns:yang:yin:1" xmlns:voltha="urn:opencord:params:xml:ns:voltha:voltha" name="voltha">
3 <namespace uri="urn:opencord:params:xml:ns:voltha:voltha"/>
4 <prefix value="voltha"/>
5 <organization>
6 <text>CORD</text>
7 </organization>
8 <contact>
9 <text> Any name</text>
10 </contact>
11 <description>
12 <text/>
13 </description>
14 <revision date="2016-11-15">
15 <description>
16 <text>Initial revision.</text>
17 </description>
18 <reference>
19 <text>reference</text>
20 </reference>
21 </revision>
22 <grouping name="DeviceGroup">
23 <description>
24 <text/>
25 </description>
26 <leaf name="id">
27 <type name="string"/>
28 <description>
29 <text/>
30 </description>
31 </leaf>
32 <list name="logical_devices">
33 <key value="id"/>
34 <uses name="LogicalDevice"/>
35 <description>
36 <text/>
37 </description>
38 </list>
39 <list name="devices">
40 <key value="id"/>
41 <uses name="Device"/>
42 <description>
43 <text/>
44 </description>
45 </list>
46 </grouping>
47 <grouping name="DeviceGroups">
48 <description>
49 <text/>
50 </description>
51 <list name="items">
52 <key value="id"/>
53 <uses name="DeviceGroup"/>
54 <description>
55 <text/>
56 </description>
57 </list>
58 </grouping>
59 <typedef name="AlarmFilterRuleKey">
60 <type name="enumeration">
61 <enum name="id">
62 <description>
63 <text/>
64 </description>
65 </enum>
66 <enum name="type">
67 <description>
68 <text/>
69 </description>
70 </enum>
71 <enum name="severity">
72 <description>
73 <text/>
74 </description>
75 </enum>
76 <enum name="resource_id">
77 <description>
78 <text/>
79 </description>
80 </enum>
81 <enum name="category">
82 <description>
83 <text/>
84 </description>
85 </enum>
86 <enum name="device_id">
87 <description>
88 <text/>
89 </description>
90 </enum>
91 </type>
92 <description>
93 <text/>
94 </description>
95 </typedef>
96 <grouping name="AlarmFilterRule">
97 <description>
98 <text/>
99 </description>
100 <leaf name="key">
101 <type name="AlarmFilterRuleKey"/>
102 <description>
103 <text/>
104 </description>
105 </leaf>
106 <leaf name="value">
107 <type name="string"/>
108 <description>
109 <text/>
110 </description>
111 </leaf>
112 </grouping>
113 <grouping name="AlarmFilter">
114 <description>
115 <text/>
116 </description>
117 <leaf name="id">
118 <type name="string"/>
119 <description>
120 <text/>
121 </description>
122 </leaf>
123 <list name="rules">
124 <key value="key"/>
125 <uses name="AlarmFilterRule"/>
126 <description>
127 <text/>
128 </description>
129 </list>
130 </grouping>
131 <grouping name="AlarmFilters">
132 <description>
133 <text/>
134 </description>
135 <list name="filters">
136 <key value="id"/>
137 <uses name="AlarmFilter"/>
138 <description>
139 <text/>
140 </description>
141 </list>
142 </grouping>
143 <container name="VolthaInstance">
144 <description>
145 <text>Top-level (root) node for a Voltha Instance</text>
146 </description>
147 <leaf name="instance_id">
148 <type name="string"/>
149 <description>
150 <text/>
151 </description>
152 </leaf>
153 <leaf name="version">
154 <type name="string"/>
155 <description>
156 <text/>
157 </description>
158 </leaf>
159 <leaf name="log_level">
160 <type name="LogLevel"/>
161 <description>
162 <text/>
163 </description>
164 </leaf>
165 <container name="health">
166 <uses name="HealthStatus"/>
167 <description>
168 <text/>
169 </description>
170 </container>
171 <list name="adapters">
172 <key value="id"/>
173 <uses name="Adapter"/>
174 <description>
175 <text/>
176 </description>
177 </list>
178 <list name="logical_devices">
179 <key value="id"/>
180 <uses name="LogicalDevice"/>
181 <description>
182 <text/>
183 </description>
184 </list>
185 <list name="devices">
186 <key value="id"/>
187 <uses name="Device"/>
188 <description>
189 <text/>
190 </description>
191 </list>
192 <list name="device_types">
193 <key value="id"/>
194 <uses name="DeviceType"/>
195 <description>
196 <text/>
197 </description>
198 </list>
199 <list name="device_groups">
200 <key value="id"/>
201 <uses name="DeviceGroup"/>
202 <description>
203 <text/>
204 </description>
205 </list>
206 <list name="alarm_filters">
207 <key value="id"/>
208 <uses name="AlarmFilter"/>
209 <description>
210 <text/>
211 </description>
212 </list>
213 </container>
214 <container name="VolthaInstances">
215 <description>
216 <text/>
217 </description>
218 <list name="items">
219 <key value="items"/>
220 <leaf name="items">
221 <type name="string"/>
222 <description>
223 <text/>
224 </description>
225 </leaf>
226 <description>
227 <text/>
228 </description>
229 </list>
230 </container>
231 <container name="Voltha">
232 <description>
233 <text>Voltha representing the entire Voltha cluster</text>
234 </description>
235 <leaf name="version">
236 <type name="string"/>
237 <description>
238 <text/>
239 </description>
240 </leaf>
241 <leaf name="log_level">
242 <type name="LogLevel"/>
243 <description>
244 <text/>
245 </description>
246 </leaf>
247 <list name="instances">
248 <key value="instance_id"/>
249 <uses name="VolthaInstance_grouping"/>
250 <description>
251 <text/>
252 </description>
253 </list>
254 <list name="adapters">
255 <key value="id"/>
256 <uses name="Adapter"/>
257 <description>
258 <text/>
259 </description>
260 </list>
261 <list name="logical_devices">
262 <key value="id"/>
263 <uses name="LogicalDevice"/>
264 <description>
265 <text/>
266 </description>
267 </list>
268 <list name="devices">
269 <key value="id"/>
270 <uses name="Device"/>
271 <description>
272 <text/>
273 </description>
274 </list>
275 <list name="device_groups">
276 <key value="id"/>
277 <uses name="DeviceGroup"/>
278 <description>
279 <text/>
280 </description>
281 </list>
282 </container>
283 <grouping name="VolthaInstance_grouping">
284 <description>
285 <text>Top-level (root) node for a Voltha Instance</text>
286 </description>
287 <leaf name="instance_id">
288 <type name="string"/>
289 <description>
290 <text/>
291 </description>
292 </leaf>
293 <leaf name="version">
294 <type name="string"/>
295 <description>
296 <text/>
297 </description>
298 </leaf>
299 <leaf name="log_level">
300 <type name="LogLevel"/>
301 <description>
302 <text/>
303 </description>
304 </leaf>
305 <container name="health">
306 <uses name="HealthStatus"/>
307 <description>
308 <text/>
309 </description>
310 </container>
311 <list name="adapters">
312 <key value="id"/>
313 <uses name="Adapter"/>
314 <description>
315 <text/>
316 </description>
317 </list>
318 <list name="logical_devices">
319 <key value="id"/>
320 <uses name="LogicalDevice"/>
321 <description>
322 <text/>
323 </description>
324 </list>
325 <list name="devices">
326 <key value="id"/>
327 <uses name="Device"/>
328 <description>
329 <text/>
330 </description>
331 </list>
332 <list name="device_types">
333 <key value="id"/>
334 <uses name="DeviceType"/>
335 <description>
336 <text/>
337 </description>
338 </list>
339 <list name="device_groups">
340 <key value="id"/>
341 <uses name="DeviceGroup"/>
342 <description>
343 <text/>
344 </description>
345 </list>
346 <list name="alarm_filters">
347 <key value="id"/>
348 <uses name="AlarmFilter"/>
349 <description>
350 <text/>
351 </description>
352 </list>
353 </grouping>
354 <grouping name="VolthaInstances_grouping">
355 <description>
356 <text/>
357 </description>
358 <list name="items">
359 <key value="items"/>
360 <leaf name="items">
361 <type name="string"/>
362 <description>
363 <text/>
364 </description>
365 </leaf>
366 <description>
367 <text/>
368 </description>
369 </list>
370 </grouping>
371 <grouping name="Voltha_grouping">
372 <description>
373 <text>Voltha representing the entire Voltha cluster</text>
374 </description>
375 <leaf name="version">
376 <type name="string"/>
377 <description>
378 <text/>
379 </description>
380 </leaf>
381 <leaf name="log_level">
382 <type name="LogLevel"/>
383 <description>
384 <text/>
385 </description>
386 </leaf>
387 <list name="instances">
388 <key value="instance_id"/>
389 <uses name="VolthaInstance_grouping"/>
390 <description>
391 <text/>
392 </description>
393 </list>
394 <list name="adapters">
395 <key value="id"/>
396 <uses name="Adapter"/>
397 <description>
398 <text/>
399 </description>
400 </list>
401 <list name="logical_devices">
402 <key value="id"/>
403 <uses name="LogicalDevice"/>
404 <description>
405 <text/>
406 </description>
407 </list>
408 <list name="devices">
409 <key value="id"/>
410 <uses name="Device"/>
411 <description>
412 <text/>
413 </description>
414 </list>
415 <list name="device_groups">
416 <key value="id"/>
417 <uses name="DeviceGroup"/>
418 <description>
419 <text/>
420 </description>
421 </list>
422 </grouping>
423 <grouping name="AdapterConfig">
424 <description>
425 <text/>
426 </description>
427 <leaf name="log_level">
428 <type name="LogLevel"/>
429 <description>
430 <text>Common adapter config attributes here</text>
431 </description>
432 </leaf>
433 <container name="additional_config">
434 <uses name="Any"/>
435 <description>
436 <text>Custom (vendor-specific) configuration attributes</text>
437 </description>
438 </container>
439 </grouping>
440 <grouping name="Adapter">
441 <description>
442 <text>Adapter (software plugin)</text>
443 </description>
444 <leaf name="id">
445 <type name="string"/>
446 <description>
447 <text>Unique name of adapter, matching the python packate name under
448voltha adapters.</text>
449 </description>
450 </leaf>
451 <leaf name="vendor">
452 <type name="string"/>
453 <description>
454 <text/>
455 </description>
456 </leaf>
457 <leaf name="version">
458 <type name="string"/>
459 <description>
460 <text/>
461 </description>
462 </leaf>
463 <container name="config">
464 <uses name="AdapterConfig"/>
465 <description>
466 <text>Adapter configuration</text>
467 </description>
468 </container>
469 <container name="additional_description">
470 <uses name="Any"/>
471 <description>
472 <text>Custom descriptors and custom configuration</text>
473 </description>
474 </container>
475 <list name="logical_device_ids">
476 <key value="logical_device_ids"/>
477 <leaf name="logical_device_ids">
478 <type name="string"/>
479 <description>
480 <text>Logical devices owned </text>
481 </description>
482 </leaf>
483 <description>
484 <text>Logical devices owned </text>
485 </description>
486 </list>
487 </grouping>
488 <grouping name="Adapters">
489 <description>
490 <text/>
491 </description>
492 <list name="items">
493 <key value="id"/>
494 <uses name="Adapter"/>
495 <description>
496 <text/>
497 </description>
498 </list>
499 </grouping>
500 <grouping name="Any">
501 <description>
502 <text>`Any` contains an arbitrary serialized protocol buffer message along with a
503URL that describes the type of the serialized message.
504
505Protobuf library provides support to pack unpack Any values in the form
506of utility functions or additional generated methods of the Any type.
507
508Example 1: Pack and unpack a message in C++.
509
510Foo foo = ...;
511Any any;
512any.PackFrom(foo);
513...
514if (any.UnpackTo(&amp;amp;foo))
515...
516
517
518Example 2: Pack and unpack a message in Java.
519
520Foo foo = ...;
521Any any = Any.pack(foo);
522...
523if (any.is(Foo.class))
524foo = any.unpack(Foo.class);
525
526
527Example 3: Pack and unpack a message in Python.
528
529foo = Foo(...)
530any = Any()
531any.Pack(foo)
532...
533if any.Is(Foo.DESCRIPTOR):
534any.Unpack(foo)
535...
536
537The pack methods provided by protobuf library will by default use
538'type.googleapis.com full.type.name' as the type URL and the unpack
539methods only use the fully qualified type name after the last ' '
540in the type URL, for example foo.bar.com x y.z will yield type
541name y.z .
542
543
544JSON
545====
546The JSON representation of an `Any` value uses the regular
547representation of the deserialized, embedded message, with an
548additional field `@type` which contains the type URL. Example:
549
550package google.profile;
551message Person
552string first_name = 1;
553string last_name = 2;
554
555
556
557@type : type.googleapis.com google.profile.Person ,
558firstName : string ,
559lastName : string
560
561
562If the embedded message type is well-known and has a custom JSON
563representation, that representation will be embedded adding a field
564`value` which holds the custom JSON in addition to the `@type`
565field. Example (for message google.protobuf.Duration ):
566
567
568@type : type.googleapis.com google.protobuf.Duration ,
569value : 1.212s
570</text>
571 </description>
572 <leaf name="type_url">
573 <type name="string"/>
574 <description>
575 <text>A URL resource name whose content describes the type of the
576serialized protocol buffer message.
577
578For URLs which use the scheme `http`, `https`, or no scheme, the
579following restrictions and interpretations apply:
580
581If no scheme is provided, `https` is assumed.
582The last segment of the URL's path must represent the fully
583qualified name of the type (as in `path google.protobuf.Duration`).
584The name should be in a canonical form (e.g., leading . is
585not accepted).
586An HTTP GET on the URL must yield a google.protobuf.Type
587value in binary format, or produce an error.
588Applications are allowed to cache lookup results based on the
589URL, or have them precompiled into a binary to avoid any
590lookup. Therefore, binary compatibility needs to be preserved
591on changes to types. (Use versioned type names to manage
592breaking changes.)
593
594Schemes other than `http`, `https` (or the empty scheme) might be
595used with implementation specific semantics.</text>
596 </description>
597 </leaf>
598 <leaf name="value">
599 <type name="binary"/>
600 <description>
601 <text>Must be a valid serialized protocol buffer of the above specified type.</text>
602 </description>
603 </leaf>
604 </grouping>
605 <typedef name="LogLevel">
606 <type name="enumeration">
607 <enum name="DEBUG">
608 <description>
609 <text/>
610 </description>
611 </enum>
612 <enum name="INFO">
613 <description>
614 <text/>
615 </description>
616 </enum>
617 <enum name="WARNING">
618 <description>
619 <text/>
620 </description>
621 </enum>
622 <enum name="ERROR">
623 <description>
624 <text/>
625 </description>
626 </enum>
627 <enum name="CRITICAL">
628 <description>
629 <text/>
630 </description>
631 </enum>
632 </type>
633 <description>
634 <text>Logging verbosity level</text>
635 </description>
636 </typedef>
637 <typedef name="AdminState">
638 <type name="enumeration">
639 <enum name="UNKNOWN">
640 <description>
641 <text/>
642 </description>
643 </enum>
644 <enum name="PREPROVISIONED">
645 <description>
646 <text/>
647 </description>
648 </enum>
649 <enum name="ENABLED">
650 <description>
651 <text/>
652 </description>
653 </enum>
654 <enum name="DISABLED">
655 <description>
656 <text/>
657 </description>
658 </enum>
659 </type>
660 <description>
661 <text>Administrative State</text>
662 </description>
663 </typedef>
664 <typedef name="OperStatus">
665 <type name="enumeration">
666 <enum name="UNKNOWN">
667 <description>
668 <text/>
669 </description>
670 </enum>
671 <enum name="DISCOVERED">
672 <description>
673 <text/>
674 </description>
675 </enum>
676 <enum name="ACTIVATING">
677 <description>
678 <text/>
679 </description>
680 </enum>
681 <enum name="TESTING">
682 <description>
683 <text/>
684 </description>
685 </enum>
686 <enum name="ACTIVE">
687 <description>
688 <text/>
689 </description>
690 </enum>
691 <enum name="FAILED">
692 <description>
693 <text/>
694 </description>
695 </enum>
696 </type>
697 <description>
698 <text>Operational Status</text>
699 </description>
700 </typedef>
701 <typedef name="ConnectStatus">
702 <type name="enumeration">
703 <enum name="UNKNOWN">
704 <description>
705 <text/>
706 </description>
707 </enum>
708 <enum name="UNREACHABLE">
709 <description>
710 <text/>
711 </description>
712 </enum>
713 <enum name="REACHABLE">
714 <description>
715 <text/>
716 </description>
717 </enum>
718 </type>
719 <description>
720 <text>Connectivity Status</text>
721 </description>
722 </typedef>
723 <grouping name="ID">
724 <description>
725 <text>Convey a resource identifier</text>
726 </description>
727 <leaf name="id">
728 <type name="string"/>
729 <description>
730 <text/>
731 </description>
732 </leaf>
733 </grouping>
734 <typedef name="PortType">
735 <type name="enumeration">
736 <enum name="UNKNOWN">
737 <description>
738 <text/>
739 </description>
740 </enum>
741 <enum name="ETHERNET_NNI">
742 <description>
743 <text/>
744 </description>
745 </enum>
746 <enum name="ETHERNET_UNI">
747 <description>
748 <text/>
749 </description>
750 </enum>
751 <enum name="PON_OLT">
752 <description>
753 <text/>
754 </description>
755 </enum>
756 <enum name="PON_ONU">
757 <description>
758 <text/>
759 </description>
760 </enum>
761 </type>
762 <description>
763 <text/>
764 </description>
765 </typedef>
766 <grouping name="DeviceType">
767 <description>
768 <text>A Device Type</text>
769 </description>
770 <leaf name="id">
771 <type name="string"/>
772 <description>
773 <text>Unique name for the device type</text>
774 </description>
775 </leaf>
776 <leaf name="adapter">
777 <type name="string"/>
778 <description>
779 <text>Name of the adapter that handles device type</text>
780 </description>
781 </leaf>
782 <leaf name="accepts_bulk_flow_update">
783 <type name="boolean"/>
784 <description>
785 <text>Capabilitities</text>
786 </description>
787 </leaf>
788 <leaf name="accepts_add_remove_flow_updates">
789 <type name="boolean"/>
790 <description>
791 <text/>
792 </description>
793 </leaf>
794 </grouping>
795 <grouping name="DeviceTypes">
796 <description>
797 <text>A plurality of device types</text>
798 </description>
799 <list name="items">
800 <key value="id"/>
801 <uses name="DeviceType"/>
802 <description>
803 <text/>
804 </description>
805 </list>
806 </grouping>
807 <grouping name="PmConfig">
808 <description>
809 <text/>
810 </description>
811 <leaf name="name">
812 <type name="string"/>
813 <description>
814 <text/>
815 </description>
816 </leaf>
817 <leaf name="type">
818 <type name="PmType"/>
819 <description>
820 <text/>
821 </description>
822 </leaf>
823 <leaf name="enabled">
824 <type name="boolean"/>
825 <description>
826 <text>Whether or not this metric makes it to Kafka</text>
827 </description>
828 </leaf>
829 <leaf name="sample_freq">
830 <type name="uint32"/>
831 <description>
832 <text>Sample rate in 10ths of a second</text>
833 </description>
834 </leaf>
835 <typedef name="PmType">
836 <type name="enumeration">
837 <enum name="COUNTER">
838 <description>
839 <text/>
840 </description>
841 </enum>
842 <enum name="GUAGE">
843 <description>
844 <text/>
845 </description>
846 </enum>
847 <enum name="STATE">
848 <description>
849 <text/>
850 </description>
851 </enum>
852 </type>
853 <description>
854 <text/>
855 </description>
856 </typedef>
857 </grouping>
858 <grouping name="PmGroupConfig">
859 <description>
860 <text/>
861 </description>
862 <leaf name="group_name">
863 <type name="string"/>
864 <description>
865 <text/>
866 </description>
867 </leaf>
868 <leaf name="group_freq">
869 <type name="uint32"/>
870 <description>
871 <text>Frequency applicable to the grop</text>
872 </description>
873 </leaf>
874 <leaf name="enabled">
875 <type name="boolean"/>
876 <description>
877 <text>Enable disable group level only</text>
878 </description>
879 </leaf>
880 <list name="metrics">
881 <key value="name"/>
882 <uses name="PmConfig"/>
883 <description>
884 <text/>
885 </description>
886 </list>
887 </grouping>
888 <grouping name="PmConfigs">
889 <description>
890 <text/>
891 </description>
892 <leaf name="id">
893 <type name="string"/>
894 <description>
895 <text>To work around a chameleon POST bug</text>
896 </description>
897 </leaf>
898 <leaf name="default_freq">
899 <type name="uint32"/>
900 <description>
901 <text>Default sample rate</text>
902 </description>
903 </leaf>
904 <leaf name="grouped">
905 <type name="boolean"/>
906 <description>
907 <text>Forces group names and group semantics</text>
908 </description>
909 </leaf>
910 <leaf name="freq_override">
911 <type name="boolean"/>
912 <description>
913 <text>Allows Pm to set an individual sample frequency</text>
914 </description>
915 </leaf>
916 <list name="groups">
917 <key value="group_name"/>
918 <uses name="PmGroupConfig"/>
919 <description>
920 <text>The groups if grouped is true</text>
921 </description>
922 </list>
923 <list name="metrics">
924 <key value="name"/>
925 <uses name="PmConfig"/>
926 <description>
927 <text>The metrics themselves if grouped is false.</text>
928 </description>
929 </list>
930 </grouping>
931 <grouping name="PeerPort">
932 <description>
933 <text/>
934 </description>
935 <leaf name="device_id">
936 <type name="string"/>
937 <description>
938 <text/>
939 </description>
940 </leaf>
941 <leaf name="port_no">
942 <type name="uint32"/>
943 <description>
944 <text/>
945 </description>
946 </leaf>
947 </grouping>
948 <grouping name="Port">
949 <description>
950 <text/>
951 </description>
952 <leaf name="port_no">
953 <type name="uint32"/>
954 <description>
955 <text>Device-unique port number</text>
956 </description>
957 </leaf>
958 <leaf name="label">
959 <type name="string"/>
960 <description>
961 <text>Arbitrary port label</text>
962 </description>
963 </leaf>
964 <leaf name="type">
965 <type name="PortType"/>
966 <description>
967 <text>Type of port</text>
968 </description>
969 </leaf>
970 <leaf name="admin_state">
971 <type name="AdminState"/>
972 <description>
973 <text/>
974 </description>
975 </leaf>
976 <leaf name="oper_status">
977 <type name="OperStatus"/>
978 <description>
979 <text/>
980 </description>
981 </leaf>
982 <leaf name="device_id">
983 <type name="string"/>
984 <description>
985 <text>Unique .id of device that owns this port</text>
986 </description>
987 </leaf>
988 <list name="peers">
989 <key value="device_id"/>
990 <uses name="PeerPort"/>
991 <description>
992 <text/>
993 </description>
994 </list>
995 </grouping>
996 <grouping name="Ports">
997 <description>
998 <text/>
999 </description>
1000 <list name="items">
1001 <key value="port_no"/>
1002 <uses name="Port"/>
1003 <description>
1004 <text/>
1005 </description>
1006 </list>
1007 </grouping>
1008 <grouping name="ProxyAddress">
1009 <description>
1010 <text/>
1011 </description>
1012 <leaf name="device_id">
1013 <type name="string"/>
1014 <description>
1015 <text>Which device to use as proxy to this device</text>
1016 </description>
1017 </leaf>
1018 <leaf name="channel_id">
1019 <type name="uint32"/>
1020 <description>
1021 <text>Sub-address within proxy</text>
1022 </description>
1023 </leaf>
1024 <leaf name="onu_id">
1025 <type name="uint32"/>
1026 <description>
1027 <text>onu identifier; optional</text>
1028 </description>
1029 </leaf>
1030 <leaf name="onu_session_id">
1031 <type name="uint32"/>
1032 <description>
1033 <text>session identifier for the ONU; optional</text>
1034 </description>
1035 </leaf>
1036 </grouping>
1037 <grouping name="Device">
1038 <description>
1039 <text>A Physical Device instance</text>
1040 </description>
1041 <leaf name="id">
1042 <type name="string"/>
1043 <description>
1044 <text>Voltha's device identifier</text>
1045 </description>
1046 </leaf>
1047 <leaf name="type">
1048 <type name="string"/>
1049 <description>
1050 <text>Device type, refers to one of the registered device types</text>
1051 </description>
1052 </leaf>
1053 <leaf name="root">
1054 <type name="boolean"/>
1055 <description>
1056 <text>Is this device a root device. Each logical switch has one root
1057device that is associated with the logical flow switch.</text>
1058 </description>
1059 </leaf>
1060 <leaf name="parent_id">
1061 <type name="string"/>
1062 <description>
1063 <text>Parent device id, in the device tree (for a root device, the parent_id
1064is the logical_device.id)</text>
1065 </description>
1066 </leaf>
1067 <leaf name="parent_port_no">
1068 <type name="uint32"/>
1069 <description>
1070 <text/>
1071 </description>
1072 </leaf>
1073 <leaf name="vendor">
1074 <type name="string"/>
1075 <description>
1076 <text>Vendor, version, serial number, etc.</text>
1077 </description>
1078 </leaf>
1079 <leaf name="model">
1080 <type name="string"/>
1081 <description>
1082 <text/>
1083 </description>
1084 </leaf>
1085 <leaf name="hardware_version">
1086 <type name="string"/>
1087 <description>
1088 <text/>
1089 </description>
1090 </leaf>
1091 <leaf name="firmware_version">
1092 <type name="string"/>
1093 <description>
1094 <text/>
1095 </description>
1096 </leaf>
1097 <leaf name="software_version">
1098 <type name="string"/>
1099 <description>
1100 <text/>
1101 </description>
1102 </leaf>
1103 <leaf name="serial_number">
1104 <type name="string"/>
1105 <description>
1106 <text/>
1107 </description>
1108 </leaf>
1109 <leaf name="adapter">
1110 <type name="string"/>
1111 <description>
1112 <text>Addapter that takes care of device</text>
1113 </description>
1114 </leaf>
1115 <leaf name="vlan">
1116 <type name="uint32"/>
1117 <description>
1118 <text>Device contact on vlan (if 0, no vlan)</text>
1119 </description>
1120 </leaf>
1121 <container name="proxy_address">
1122 <uses name="ProxyAddress"/>
1123 <description>
1124 <text/>
1125 </description>
1126 </container>
1127 <leaf name="admin_state">
1128 <type name="AdminState"/>
1129 <description>
1130 <text/>
1131 </description>
1132 </leaf>
1133 <leaf name="oper_status">
1134 <type name="OperStatus"/>
1135 <description>
1136 <text/>
1137 </description>
1138 </leaf>
1139 <leaf name="reason">
1140 <type name="string"/>
1141 <description>
1142 <text>Used in FAILED state</text>
1143 </description>
1144 </leaf>
1145 <leaf name="connect_status">
1146 <type name="ConnectStatus"/>
1147 <description>
1148 <text/>
1149 </description>
1150 </leaf>
1151 <container name="custom">
1152 <uses name="Any"/>
1153 <description>
1154 <text>Device type specific attributes
1155TODO additional common attribute here</text>
1156 </description>
1157 </container>
1158 <list name="ports">
1159 <key value="port_no"/>
1160 <uses name="Port"/>
1161 <description>
1162 <text/>
1163 </description>
1164 </list>
1165 <container name="flows">
1166 <uses name="Flows"/>
1167 <description>
1168 <text/>
1169 </description>
1170 </container>
1171 <container name="flow_groups">
1172 <uses name="FlowGroups"/>
1173 <description>
1174 <text/>
1175 </description>
1176 </container>
1177 <container name="pm_configs">
1178 <uses name="PmConfigs"/>
1179 <description>
1180 <text>PmConfigs will eventually converted to a child node of the
1181device to falicitata callbacks and to simplify manipulation.</text>
1182 </description>
1183 </container>
1184 <choice name="choice_0">
1185 <case name="mac_address">
1186 <leaf name="mac_address">
1187 <type name="string"/>
1188 <description>
1189 <text>Device contact MAC address (format: xx:xx:xx:xx:xx:xx )</text>
1190 </description>
1191 </leaf>
1192 </case>
1193 <case name="ipv4_address">
1194 <leaf name="ipv4_address">
1195 <type name="string"/>
1196 <description>
1197 <text>Device contact IPv4 address (format: a.b.c.d or can use hostname too)</text>
1198 </description>
1199 </leaf>
1200 </case>
1201 <case name="ipv6_address">
1202 <leaf name="ipv6_address">
1203 <type name="string"/>
1204 <description>
1205 <text>Device contact IPv6 address using the canonical string form
1206( xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx )</text>
1207 </description>
1208 </leaf>
1209 </case>
1210 <case name="host_and_port">
1211 <leaf name="host_and_port">
1212 <type name="string"/>
1213 <description>
1214 <text/>
1215 </description>
1216 </leaf>
1217 </case>
1218 </choice>
1219 </grouping>
1220 <grouping name="Devices">
1221 <description>
1222 <text/>
1223 </description>
1224 <list name="items">
1225 <key value="id"/>
1226 <uses name="Device"/>
1227 <description>
1228 <text/>
1229 </description>
1230 </list>
1231 </grouping>
1232 <grouping name="Empty">
1233 <description>
1234 <text>A generic empty message that you can re-use to avoid defining duplicated
1235empty messages in your APIs. A typical example is to use it as the request
1236or the response type of an API method. For instance:
1237
1238service Foo
1239rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
1240
1241
1242The JSON representation for `Empty` is empty JSON object ` `.</text>
1243 </description>
1244 </grouping>
1245 <grouping name="HealthStatus">
1246 <description>
1247 <text>Encode health status of a Voltha instance</text>
1248 </description>
1249 <leaf name="state">
1250 <type name="HealthState"/>
1251 <description>
1252 <text>Current state of health of this Voltha instance</text>
1253 </description>
1254 </leaf>
1255 <typedef name="HealthState">
1256 <type name="enumeration">
1257 <enum name="HEALTHY">
1258 <description>
1259 <text/>
1260 </description>
1261 </enum>
1262 <enum name="OVERLOADED">
1263 <description>
1264 <text/>
1265 </description>
1266 </enum>
1267 <enum name="DYING">
1268 <description>
1269 <text/>
1270 </description>
1271 </enum>
1272 </type>
1273 <description>
1274 <text>Health states</text>
1275 </description>
1276 </typedef>
1277 </grouping>
1278 <grouping name="LogicalPort">
1279 <description>
1280 <text/>
1281 </description>
1282 <leaf name="id">
1283 <type name="string"/>
1284 <description>
1285 <text/>
1286 </description>
1287 </leaf>
1288 <container name="ofp_port">
1289 <uses name="ofp_port"/>
1290 <description>
1291 <text/>
1292 </description>
1293 </container>
1294 <leaf name="device_id">
1295 <type name="string"/>
1296 <description>
1297 <text/>
1298 </description>
1299 </leaf>
1300 <leaf name="device_port_no">
1301 <type name="uint32"/>
1302 <description>
1303 <text/>
1304 </description>
1305 </leaf>
1306 <leaf name="root_port">
1307 <type name="boolean"/>
1308 <description>
1309 <text/>
1310 </description>
1311 </leaf>
1312 </grouping>
1313 <grouping name="LogicalPorts">
1314 <description>
1315 <text/>
1316 </description>
1317 <list name="items">
1318 <key value="id"/>
1319 <uses name="LogicalPort"/>
1320 <description>
1321 <text/>
1322 </description>
1323 </list>
1324 </grouping>
1325 <grouping name="LogicalDevice">
1326 <description>
1327 <text/>
1328 </description>
1329 <leaf name="id">
1330 <type name="string"/>
1331 <description>
1332 <text>unique id of logical device</text>
1333 </description>
1334 </leaf>
1335 <leaf name="datapath_id">
1336 <type name="uint64"/>
1337 <description>
1338 <text>unique datapath id for the logical device (used by the SDN controller)</text>
1339 </description>
1340 </leaf>
1341 <container name="desc">
1342 <uses name="ofp_desc"/>
1343 <description>
1344 <text>device description</text>
1345 </description>
1346 </container>
1347 <container name="switch_features">
1348 <uses name="ofp_switch_features"/>
1349 <description>
1350 <text>device features</text>
1351 </description>
1352 </container>
1353 <leaf name="root_device_id">
1354 <type name="string"/>
1355 <description>
1356 <text>name of the root device anchoring logical device</text>
1357 </description>
1358 </leaf>
1359 <list name="ports">
1360 <key value="id"/>
1361 <uses name="LogicalPort"/>
1362 <description>
1363 <text>logical device ports</text>
1364 </description>
1365 </list>
1366 <container name="flows">
1367 <uses name="Flows"/>
1368 <description>
1369 <text>flows configured on the logical device</text>
1370 </description>
1371 </container>
1372 <container name="flow_groups">
1373 <uses name="FlowGroups"/>
1374 <description>
1375 <text>flow groups configured on the logical device</text>
1376 </description>
1377 </container>
1378 </grouping>
1379 <grouping name="LogicalDevices">
1380 <description>
1381 <text/>
1382 </description>
1383 <list name="items">
1384 <key value="id"/>
1385 <uses name="LogicalDevice"/>
1386 <description>
1387 <text/>
1388 </description>
1389 </list>
1390 </grouping>
1391 <typedef name="Access">
1392 <type name="enumeration">
1393 <enum name="CONFIG">
1394 <description>
1395 <text/>
1396 </description>
1397 </enum>
1398 <enum name="READ_ONLY">
1399 <description>
1400 <text/>
1401 </description>
1402 </enum>
1403 <enum name="REAL_TIME">
1404 <description>
1405 <text/>
1406 </description>
1407 </enum>
1408 </type>
1409 <description>
1410 <text/>
1411 </description>
1412 </typedef>
1413 <container name="ChildNode">
1414 <description>
1415 <text/>
1416 </description>
1417 <leaf name="key">
1418 <type name="string"/>
1419 <description>
1420 <text/>
1421 </description>
1422 </leaf>
1423 </container>
1424 <typedef name="ofp_port_no">
1425 <type name="enumeration">
1426 <enum name="OFPP_INVALID">
1427 <description>
1428 <text/>
1429 </description>
1430 </enum>
1431 <enum name="OFPP_MAX">
1432 <description>
1433 <text/>
1434 </description>
1435 </enum>
1436 <enum name="OFPP_IN_PORT">
1437 <description>
1438 <text/>
1439 </description>
1440 </enum>
1441 <enum name="OFPP_TABLE">
1442 <description>
1443 <text/>
1444 </description>
1445 </enum>
1446 <enum name="OFPP_NORMAL">
1447 <description>
1448 <text/>
1449 </description>
1450 </enum>
1451 <enum name="OFPP_FLOOD">
1452 <description>
1453 <text/>
1454 </description>
1455 </enum>
1456 <enum name="OFPP_ALL">
1457 <description>
1458 <text/>
1459 </description>
1460 </enum>
1461 <enum name="OFPP_CONTROLLER">
1462 <description>
1463 <text/>
1464 </description>
1465 </enum>
1466 <enum name="OFPP_LOCAL">
1467 <description>
1468 <text/>
1469 </description>
1470 </enum>
1471 <enum name="OFPP_ANY">
1472 <description>
1473 <text/>
1474 </description>
1475 </enum>
1476 </type>
1477 <description>
1478 <text>Port numbering. Ports are numbered starting from 1.Version number:
1479OpenFlow versions released: 0x01 = 1.0 ; 0x02 = 1.1 ; 0x03 = 1.2
14800x04 = 1.3
1481The most significant bit in the version field is reserved and must
1482be set to zero.
1483#define OFP_VERSION 0x04
1484#define PIPELINE_TABLES 64
1485#define OFP_MAX_TABLE_NAME_LEN 32
1486#define OFP_MAX_PORT_NAME_LEN 16
1487Official IANA registered port for OpenFlow.#define OFP_TCP_PORT 6653
1488#define OFP_SSL_PORT 6653
1489#define OFP_ETH_ALEN 6 Bytes in an Ethernet address. </text>
1490 </description>
1491 </typedef>
1492 <typedef name="ofp_type">
1493 <type name="enumeration">
1494 <enum name="OFPT_HELLO">
1495 <description>
1496 <text/>
1497 </description>
1498 </enum>
1499 <enum name="OFPT_ERROR">
1500 <description>
1501 <text/>
1502 </description>
1503 </enum>
1504 <enum name="OFPT_ECHO_REQUEST">
1505 <description>
1506 <text/>
1507 </description>
1508 </enum>
1509 <enum name="OFPT_ECHO_REPLY">
1510 <description>
1511 <text/>
1512 </description>
1513 </enum>
1514 <enum name="OFPT_EXPERIMENTER">
1515 <description>
1516 <text/>
1517 </description>
1518 </enum>
1519 <enum name="OFPT_FEATURES_REQUEST">
1520 <description>
1521 <text/>
1522 </description>
1523 </enum>
1524 <enum name="OFPT_FEATURES_REPLY">
1525 <description>
1526 <text/>
1527 </description>
1528 </enum>
1529 <enum name="OFPT_GET_CONFIG_REQUEST">
1530 <description>
1531 <text/>
1532 </description>
1533 </enum>
1534 <enum name="OFPT_GET_CONFIG_REPLY">
1535 <description>
1536 <text/>
1537 </description>
1538 </enum>
1539 <enum name="OFPT_SET_CONFIG">
1540 <description>
1541 <text/>
1542 </description>
1543 </enum>
1544 <enum name="OFPT_PACKET_IN">
1545 <description>
1546 <text/>
1547 </description>
1548 </enum>
1549 <enum name="OFPT_FLOW_REMOVED">
1550 <description>
1551 <text/>
1552 </description>
1553 </enum>
1554 <enum name="OFPT_PORT_STATUS">
1555 <description>
1556 <text/>
1557 </description>
1558 </enum>
1559 <enum name="OFPT_PACKET_OUT">
1560 <description>
1561 <text/>
1562 </description>
1563 </enum>
1564 <enum name="OFPT_FLOW_MOD">
1565 <description>
1566 <text/>
1567 </description>
1568 </enum>
1569 <enum name="OFPT_GROUP_MOD">
1570 <description>
1571 <text/>
1572 </description>
1573 </enum>
1574 <enum name="OFPT_PORT_MOD">
1575 <description>
1576 <text/>
1577 </description>
1578 </enum>
1579 <enum name="OFPT_TABLE_MOD">
1580 <description>
1581 <text/>
1582 </description>
1583 </enum>
1584 <enum name="OFPT_MULTIPART_REQUEST">
1585 <description>
1586 <text/>
1587 </description>
1588 </enum>
1589 <enum name="OFPT_MULTIPART_REPLY">
1590 <description>
1591 <text/>
1592 </description>
1593 </enum>
1594 <enum name="OFPT_BARRIER_REQUEST">
1595 <description>
1596 <text/>
1597 </description>
1598 </enum>
1599 <enum name="OFPT_BARRIER_REPLY">
1600 <description>
1601 <text/>
1602 </description>
1603 </enum>
1604 <enum name="OFPT_QUEUE_GET_CONFIG_REQUEST">
1605 <description>
1606 <text/>
1607 </description>
1608 </enum>
1609 <enum name="OFPT_QUEUE_GET_CONFIG_REPLY">
1610 <description>
1611 <text/>
1612 </description>
1613 </enum>
1614 <enum name="OFPT_ROLE_REQUEST">
1615 <description>
1616 <text/>
1617 </description>
1618 </enum>
1619 <enum name="OFPT_ROLE_REPLY">
1620 <description>
1621 <text/>
1622 </description>
1623 </enum>
1624 <enum name="OFPT_GET_ASYNC_REQUEST">
1625 <description>
1626 <text/>
1627 </description>
1628 </enum>
1629 <enum name="OFPT_GET_ASYNC_REPLY">
1630 <description>
1631 <text/>
1632 </description>
1633 </enum>
1634 <enum name="OFPT_SET_ASYNC">
1635 <description>
1636 <text/>
1637 </description>
1638 </enum>
1639 <enum name="OFPT_METER_MOD">
1640 <description>
1641 <text/>
1642 </description>
1643 </enum>
1644 </type>
1645 <description>
1646 <text/>
1647 </description>
1648 </typedef>
1649 <typedef name="ofp_hello_elem_type">
1650 <type name="enumeration">
1651 <enum name="OFPHET_INVALID">
1652 <description>
1653 <text/>
1654 </description>
1655 </enum>
1656 <enum name="OFPHET_VERSIONBITMAP">
1657 <description>
1658 <text/>
1659 </description>
1660 </enum>
1661 </type>
1662 <description>
1663 <text>Hello elements types.</text>
1664 </description>
1665 </typedef>
1666 <typedef name="ofp_config_flags">
1667 <type name="enumeration">
1668 <enum name="OFPC_FRAG_NORMAL">
1669 <description>
1670 <text/>
1671 </description>
1672 </enum>
1673 <enum name="OFPC_FRAG_DROP">
1674 <description>
1675 <text/>
1676 </description>
1677 </enum>
1678 <enum name="OFPC_FRAG_REASM">
1679 <description>
1680 <text/>
1681 </description>
1682 </enum>
1683 <enum name="OFPC_FRAG_MASK">
1684 <description>
1685 <text/>
1686 </description>
1687 </enum>
1688 </type>
1689 <description>
1690 <text>#define OFP_DEFAULT_MISS_SEND_LEN 128</text>
1691 </description>
1692 </typedef>
1693 <typedef name="ofp_table_config">
1694 <type name="enumeration">
1695 <enum name="OFPTC_INVALID">
1696 <description>
1697 <text/>
1698 </description>
1699 </enum>
1700 <enum name="OFPTC_DEPRECATED_MASK">
1701 <description>
1702 <text/>
1703 </description>
1704 </enum>
1705 </type>
1706 <description>
1707 <text>Flags to configure the table. Reserved for future use.</text>
1708 </description>
1709 </typedef>
1710 <typedef name="ofp_table">
1711 <type name="enumeration">
1712 <enum name="OFPTT_INVALID">
1713 <description>
1714 <text/>
1715 </description>
1716 </enum>
1717 <enum name="OFPTT_MAX">
1718 <description>
1719 <text/>
1720 </description>
1721 </enum>
1722 <enum name="OFPTT_ALL">
1723 <description>
1724 <text/>
1725 </description>
1726 </enum>
1727 </type>
1728 <description>
1729 <text>Table numbering. Tables can use any number up to OFPT_MAX.</text>
1730 </description>
1731 </typedef>
1732 <typedef name="ofp_capabilities">
1733 <type name="enumeration">
1734 <enum name="OFPC_INVALID">
1735 <description>
1736 <text/>
1737 </description>
1738 </enum>
1739 <enum name="OFPC_FLOW_STATS">
1740 <description>
1741 <text/>
1742 </description>
1743 </enum>
1744 <enum name="OFPC_TABLE_STATS">
1745 <description>
1746 <text/>
1747 </description>
1748 </enum>
1749 <enum name="OFPC_PORT_STATS">
1750 <description>
1751 <text/>
1752 </description>
1753 </enum>
1754 <enum name="OFPC_GROUP_STATS">
1755 <description>
1756 <text/>
1757 </description>
1758 </enum>
1759 <enum name="OFPC_IP_REASM">
1760 <description>
1761 <text/>
1762 </description>
1763 </enum>
1764 <enum name="OFPC_QUEUE_STATS">
1765 <description>
1766 <text/>
1767 </description>
1768 </enum>
1769 <enum name="OFPC_PORT_BLOCKED">
1770 <description>
1771 <text/>
1772 </description>
1773 </enum>
1774 </type>
1775 <description>
1776 <text>Capabilities supported by the datapath.</text>
1777 </description>
1778 </typedef>
1779 <typedef name="ofp_port_config">
1780 <type name="enumeration">
1781 <enum name="OFPPC_INVALID">
1782 <description>
1783 <text/>
1784 </description>
1785 </enum>
1786 <enum name="OFPPC_PORT_DOWN">
1787 <description>
1788 <text/>
1789 </description>
1790 </enum>
1791 <enum name="OFPPC_NO_RECV">
1792 <description>
1793 <text/>
1794 </description>
1795 </enum>
1796 <enum name="OFPPC_NO_FWD">
1797 <description>
1798 <text/>
1799 </description>
1800 </enum>
1801 <enum name="OFPPC_NO_PACKET_IN">
1802 <description>
1803 <text/>
1804 </description>
1805 </enum>
1806 </type>
1807 <description>
1808 <text>Flags to indicate behavior of the physical port. These flags are
1809used in ofp_port to describe the current configuration. They are
1810used in the ofp_port_mod message to configure the port's behavior.</text>
1811 </description>
1812 </typedef>
1813 <typedef name="ofp_port_state">
1814 <type name="enumeration">
1815 <enum name="OFPPS_INVALID">
1816 <description>
1817 <text/>
1818 </description>
1819 </enum>
1820 <enum name="OFPPS_LINK_DOWN">
1821 <description>
1822 <text/>
1823 </description>
1824 </enum>
1825 <enum name="OFPPS_BLOCKED">
1826 <description>
1827 <text/>
1828 </description>
1829 </enum>
1830 <enum name="OFPPS_LIVE">
1831 <description>
1832 <text/>
1833 </description>
1834 </enum>
1835 </type>
1836 <description>
1837 <text>Current state of the physical port. These are not configurable from
1838the controller.</text>
1839 </description>
1840 </typedef>
1841 <typedef name="ofp_port_features">
1842 <type name="enumeration">
1843 <enum name="OFPPF_INVALID">
1844 <description>
1845 <text/>
1846 </description>
1847 </enum>
1848 <enum name="OFPPF_10MB_HD">
1849 <description>
1850 <text/>
1851 </description>
1852 </enum>
1853 <enum name="OFPPF_10MB_FD">
1854 <description>
1855 <text/>
1856 </description>
1857 </enum>
1858 <enum name="OFPPF_100MB_HD">
1859 <description>
1860 <text/>
1861 </description>
1862 </enum>
1863 <enum name="OFPPF_100MB_FD">
1864 <description>
1865 <text/>
1866 </description>
1867 </enum>
1868 <enum name="OFPPF_1GB_HD">
1869 <description>
1870 <text/>
1871 </description>
1872 </enum>
1873 <enum name="OFPPF_1GB_FD">
1874 <description>
1875 <text/>
1876 </description>
1877 </enum>
1878 <enum name="OFPPF_10GB_FD">
1879 <description>
1880 <text/>
1881 </description>
1882 </enum>
1883 <enum name="OFPPF_40GB_FD">
1884 <description>
1885 <text/>
1886 </description>
1887 </enum>
1888 <enum name="OFPPF_100GB_FD">
1889 <description>
1890 <text/>
1891 </description>
1892 </enum>
1893 <enum name="OFPPF_1TB_FD">
1894 <description>
1895 <text/>
1896 </description>
1897 </enum>
1898 <enum name="OFPPF_OTHER">
1899 <description>
1900 <text/>
1901 </description>
1902 </enum>
1903 <enum name="OFPPF_COPPER">
1904 <description>
1905 <text/>
1906 </description>
1907 </enum>
1908 <enum name="OFPPF_FIBER">
1909 <description>
1910 <text/>
1911 </description>
1912 </enum>
1913 <enum name="OFPPF_AUTONEG">
1914 <description>
1915 <text/>
1916 </description>
1917 </enum>
1918 <enum name="OFPPF_PAUSE">
1919 <description>
1920 <text/>
1921 </description>
1922 </enum>
1923 <enum name="OFPPF_PAUSE_ASYM">
1924 <description>
1925 <text/>
1926 </description>
1927 </enum>
1928 </type>
1929 <description>
1930 <text>Features of ports available in a datapath.</text>
1931 </description>
1932 </typedef>
1933 <typedef name="ofp_port_reason">
1934 <type name="enumeration">
1935 <enum name="OFPPR_ADD">
1936 <description>
1937 <text/>
1938 </description>
1939 </enum>
1940 <enum name="OFPPR_DELETE">
1941 <description>
1942 <text/>
1943 </description>
1944 </enum>
1945 <enum name="OFPPR_MODIFY">
1946 <description>
1947 <text/>
1948 </description>
1949 </enum>
1950 </type>
1951 <description>
1952 <text>What changed about the physical port</text>
1953 </description>
1954 </typedef>
1955 <typedef name="ofp_match_type">
1956 <type name="enumeration">
1957 <enum name="OFPMT_STANDARD">
1958 <description>
1959 <text/>
1960 </description>
1961 </enum>
1962 <enum name="OFPMT_OXM">
1963 <description>
1964 <text/>
1965 </description>
1966 </enum>
1967 </type>
1968 <description>
1969 <text>The match type indicates the match structure (set of fields that compose the
1970match) in use. The match type is placed in the type field at the beginning
1971of all match structures. The OpenFlow Extensible Match type corresponds
1972to OXM TLV format described below and must be supported by all OpenFlow
1973switches. Extensions that define other match types may be published on the
1974ONF wiki. Support for extensions is optional.
1975## -------------------------- #### OpenFlow Extensible Match. #### -------------------------- ##</text>
1976 </description>
1977 </typedef>
1978 <typedef name="ofp_oxm_class">
1979 <type name="enumeration">
1980 <enum name="OFPXMC_NXM_0">
1981 <description>
1982 <text/>
1983 </description>
1984 </enum>
1985 <enum name="OFPXMC_NXM_1">
1986 <description>
1987 <text/>
1988 </description>
1989 </enum>
1990 <enum name="OFPXMC_OPENFLOW_BASIC">
1991 <description>
1992 <text/>
1993 </description>
1994 </enum>
1995 <enum name="OFPXMC_EXPERIMENTER">
1996 <description>
1997 <text/>
1998 </description>
1999 </enum>
2000 </type>
2001 <description>
2002 <text>OXM Class IDs.
2003The high order bit differentiate reserved classes from member classes.
2004Classes 0x0000 to 0x7FFF are member classes, allocated by ONF.
2005Classes 0x8000 to 0xFFFE are reserved classes, reserved for standardisation.
2006Components of a OXM TLV header.
2007Those macros are not valid for the experimenter class, macros for the
2008experimenter class will depend on the experimenter header used.#define OXM_HEADER__(CLASS, FIELD, HASMASK, LENGTH)
2009(((CLASS) 16) | ((FIELD) 9) | ((HASMASK) 8) | (LENGTH))
2010#define OXM_HEADER(CLASS, FIELD, LENGTH)
2011OXM_HEADER__(CLASS, FIELD, 0, LENGTH)
2012#define OXM_HEADER_W(CLASS, FIELD, LENGTH)
2013OXM_HEADER__(CLASS, FIELD, 1, (LENGTH) 2)
2014#define OXM_CLASS(HEADER) ((HEADER) 16)
2015#define OXM_FIELD(HEADER) (((HEADER) 9) &amp;amp; 0x7f)
2016#define OXM_TYPE(HEADER) (((HEADER) 9) &amp;amp; 0x7fffff)
2017#define OXM_HASMASK(HEADER) (((HEADER) 8) &amp;amp; 1)
2018#define OXM_LENGTH(HEADER) ((HEADER) &amp;amp; 0xff)
2019
2020#define OXM_MAKE_WILD_HEADER(HEADER)
2021OXM_HEADER_W(OXM_CLASS(HEADER), OXM_FIELD(HEADER), OXM_LENGTH(HEADER))</text>
2022 </description>
2023 </typedef>
2024 <typedef name="oxm_ofb_field_types">
2025 <type name="enumeration">
2026 <enum name="OFPXMT_OFB_IN_PORT">
2027 <description>
2028 <text/>
2029 </description>
2030 </enum>
2031 <enum name="OFPXMT_OFB_IN_PHY_PORT">
2032 <description>
2033 <text/>
2034 </description>
2035 </enum>
2036 <enum name="OFPXMT_OFB_METADATA">
2037 <description>
2038 <text/>
2039 </description>
2040 </enum>
2041 <enum name="OFPXMT_OFB_ETH_DST">
2042 <description>
2043 <text/>
2044 </description>
2045 </enum>
2046 <enum name="OFPXMT_OFB_ETH_SRC">
2047 <description>
2048 <text/>
2049 </description>
2050 </enum>
2051 <enum name="OFPXMT_OFB_ETH_TYPE">
2052 <description>
2053 <text/>
2054 </description>
2055 </enum>
2056 <enum name="OFPXMT_OFB_VLAN_VID">
2057 <description>
2058 <text/>
2059 </description>
2060 </enum>
2061 <enum name="OFPXMT_OFB_VLAN_PCP">
2062 <description>
2063 <text/>
2064 </description>
2065 </enum>
2066 <enum name="OFPXMT_OFB_IP_DSCP">
2067 <description>
2068 <text/>
2069 </description>
2070 </enum>
2071 <enum name="OFPXMT_OFB_IP_ECN">
2072 <description>
2073 <text/>
2074 </description>
2075 </enum>
2076 <enum name="OFPXMT_OFB_IP_PROTO">
2077 <description>
2078 <text/>
2079 </description>
2080 </enum>
2081 <enum name="OFPXMT_OFB_IPV4_SRC">
2082 <description>
2083 <text/>
2084 </description>
2085 </enum>
2086 <enum name="OFPXMT_OFB_IPV4_DST">
2087 <description>
2088 <text/>
2089 </description>
2090 </enum>
2091 <enum name="OFPXMT_OFB_TCP_SRC">
2092 <description>
2093 <text/>
2094 </description>
2095 </enum>
2096 <enum name="OFPXMT_OFB_TCP_DST">
2097 <description>
2098 <text/>
2099 </description>
2100 </enum>
2101 <enum name="OFPXMT_OFB_UDP_SRC">
2102 <description>
2103 <text/>
2104 </description>
2105 </enum>
2106 <enum name="OFPXMT_OFB_UDP_DST">
2107 <description>
2108 <text/>
2109 </description>
2110 </enum>
2111 <enum name="OFPXMT_OFB_SCTP_SRC">
2112 <description>
2113 <text/>
2114 </description>
2115 </enum>
2116 <enum name="OFPXMT_OFB_SCTP_DST">
2117 <description>
2118 <text/>
2119 </description>
2120 </enum>
2121 <enum name="OFPXMT_OFB_ICMPV4_TYPE">
2122 <description>
2123 <text/>
2124 </description>
2125 </enum>
2126 <enum name="OFPXMT_OFB_ICMPV4_CODE">
2127 <description>
2128 <text/>
2129 </description>
2130 </enum>
2131 <enum name="OFPXMT_OFB_ARP_OP">
2132 <description>
2133 <text/>
2134 </description>
2135 </enum>
2136 <enum name="OFPXMT_OFB_ARP_SPA">
2137 <description>
2138 <text/>
2139 </description>
2140 </enum>
2141 <enum name="OFPXMT_OFB_ARP_TPA">
2142 <description>
2143 <text/>
2144 </description>
2145 </enum>
2146 <enum name="OFPXMT_OFB_ARP_SHA">
2147 <description>
2148 <text/>
2149 </description>
2150 </enum>
2151 <enum name="OFPXMT_OFB_ARP_THA">
2152 <description>
2153 <text/>
2154 </description>
2155 </enum>
2156 <enum name="OFPXMT_OFB_IPV6_SRC">
2157 <description>
2158 <text/>
2159 </description>
2160 </enum>
2161 <enum name="OFPXMT_OFB_IPV6_DST">
2162 <description>
2163 <text/>
2164 </description>
2165 </enum>
2166 <enum name="OFPXMT_OFB_IPV6_FLABEL">
2167 <description>
2168 <text/>
2169 </description>
2170 </enum>
2171 <enum name="OFPXMT_OFB_ICMPV6_TYPE">
2172 <description>
2173 <text/>
2174 </description>
2175 </enum>
2176 <enum name="OFPXMT_OFB_ICMPV6_CODE">
2177 <description>
2178 <text/>
2179 </description>
2180 </enum>
2181 <enum name="OFPXMT_OFB_IPV6_ND_TARGET">
2182 <description>
2183 <text/>
2184 </description>
2185 </enum>
2186 <enum name="OFPXMT_OFB_IPV6_ND_SLL">
2187 <description>
2188 <text/>
2189 </description>
2190 </enum>
2191 <enum name="OFPXMT_OFB_IPV6_ND_TLL">
2192 <description>
2193 <text/>
2194 </description>
2195 </enum>
2196 <enum name="OFPXMT_OFB_MPLS_LABEL">
2197 <description>
2198 <text/>
2199 </description>
2200 </enum>
2201 <enum name="OFPXMT_OFB_MPLS_TC">
2202 <description>
2203 <text/>
2204 </description>
2205 </enum>
2206 <enum name="OFPXMT_OFB_MPLS_BOS">
2207 <description>
2208 <text/>
2209 </description>
2210 </enum>
2211 <enum name="OFPXMT_OFB_PBB_ISID">
2212 <description>
2213 <text/>
2214 </description>
2215 </enum>
2216 <enum name="OFPXMT_OFB_TUNNEL_ID">
2217 <description>
2218 <text/>
2219 </description>
2220 </enum>
2221 <enum name="OFPXMT_OFB_IPV6_EXTHDR">
2222 <description>
2223 <text/>
2224 </description>
2225 </enum>
2226 </type>
2227 <description>
2228 <text>OXM Flow field types for OpenFlow basic class.</text>
2229 </description>
2230 </typedef>
2231 <typedef name="ofp_vlan_id">
2232 <type name="enumeration">
2233 <enum name="OFPVID_NONE">
2234 <description>
2235 <text/>
2236 </description>
2237 </enum>
2238 <enum name="OFPVID_PRESENT">
2239 <description>
2240 <text/>
2241 </description>
2242 </enum>
2243 </type>
2244 <description>
2245 <text>The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
2246special conditions.</text>
2247 </description>
2248 </typedef>
2249 <typedef name="ofp_ipv6exthdr_flags">
2250 <type name="enumeration">
2251 <enum name="OFPIEH_INVALID">
2252 <description>
2253 <text/>
2254 </description>
2255 </enum>
2256 <enum name="OFPIEH_NONEXT">
2257 <description>
2258 <text/>
2259 </description>
2260 </enum>
2261 <enum name="OFPIEH_ESP">
2262 <description>
2263 <text/>
2264 </description>
2265 </enum>
2266 <enum name="OFPIEH_AUTH">
2267 <description>
2268 <text/>
2269 </description>
2270 </enum>
2271 <enum name="OFPIEH_DEST">
2272 <description>
2273 <text/>
2274 </description>
2275 </enum>
2276 <enum name="OFPIEH_FRAG">
2277 <description>
2278 <text/>
2279 </description>
2280 </enum>
2281 <enum name="OFPIEH_ROUTER">
2282 <description>
2283 <text/>
2284 </description>
2285 </enum>
2286 <enum name="OFPIEH_HOP">
2287 <description>
2288 <text/>
2289 </description>
2290 </enum>
2291 <enum name="OFPIEH_UNREP">
2292 <description>
2293 <text/>
2294 </description>
2295 </enum>
2296 <enum name="OFPIEH_UNSEQ">
2297 <description>
2298 <text/>
2299 </description>
2300 </enum>
2301 </type>
2302 <description>
2303 <text>Bit definitions for IPv6 Extension Header pseudo-field.#define OFP_VLAN_NONE OFPVID_NONE</text>
2304 </description>
2305 </typedef>
2306 <typedef name="ofp_action_type">
2307 <type name="enumeration">
2308 <enum name="OFPAT_OUTPUT">
2309 <description>
2310 <text/>
2311 </description>
2312 </enum>
2313 <enum name="OFPAT_COPY_TTL_OUT">
2314 <description>
2315 <text/>
2316 </description>
2317 </enum>
2318 <enum name="OFPAT_COPY_TTL_IN">
2319 <description>
2320 <text/>
2321 </description>
2322 </enum>
2323 <enum name="OFPAT_SET_MPLS_TTL">
2324 <description>
2325 <text/>
2326 </description>
2327 </enum>
2328 <enum name="OFPAT_DEC_MPLS_TTL">
2329 <description>
2330 <text/>
2331 </description>
2332 </enum>
2333 <enum name="OFPAT_PUSH_VLAN">
2334 <description>
2335 <text/>
2336 </description>
2337 </enum>
2338 <enum name="OFPAT_POP_VLAN">
2339 <description>
2340 <text/>
2341 </description>
2342 </enum>
2343 <enum name="OFPAT_PUSH_MPLS">
2344 <description>
2345 <text/>
2346 </description>
2347 </enum>
2348 <enum name="OFPAT_POP_MPLS">
2349 <description>
2350 <text/>
2351 </description>
2352 </enum>
2353 <enum name="OFPAT_SET_QUEUE">
2354 <description>
2355 <text/>
2356 </description>
2357 </enum>
2358 <enum name="OFPAT_GROUP">
2359 <description>
2360 <text/>
2361 </description>
2362 </enum>
2363 <enum name="OFPAT_SET_NW_TTL">
2364 <description>
2365 <text/>
2366 </description>
2367 </enum>
2368 <enum name="OFPAT_DEC_NW_TTL">
2369 <description>
2370 <text/>
2371 </description>
2372 </enum>
2373 <enum name="OFPAT_SET_FIELD">
2374 <description>
2375 <text/>
2376 </description>
2377 </enum>
2378 <enum name="OFPAT_PUSH_PBB">
2379 <description>
2380 <text/>
2381 </description>
2382 </enum>
2383 <enum name="OFPAT_POP_PBB">
2384 <description>
2385 <text/>
2386 </description>
2387 </enum>
2388 <enum name="OFPAT_EXPERIMENTER">
2389 <description>
2390 <text/>
2391 </description>
2392 </enum>
2393 </type>
2394 <description>
2395 <text>## ----------------- #### OpenFlow Actions. #### ----------------- ##</text>
2396 </description>
2397 </typedef>
2398 <typedef name="ofp_controller_max_len">
2399 <type name="enumeration">
2400 <enum name="OFPCML_INVALID">
2401 <description>
2402 <text/>
2403 </description>
2404 </enum>
2405 <enum name="OFPCML_MAX">
2406 <description>
2407 <text/>
2408 </description>
2409 </enum>
2410 <enum name="OFPCML_NO_BUFFER">
2411 <description>
2412 <text/>
2413 </description>
2414 </enum>
2415 </type>
2416 <description>
2417 <text/>
2418 </description>
2419 </typedef>
2420 <typedef name="ofp_instruction_type">
2421 <type name="enumeration">
2422 <enum name="OFPIT_INVALID">
2423 <description>
2424 <text/>
2425 </description>
2426 </enum>
2427 <enum name="OFPIT_GOTO_TABLE">
2428 <description>
2429 <text/>
2430 </description>
2431 </enum>
2432 <enum name="OFPIT_WRITE_METADATA">
2433 <description>
2434 <text/>
2435 </description>
2436 </enum>
2437 <enum name="OFPIT_WRITE_ACTIONS">
2438 <description>
2439 <text/>
2440 </description>
2441 </enum>
2442 <enum name="OFPIT_APPLY_ACTIONS">
2443 <description>
2444 <text/>
2445 </description>
2446 </enum>
2447 <enum name="OFPIT_CLEAR_ACTIONS">
2448 <description>
2449 <text/>
2450 </description>
2451 </enum>
2452 <enum name="OFPIT_METER">
2453 <description>
2454 <text/>
2455 </description>
2456 </enum>
2457 <enum name="OFPIT_EXPERIMENTER">
2458 <description>
2459 <text/>
2460 </description>
2461 </enum>
2462 </type>
2463 <description>
2464 <text>## ---------------------- #### OpenFlow Instructions. #### ---------------------- ##</text>
2465 </description>
2466 </typedef>
2467 <typedef name="ofp_flow_mod_command">
2468 <type name="enumeration">
2469 <enum name="OFPFC_ADD">
2470 <description>
2471 <text/>
2472 </description>
2473 </enum>
2474 <enum name="OFPFC_MODIFY">
2475 <description>
2476 <text/>
2477 </description>
2478 </enum>
2479 <enum name="OFPFC_MODIFY_STRICT">
2480 <description>
2481 <text/>
2482 </description>
2483 </enum>
2484 <enum name="OFPFC_DELETE">
2485 <description>
2486 <text/>
2487 </description>
2488 </enum>
2489 <enum name="OFPFC_DELETE_STRICT">
2490 <description>
2491 <text/>
2492 </description>
2493 </enum>
2494 </type>
2495 <description>
2496 <text>## --------------------------- #### OpenFlow Flow Modification. #### --------------------------- ##</text>
2497 </description>
2498 </typedef>
2499 <typedef name="ofp_flow_mod_flags">
2500 <type name="enumeration">
2501 <enum name="OFPFF_INVALID">
2502 <description>
2503 <text/>
2504 </description>
2505 </enum>
2506 <enum name="OFPFF_SEND_FLOW_REM">
2507 <description>
2508 <text/>
2509 </description>
2510 </enum>
2511 <enum name="OFPFF_CHECK_OVERLAP">
2512 <description>
2513 <text/>
2514 </description>
2515 </enum>
2516 <enum name="OFPFF_RESET_COUNTS">
2517 <description>
2518 <text/>
2519 </description>
2520 </enum>
2521 <enum name="OFPFF_NO_PKT_COUNTS">
2522 <description>
2523 <text/>
2524 </description>
2525 </enum>
2526 <enum name="OFPFF_NO_BYT_COUNTS">
2527 <description>
2528 <text/>
2529 </description>
2530 </enum>
2531 </type>
2532 <description>
2533 <text>Value used in idle_timeout and hard_timeout to indicate that the entry
2534is permanent.#define OFP_FLOW_PERMANENT 0
2535By default, choose a priority in the middle.#define OFP_DEFAULT_PRIORITY 0x8000</text>
2536 </description>
2537 </typedef>
2538 <typedef name="ofp_group">
2539 <type name="enumeration">
2540 <enum name="OFPG_INVALID">
2541 <description>
2542 <text/>
2543 </description>
2544 </enum>
2545 <enum name="OFPG_MAX">
2546 <description>
2547 <text/>
2548 </description>
2549 </enum>
2550 <enum name="OFPG_ALL">
2551 <description>
2552 <text/>
2553 </description>
2554 </enum>
2555 <enum name="OFPG_ANY">
2556 <description>
2557 <text/>
2558 </description>
2559 </enum>
2560 </type>
2561 <description>
2562 <text>Group numbering. Groups can use any number up to OFPG_MAX.</text>
2563 </description>
2564 </typedef>
2565 <typedef name="ofp_group_mod_command">
2566 <type name="enumeration">
2567 <enum name="OFPGC_ADD">
2568 <description>
2569 <text/>
2570 </description>
2571 </enum>
2572 <enum name="OFPGC_MODIFY">
2573 <description>
2574 <text/>
2575 </description>
2576 </enum>
2577 <enum name="OFPGC_DELETE">
2578 <description>
2579 <text/>
2580 </description>
2581 </enum>
2582 </type>
2583 <description>
2584 <text>Group commands</text>
2585 </description>
2586 </typedef>
2587 <typedef name="ofp_group_type">
2588 <type name="enumeration">
2589 <enum name="OFPGT_ALL">
2590 <description>
2591 <text/>
2592 </description>
2593 </enum>
2594 <enum name="OFPGT_SELECT">
2595 <description>
2596 <text/>
2597 </description>
2598 </enum>
2599 <enum name="OFPGT_INDIRECT">
2600 <description>
2601 <text/>
2602 </description>
2603 </enum>
2604 <enum name="OFPGT_FF">
2605 <description>
2606 <text/>
2607 </description>
2608 </enum>
2609 </type>
2610 <description>
2611 <text>Group types. Values in the range 128; 255 are reserved for experimental
2612use.</text>
2613 </description>
2614 </typedef>
2615 <typedef name="ofp_packet_in_reason">
2616 <type name="enumeration">
2617 <enum name="OFPR_NO_MATCH">
2618 <description>
2619 <text/>
2620 </description>
2621 </enum>
2622 <enum name="OFPR_ACTION">
2623 <description>
2624 <text/>
2625 </description>
2626 </enum>
2627 <enum name="OFPR_INVALID_TTL">
2628 <description>
2629 <text/>
2630 </description>
2631 </enum>
2632 </type>
2633 <description>
2634 <text>Why is this packet being sent to the controller?</text>
2635 </description>
2636 </typedef>
2637 <typedef name="ofp_flow_removed_reason">
2638 <type name="enumeration">
2639 <enum name="OFPRR_IDLE_TIMEOUT">
2640 <description>
2641 <text/>
2642 </description>
2643 </enum>
2644 <enum name="OFPRR_HARD_TIMEOUT">
2645 <description>
2646 <text/>
2647 </description>
2648 </enum>
2649 <enum name="OFPRR_DELETE">
2650 <description>
2651 <text/>
2652 </description>
2653 </enum>
2654 <enum name="OFPRR_GROUP_DELETE">
2655 <description>
2656 <text/>
2657 </description>
2658 </enum>
2659 <enum name="OFPRR_METER_DELETE">
2660 <description>
2661 <text/>
2662 </description>
2663 </enum>
2664 </type>
2665 <description>
2666 <text>Why was this flow removed?</text>
2667 </description>
2668 </typedef>
2669 <typedef name="ofp_meter">
2670 <type name="enumeration">
2671 <enum name="OFPM_ZERO">
2672 <description>
2673 <text/>
2674 </description>
2675 </enum>
2676 <enum name="OFPM_MAX">
2677 <description>
2678 <text/>
2679 </description>
2680 </enum>
2681 <enum name="OFPM_SLOWPATH">
2682 <description>
2683 <text/>
2684 </description>
2685 </enum>
2686 <enum name="OFPM_CONTROLLER">
2687 <description>
2688 <text/>
2689 </description>
2690 </enum>
2691 <enum name="OFPM_ALL">
2692 <description>
2693 <text/>
2694 </description>
2695 </enum>
2696 </type>
2697 <description>
2698 <text>Meter numbering. Flow meters can use any number up to OFPM_MAX.</text>
2699 </description>
2700 </typedef>
2701 <typedef name="ofp_meter_band_type">
2702 <type name="enumeration">
2703 <enum name="OFPMBT_INVALID">
2704 <description>
2705 <text/>
2706 </description>
2707 </enum>
2708 <enum name="OFPMBT_DROP">
2709 <description>
2710 <text/>
2711 </description>
2712 </enum>
2713 <enum name="OFPMBT_DSCP_REMARK">
2714 <description>
2715 <text/>
2716 </description>
2717 </enum>
2718 <enum name="OFPMBT_EXPERIMENTER">
2719 <description>
2720 <text/>
2721 </description>
2722 </enum>
2723 </type>
2724 <description>
2725 <text>Meter band types</text>
2726 </description>
2727 </typedef>
2728 <typedef name="ofp_meter_mod_command">
2729 <type name="enumeration">
2730 <enum name="OFPMC_ADD">
2731 <description>
2732 <text/>
2733 </description>
2734 </enum>
2735 <enum name="OFPMC_MODIFY">
2736 <description>
2737 <text/>
2738 </description>
2739 </enum>
2740 <enum name="OFPMC_DELETE">
2741 <description>
2742 <text/>
2743 </description>
2744 </enum>
2745 </type>
2746 <description>
2747 <text>Meter commands</text>
2748 </description>
2749 </typedef>
2750 <typedef name="ofp_meter_flags">
2751 <type name="enumeration">
2752 <enum name="OFPMF_INVALID">
2753 <description>
2754 <text/>
2755 </description>
2756 </enum>
2757 <enum name="OFPMF_KBPS">
2758 <description>
2759 <text/>
2760 </description>
2761 </enum>
2762 <enum name="OFPMF_PKTPS">
2763 <description>
2764 <text/>
2765 </description>
2766 </enum>
2767 <enum name="OFPMF_BURST">
2768 <description>
2769 <text/>
2770 </description>
2771 </enum>
2772 <enum name="OFPMF_STATS">
2773 <description>
2774 <text/>
2775 </description>
2776 </enum>
2777 </type>
2778 <description>
2779 <text>Meter configuration flags</text>
2780 </description>
2781 </typedef>
2782 <typedef name="ofp_error_type">
2783 <type name="enumeration">
2784 <enum name="OFPET_HELLO_FAILED">
2785 <description>
2786 <text/>
2787 </description>
2788 </enum>
2789 <enum name="OFPET_BAD_REQUEST">
2790 <description>
2791 <text/>
2792 </description>
2793 </enum>
2794 <enum name="OFPET_BAD_ACTION">
2795 <description>
2796 <text/>
2797 </description>
2798 </enum>
2799 <enum name="OFPET_BAD_INSTRUCTION">
2800 <description>
2801 <text/>
2802 </description>
2803 </enum>
2804 <enum name="OFPET_BAD_MATCH">
2805 <description>
2806 <text/>
2807 </description>
2808 </enum>
2809 <enum name="OFPET_FLOW_MOD_FAILED">
2810 <description>
2811 <text/>
2812 </description>
2813 </enum>
2814 <enum name="OFPET_GROUP_MOD_FAILED">
2815 <description>
2816 <text/>
2817 </description>
2818 </enum>
2819 <enum name="OFPET_PORT_MOD_FAILED">
2820 <description>
2821 <text/>
2822 </description>
2823 </enum>
2824 <enum name="OFPET_TABLE_MOD_FAILED">
2825 <description>
2826 <text/>
2827 </description>
2828 </enum>
2829 <enum name="OFPET_QUEUE_OP_FAILED">
2830 <description>
2831 <text/>
2832 </description>
2833 </enum>
2834 <enum name="OFPET_SWITCH_CONFIG_FAILED">
2835 <description>
2836 <text/>
2837 </description>
2838 </enum>
2839 <enum name="OFPET_ROLE_REQUEST_FAILED">
2840 <description>
2841 <text/>
2842 </description>
2843 </enum>
2844 <enum name="OFPET_METER_MOD_FAILED">
2845 <description>
2846 <text/>
2847 </description>
2848 </enum>
2849 <enum name="OFPET_TABLE_FEATURES_FAILED">
2850 <description>
2851 <text/>
2852 </description>
2853 </enum>
2854 <enum name="OFPET_EXPERIMENTER">
2855 <description>
2856 <text/>
2857 </description>
2858 </enum>
2859 </type>
2860 <description>
2861 <text>Values for 'type' in ofp_error_message. These values are immutable: they
2862will not change in future versions of the protocol (although new values may
2863be added).</text>
2864 </description>
2865 </typedef>
2866 <typedef name="ofp_hello_failed_code">
2867 <type name="enumeration">
2868 <enum name="OFPHFC_INCOMPATIBLE">
2869 <description>
2870 <text/>
2871 </description>
2872 </enum>
2873 <enum name="OFPHFC_EPERM">
2874 <description>
2875 <text/>
2876 </description>
2877 </enum>
2878 </type>
2879 <description>
2880 <text>ofp_error_msg 'code' values for OFPET_HELLO_FAILED. 'data' contains an
2881ASCII text string that may give failure details.</text>
2882 </description>
2883 </typedef>
2884 <typedef name="ofp_bad_request_code">
2885 <type name="enumeration">
2886 <enum name="OFPBRC_BAD_VERSION">
2887 <description>
2888 <text/>
2889 </description>
2890 </enum>
2891 <enum name="OFPBRC_BAD_TYPE">
2892 <description>
2893 <text/>
2894 </description>
2895 </enum>
2896 <enum name="OFPBRC_BAD_MULTIPART">
2897 <description>
2898 <text/>
2899 </description>
2900 </enum>
2901 <enum name="OFPBRC_BAD_EXPERIMENTER">
2902 <description>
2903 <text/>
2904 </description>
2905 </enum>
2906 <enum name="OFPBRC_BAD_EXP_TYPE">
2907 <description>
2908 <text/>
2909 </description>
2910 </enum>
2911 <enum name="OFPBRC_EPERM">
2912 <description>
2913 <text/>
2914 </description>
2915 </enum>
2916 <enum name="OFPBRC_BAD_LEN">
2917 <description>
2918 <text/>
2919 </description>
2920 </enum>
2921 <enum name="OFPBRC_BUFFER_EMPTY">
2922 <description>
2923 <text/>
2924 </description>
2925 </enum>
2926 <enum name="OFPBRC_BUFFER_UNKNOWN">
2927 <description>
2928 <text/>
2929 </description>
2930 </enum>
2931 <enum name="OFPBRC_BAD_TABLE_ID">
2932 <description>
2933 <text/>
2934 </description>
2935 </enum>
2936 <enum name="OFPBRC_IS_SLAVE">
2937 <description>
2938 <text/>
2939 </description>
2940 </enum>
2941 <enum name="OFPBRC_BAD_PORT">
2942 <description>
2943 <text/>
2944 </description>
2945 </enum>
2946 <enum name="OFPBRC_BAD_PACKET">
2947 <description>
2948 <text/>
2949 </description>
2950 </enum>
2951 <enum name="OFPBRC_MULTIPART_BUFFER_OVERFLOW">
2952 <description>
2953 <text/>
2954 </description>
2955 </enum>
2956 </type>
2957 <description>
2958 <text>ofp_error_msg 'code' values for OFPET_BAD_REQUEST. 'data' contains at least
2959the first 64 bytes of the failed request.</text>
2960 </description>
2961 </typedef>
2962 <typedef name="ofp_bad_action_code">
2963 <type name="enumeration">
2964 <enum name="OFPBAC_BAD_TYPE">
2965 <description>
2966 <text/>
2967 </description>
2968 </enum>
2969 <enum name="OFPBAC_BAD_LEN">
2970 <description>
2971 <text/>
2972 </description>
2973 </enum>
2974 <enum name="OFPBAC_BAD_EXPERIMENTER">
2975 <description>
2976 <text/>
2977 </description>
2978 </enum>
2979 <enum name="OFPBAC_BAD_EXP_TYPE">
2980 <description>
2981 <text/>
2982 </description>
2983 </enum>
2984 <enum name="OFPBAC_BAD_OUT_PORT">
2985 <description>
2986 <text/>
2987 </description>
2988 </enum>
2989 <enum name="OFPBAC_BAD_ARGUMENT">
2990 <description>
2991 <text/>
2992 </description>
2993 </enum>
2994 <enum name="OFPBAC_EPERM">
2995 <description>
2996 <text/>
2997 </description>
2998 </enum>
2999 <enum name="OFPBAC_TOO_MANY">
3000 <description>
3001 <text/>
3002 </description>
3003 </enum>
3004 <enum name="OFPBAC_BAD_QUEUE">
3005 <description>
3006 <text/>
3007 </description>
3008 </enum>
3009 <enum name="OFPBAC_BAD_OUT_GROUP">
3010 <description>
3011 <text/>
3012 </description>
3013 </enum>
3014 <enum name="OFPBAC_MATCH_INCONSISTENT">
3015 <description>
3016 <text/>
3017 </description>
3018 </enum>
3019 <enum name="OFPBAC_UNSUPPORTED_ORDER">
3020 <description>
3021 <text/>
3022 </description>
3023 </enum>
3024 <enum name="OFPBAC_BAD_TAG">
3025 <description>
3026 <text/>
3027 </description>
3028 </enum>
3029 <enum name="OFPBAC_BAD_SET_TYPE">
3030 <description>
3031 <text/>
3032 </description>
3033 </enum>
3034 <enum name="OFPBAC_BAD_SET_LEN">
3035 <description>
3036 <text/>
3037 </description>
3038 </enum>
3039 <enum name="OFPBAC_BAD_SET_ARGUMENT">
3040 <description>
3041 <text/>
3042 </description>
3043 </enum>
3044 </type>
3045 <description>
3046 <text>ofp_error_msg 'code' values for OFPET_BAD_ACTION. 'data' contains at least
3047the first 64 bytes of the failed request.</text>
3048 </description>
3049 </typedef>
3050 <typedef name="ofp_bad_instruction_code">
3051 <type name="enumeration">
3052 <enum name="OFPBIC_UNKNOWN_INST">
3053 <description>
3054 <text/>
3055 </description>
3056 </enum>
3057 <enum name="OFPBIC_UNSUP_INST">
3058 <description>
3059 <text/>
3060 </description>
3061 </enum>
3062 <enum name="OFPBIC_BAD_TABLE_ID">
3063 <description>
3064 <text/>
3065 </description>
3066 </enum>
3067 <enum name="OFPBIC_UNSUP_METADATA">
3068 <description>
3069 <text/>
3070 </description>
3071 </enum>
3072 <enum name="OFPBIC_UNSUP_METADATA_MASK">
3073 <description>
3074 <text/>
3075 </description>
3076 </enum>
3077 <enum name="OFPBIC_BAD_EXPERIMENTER">
3078 <description>
3079 <text/>
3080 </description>
3081 </enum>
3082 <enum name="OFPBIC_BAD_EXP_TYPE">
3083 <description>
3084 <text/>
3085 </description>
3086 </enum>
3087 <enum name="OFPBIC_BAD_LEN">
3088 <description>
3089 <text/>
3090 </description>
3091 </enum>
3092 <enum name="OFPBIC_EPERM">
3093 <description>
3094 <text/>
3095 </description>
3096 </enum>
3097 </type>
3098 <description>
3099 <text>ofp_error_msg 'code' values for OFPET_BAD_INSTRUCTION. 'data' contains at
3100least the first 64 bytes of the failed request.</text>
3101 </description>
3102 </typedef>
3103 <typedef name="ofp_bad_match_code">
3104 <type name="enumeration">
3105 <enum name="OFPBMC_BAD_TYPE">
3106 <description>
3107 <text/>
3108 </description>
3109 </enum>
3110 <enum name="OFPBMC_BAD_LEN">
3111 <description>
3112 <text/>
3113 </description>
3114 </enum>
3115 <enum name="OFPBMC_BAD_TAG">
3116 <description>
3117 <text/>
3118 </description>
3119 </enum>
3120 <enum name="OFPBMC_BAD_DL_ADDR_MASK">
3121 <description>
3122 <text/>
3123 </description>
3124 </enum>
3125 <enum name="OFPBMC_BAD_NW_ADDR_MASK">
3126 <description>
3127 <text/>
3128 </description>
3129 </enum>
3130 <enum name="OFPBMC_BAD_WILDCARDS">
3131 <description>
3132 <text/>
3133 </description>
3134 </enum>
3135 <enum name="OFPBMC_BAD_FIELD">
3136 <description>
3137 <text/>
3138 </description>
3139 </enum>
3140 <enum name="OFPBMC_BAD_VALUE">
3141 <description>
3142 <text/>
3143 </description>
3144 </enum>
3145 <enum name="OFPBMC_BAD_MASK">
3146 <description>
3147 <text/>
3148 </description>
3149 </enum>
3150 <enum name="OFPBMC_BAD_PREREQ">
3151 <description>
3152 <text/>
3153 </description>
3154 </enum>
3155 <enum name="OFPBMC_DUP_FIELD">
3156 <description>
3157 <text/>
3158 </description>
3159 </enum>
3160 <enum name="OFPBMC_EPERM">
3161 <description>
3162 <text/>
3163 </description>
3164 </enum>
3165 </type>
3166 <description>
3167 <text>ofp_error_msg 'code' values for OFPET_BAD_MATCH. 'data' contains at least
3168the first 64 bytes of the failed request.</text>
3169 </description>
3170 </typedef>
3171 <typedef name="ofp_flow_mod_failed_code">
3172 <type name="enumeration">
3173 <enum name="OFPFMFC_UNKNOWN">
3174 <description>
3175 <text/>
3176 </description>
3177 </enum>
3178 <enum name="OFPFMFC_TABLE_FULL">
3179 <description>
3180 <text/>
3181 </description>
3182 </enum>
3183 <enum name="OFPFMFC_BAD_TABLE_ID">
3184 <description>
3185 <text/>
3186 </description>
3187 </enum>
3188 <enum name="OFPFMFC_OVERLAP">
3189 <description>
3190 <text/>
3191 </description>
3192 </enum>
3193 <enum name="OFPFMFC_EPERM">
3194 <description>
3195 <text/>
3196 </description>
3197 </enum>
3198 <enum name="OFPFMFC_BAD_TIMEOUT">
3199 <description>
3200 <text/>
3201 </description>
3202 </enum>
3203 <enum name="OFPFMFC_BAD_COMMAND">
3204 <description>
3205 <text/>
3206 </description>
3207 </enum>
3208 <enum name="OFPFMFC_BAD_FLAGS">
3209 <description>
3210 <text/>
3211 </description>
3212 </enum>
3213 </type>
3214 <description>
3215 <text>ofp_error_msg 'code' values for OFPET_FLOW_MOD_FAILED. 'data' contains
3216at least the first 64 bytes of the failed request.</text>
3217 </description>
3218 </typedef>
3219 <typedef name="ofp_group_mod_failed_code">
3220 <type name="enumeration">
3221 <enum name="OFPGMFC_GROUP_EXISTS">
3222 <description>
3223 <text/>
3224 </description>
3225 </enum>
3226 <enum name="OFPGMFC_INVALID_GROUP">
3227 <description>
3228 <text/>
3229 </description>
3230 </enum>
3231 <enum name="OFPGMFC_WEIGHT_UNSUPPORTED">
3232 <description>
3233 <text/>
3234 </description>
3235 </enum>
3236 <enum name="OFPGMFC_OUT_OF_GROUPS">
3237 <description>
3238 <text/>
3239 </description>
3240 </enum>
3241 <enum name="OFPGMFC_OUT_OF_BUCKETS">
3242 <description>
3243 <text/>
3244 </description>
3245 </enum>
3246 <enum name="OFPGMFC_CHAINING_UNSUPPORTED">
3247 <description>
3248 <text/>
3249 </description>
3250 </enum>
3251 <enum name="OFPGMFC_WATCH_UNSUPPORTED">
3252 <description>
3253 <text/>
3254 </description>
3255 </enum>
3256 <enum name="OFPGMFC_LOOP">
3257 <description>
3258 <text/>
3259 </description>
3260 </enum>
3261 <enum name="OFPGMFC_UNKNOWN_GROUP">
3262 <description>
3263 <text/>
3264 </description>
3265 </enum>
3266 <enum name="OFPGMFC_CHAINED_GROUP">
3267 <description>
3268 <text/>
3269 </description>
3270 </enum>
3271 <enum name="OFPGMFC_BAD_TYPE">
3272 <description>
3273 <text/>
3274 </description>
3275 </enum>
3276 <enum name="OFPGMFC_BAD_COMMAND">
3277 <description>
3278 <text/>
3279 </description>
3280 </enum>
3281 <enum name="OFPGMFC_BAD_BUCKET">
3282 <description>
3283 <text/>
3284 </description>
3285 </enum>
3286 <enum name="OFPGMFC_BAD_WATCH">
3287 <description>
3288 <text/>
3289 </description>
3290 </enum>
3291 <enum name="OFPGMFC_EPERM">
3292 <description>
3293 <text/>
3294 </description>
3295 </enum>
3296 </type>
3297 <description>
3298 <text>ofp_error_msg 'code' values for OFPET_GROUP_MOD_FAILED. 'data' contains
3299at least the first 64 bytes of the failed request.</text>
3300 </description>
3301 </typedef>
3302 <typedef name="ofp_port_mod_failed_code">
3303 <type name="enumeration">
3304 <enum name="OFPPMFC_BAD_PORT">
3305 <description>
3306 <text/>
3307 </description>
3308 </enum>
3309 <enum name="OFPPMFC_BAD_HW_ADDR">
3310 <description>
3311 <text/>
3312 </description>
3313 </enum>
3314 <enum name="OFPPMFC_BAD_CONFIG">
3315 <description>
3316 <text/>
3317 </description>
3318 </enum>
3319 <enum name="OFPPMFC_BAD_ADVERTISE">
3320 <description>
3321 <text/>
3322 </description>
3323 </enum>
3324 <enum name="OFPPMFC_EPERM">
3325 <description>
3326 <text/>
3327 </description>
3328 </enum>
3329 </type>
3330 <description>
3331 <text>ofp_error_msg 'code' values for OFPET_PORT_MOD_FAILED. 'data' contains
3332at least the first 64 bytes of the failed request.</text>
3333 </description>
3334 </typedef>
3335 <typedef name="ofp_table_mod_failed_code">
3336 <type name="enumeration">
3337 <enum name="OFPTMFC_BAD_TABLE">
3338 <description>
3339 <text/>
3340 </description>
3341 </enum>
3342 <enum name="OFPTMFC_BAD_CONFIG">
3343 <description>
3344 <text/>
3345 </description>
3346 </enum>
3347 <enum name="OFPTMFC_EPERM">
3348 <description>
3349 <text/>
3350 </description>
3351 </enum>
3352 </type>
3353 <description>
3354 <text>ofp_error_msg 'code' values for OFPET_TABLE_MOD_FAILED. 'data' contains
3355at least the first 64 bytes of the failed request.</text>
3356 </description>
3357 </typedef>
3358 <typedef name="ofp_queue_op_failed_code">
3359 <type name="enumeration">
3360 <enum name="OFPQOFC_BAD_PORT">
3361 <description>
3362 <text/>
3363 </description>
3364 </enum>
3365 <enum name="OFPQOFC_BAD_QUEUE">
3366 <description>
3367 <text/>
3368 </description>
3369 </enum>
3370 <enum name="OFPQOFC_EPERM">
3371 <description>
3372 <text/>
3373 </description>
3374 </enum>
3375 </type>
3376 <description>
3377 <text>ofp_error msg 'code' values for OFPET_QUEUE_OP_FAILED. 'data' contains
3378at least the first 64 bytes of the failed request</text>
3379 </description>
3380 </typedef>
3381 <typedef name="ofp_switch_config_failed_code">
3382 <type name="enumeration">
3383 <enum name="OFPSCFC_BAD_FLAGS">
3384 <description>
3385 <text/>
3386 </description>
3387 </enum>
3388 <enum name="OFPSCFC_BAD_LEN">
3389 <description>
3390 <text/>
3391 </description>
3392 </enum>
3393 <enum name="OFPSCFC_EPERM">
3394 <description>
3395 <text/>
3396 </description>
3397 </enum>
3398 </type>
3399 <description>
3400 <text>ofp_error_msg 'code' values for OFPET_SWITCH_CONFIG_FAILED. 'data' contains
3401at least the first 64 bytes of the failed request.</text>
3402 </description>
3403 </typedef>
3404 <typedef name="ofp_role_request_failed_code">
3405 <type name="enumeration">
3406 <enum name="OFPRRFC_STALE">
3407 <description>
3408 <text/>
3409 </description>
3410 </enum>
3411 <enum name="OFPRRFC_UNSUP">
3412 <description>
3413 <text/>
3414 </description>
3415 </enum>
3416 <enum name="OFPRRFC_BAD_ROLE">
3417 <description>
3418 <text/>
3419 </description>
3420 </enum>
3421 </type>
3422 <description>
3423 <text>ofp_error_msg 'code' values for OFPET_ROLE_REQUEST_FAILED. 'data' contains
3424at least the first 64 bytes of the failed request.</text>
3425 </description>
3426 </typedef>
3427 <typedef name="ofp_meter_mod_failed_code">
3428 <type name="enumeration">
3429 <enum name="OFPMMFC_UNKNOWN">
3430 <description>
3431 <text/>
3432 </description>
3433 </enum>
3434 <enum name="OFPMMFC_METER_EXISTS">
3435 <description>
3436 <text/>
3437 </description>
3438 </enum>
3439 <enum name="OFPMMFC_INVALID_METER">
3440 <description>
3441 <text/>
3442 </description>
3443 </enum>
3444 <enum name="OFPMMFC_UNKNOWN_METER">
3445 <description>
3446 <text/>
3447 </description>
3448 </enum>
3449 <enum name="OFPMMFC_BAD_COMMAND">
3450 <description>
3451 <text/>
3452 </description>
3453 </enum>
3454 <enum name="OFPMMFC_BAD_FLAGS">
3455 <description>
3456 <text/>
3457 </description>
3458 </enum>
3459 <enum name="OFPMMFC_BAD_RATE">
3460 <description>
3461 <text/>
3462 </description>
3463 </enum>
3464 <enum name="OFPMMFC_BAD_BURST">
3465 <description>
3466 <text/>
3467 </description>
3468 </enum>
3469 <enum name="OFPMMFC_BAD_BAND">
3470 <description>
3471 <text/>
3472 </description>
3473 </enum>
3474 <enum name="OFPMMFC_BAD_BAND_VALUE">
3475 <description>
3476 <text/>
3477 </description>
3478 </enum>
3479 <enum name="OFPMMFC_OUT_OF_METERS">
3480 <description>
3481 <text/>
3482 </description>
3483 </enum>
3484 <enum name="OFPMMFC_OUT_OF_BANDS">
3485 <description>
3486 <text/>
3487 </description>
3488 </enum>
3489 </type>
3490 <description>
3491 <text>ofp_error_msg 'code' values for OFPET_METER_MOD_FAILED. 'data' contains
3492at least the first 64 bytes of the failed request.</text>
3493 </description>
3494 </typedef>
3495 <typedef name="ofp_table_features_failed_code">
3496 <type name="enumeration">
3497 <enum name="OFPTFFC_BAD_TABLE">
3498 <description>
3499 <text/>
3500 </description>
3501 </enum>
3502 <enum name="OFPTFFC_BAD_METADATA">
3503 <description>
3504 <text/>
3505 </description>
3506 </enum>
3507 <enum name="OFPTFFC_BAD_TYPE">
3508 <description>
3509 <text/>
3510 </description>
3511 </enum>
3512 <enum name="OFPTFFC_BAD_LEN">
3513 <description>
3514 <text/>
3515 </description>
3516 </enum>
3517 <enum name="OFPTFFC_BAD_ARGUMENT">
3518 <description>
3519 <text/>
3520 </description>
3521 </enum>
3522 <enum name="OFPTFFC_EPERM">
3523 <description>
3524 <text/>
3525 </description>
3526 </enum>
3527 </type>
3528 <description>
3529 <text>ofp_error_msg 'code' values for OFPET_TABLE_FEATURES_FAILED. 'data' contains
3530at least the first 64 bytes of the failed request.</text>
3531 </description>
3532 </typedef>
3533 <typedef name="ofp_multipart_type">
3534 <type name="enumeration">
3535 <enum name="OFPMP_DESC">
3536 <description>
3537 <text/>
3538 </description>
3539 </enum>
3540 <enum name="OFPMP_FLOW">
3541 <description>
3542 <text/>
3543 </description>
3544 </enum>
3545 <enum name="OFPMP_AGGREGATE">
3546 <description>
3547 <text/>
3548 </description>
3549 </enum>
3550 <enum name="OFPMP_TABLE">
3551 <description>
3552 <text/>
3553 </description>
3554 </enum>
3555 <enum name="OFPMP_PORT_STATS">
3556 <description>
3557 <text/>
3558 </description>
3559 </enum>
3560 <enum name="OFPMP_QUEUE">
3561 <description>
3562 <text/>
3563 </description>
3564 </enum>
3565 <enum name="OFPMP_GROUP">
3566 <description>
3567 <text/>
3568 </description>
3569 </enum>
3570 <enum name="OFPMP_GROUP_DESC">
3571 <description>
3572 <text/>
3573 </description>
3574 </enum>
3575 <enum name="OFPMP_GROUP_FEATURES">
3576 <description>
3577 <text/>
3578 </description>
3579 </enum>
3580 <enum name="OFPMP_METER">
3581 <description>
3582 <text/>
3583 </description>
3584 </enum>
3585 <enum name="OFPMP_METER_CONFIG">
3586 <description>
3587 <text/>
3588 </description>
3589 </enum>
3590 <enum name="OFPMP_METER_FEATURES">
3591 <description>
3592 <text/>
3593 </description>
3594 </enum>
3595 <enum name="OFPMP_TABLE_FEATURES">
3596 <description>
3597 <text/>
3598 </description>
3599 </enum>
3600 <enum name="OFPMP_PORT_DESC">
3601 <description>
3602 <text/>
3603 </description>
3604 </enum>
3605 <enum name="OFPMP_EXPERIMENTER">
3606 <description>
3607 <text/>
3608 </description>
3609 </enum>
3610 </type>
3611 <description>
3612 <text/>
3613 </description>
3614 </typedef>
3615 <typedef name="ofp_multipart_request_flags">
3616 <type name="enumeration">
3617 <enum name="OFPMPF_REQ_INVALID">
3618 <description>
3619 <text/>
3620 </description>
3621 </enum>
3622 <enum name="OFPMPF_REQ_MORE">
3623 <description>
3624 <text/>
3625 </description>
3626 </enum>
3627 </type>
3628 <description>
3629 <text>Backward compatibility with 1.3.1 - avoid breaking the API.#define ofp_multipart_types ofp_multipart_type</text>
3630 </description>
3631 </typedef>
3632 <typedef name="ofp_multipart_reply_flags">
3633 <type name="enumeration">
3634 <enum name="OFPMPF_REPLY_INVALID">
3635 <description>
3636 <text/>
3637 </description>
3638 </enum>
3639 <enum name="OFPMPF_REPLY_MORE">
3640 <description>
3641 <text/>
3642 </description>
3643 </enum>
3644 </type>
3645 <description>
3646 <text/>
3647 </description>
3648 </typedef>
3649 <typedef name="ofp_table_feature_prop_type">
3650 <type name="enumeration">
3651 <enum name="OFPTFPT_INSTRUCTIONS">
3652 <description>
3653 <text/>
3654 </description>
3655 </enum>
3656 <enum name="OFPTFPT_INSTRUCTIONS_MISS">
3657 <description>
3658 <text/>
3659 </description>
3660 </enum>
3661 <enum name="OFPTFPT_NEXT_TABLES">
3662 <description>
3663 <text/>
3664 </description>
3665 </enum>
3666 <enum name="OFPTFPT_NEXT_TABLES_MISS">
3667 <description>
3668 <text/>
3669 </description>
3670 </enum>
3671 <enum name="OFPTFPT_WRITE_ACTIONS">
3672 <description>
3673 <text/>
3674 </description>
3675 </enum>
3676 <enum name="OFPTFPT_WRITE_ACTIONS_MISS">
3677 <description>
3678 <text/>
3679 </description>
3680 </enum>
3681 <enum name="OFPTFPT_APPLY_ACTIONS">
3682 <description>
3683 <text/>
3684 </description>
3685 </enum>
3686 <enum name="OFPTFPT_APPLY_ACTIONS_MISS">
3687 <description>
3688 <text/>
3689 </description>
3690 </enum>
3691 <enum name="OFPTFPT_MATCH">
3692 <description>
3693 <text/>
3694 </description>
3695 </enum>
3696 <enum name="OFPTFPT_WILDCARDS">
3697 <description>
3698 <text/>
3699 </description>
3700 </enum>
3701 <enum name="OFPTFPT_WRITE_SETFIELD">
3702 <description>
3703 <text/>
3704 </description>
3705 </enum>
3706 <enum name="OFPTFPT_WRITE_SETFIELD_MISS">
3707 <description>
3708 <text/>
3709 </description>
3710 </enum>
3711 <enum name="OFPTFPT_APPLY_SETFIELD">
3712 <description>
3713 <text/>
3714 </description>
3715 </enum>
3716 <enum name="OFPTFPT_APPLY_SETFIELD_MISS">
3717 <description>
3718 <text/>
3719 </description>
3720 </enum>
3721 <enum name="OFPTFPT_EXPERIMENTER">
3722 <description>
3723 <text/>
3724 </description>
3725 </enum>
3726 <enum name="OFPTFPT_EXPERIMENTER_MISS">
3727 <description>
3728 <text/>
3729 </description>
3730 </enum>
3731 </type>
3732 <description>
3733 <text>Table Feature property types.
3734Low order bit cleared indicates a property for a regular Flow Entry.
3735Low order bit set indicates a property for the Table-Miss Flow Entry.</text>
3736 </description>
3737 </typedef>
3738 <typedef name="ofp_group_capabilities">
3739 <type name="enumeration">
3740 <enum name="OFPGFC_INVALID">
3741 <description>
3742 <text/>
3743 </description>
3744 </enum>
3745 <enum name="OFPGFC_SELECT_WEIGHT">
3746 <description>
3747 <text/>
3748 </description>
3749 </enum>
3750 <enum name="OFPGFC_SELECT_LIVENESS">
3751 <description>
3752 <text/>
3753 </description>
3754 </enum>
3755 <enum name="OFPGFC_CHAINING">
3756 <description>
3757 <text/>
3758 </description>
3759 </enum>
3760 <enum name="OFPGFC_CHAINING_CHECKS">
3761 <description>
3762 <text/>
3763 </description>
3764 </enum>
3765 </type>
3766 <description>
3767 <text>Group configuration flagsBackward compatibility with 1.3.1 - avoid breaking the API.#define ofp_group_desc_stats ofp_group_desc</text>
3768 </description>
3769 </typedef>
3770 <typedef name="ofp_queue_properties">
3771 <type name="enumeration">
3772 <enum name="OFPQT_INVALID">
3773 <description>
3774 <text/>
3775 </description>
3776 </enum>
3777 <enum name="OFPQT_MIN_RATE">
3778 <description>
3779 <text/>
3780 </description>
3781 </enum>
3782 <enum name="OFPQT_MAX_RATE">
3783 <description>
3784 <text/>
3785 </description>
3786 </enum>
3787 <enum name="OFPQT_EXPERIMENTER">
3788 <description>
3789 <text/>
3790 </description>
3791 </enum>
3792 </type>
3793 <description>
3794 <text>All ones is used to indicate all queues in a port (for stats retrieval).#define OFPQ_ALL 0xffffffff
3795Min rate 1000 means not configured.#define OFPQ_MIN_RATE_UNCFG 0xffff
3796Max rate 1000 means not configured.#define OFPQ_MAX_RATE_UNCFG 0xffff</text>
3797 </description>
3798 </typedef>
3799 <typedef name="ofp_controller_role">
3800 <type name="enumeration">
3801 <enum name="OFPCR_ROLE_NOCHANGE">
3802 <description>
3803 <text/>
3804 </description>
3805 </enum>
3806 <enum name="OFPCR_ROLE_EQUAL">
3807 <description>
3808 <text/>
3809 </description>
3810 </enum>
3811 <enum name="OFPCR_ROLE_MASTER">
3812 <description>
3813 <text/>
3814 </description>
3815 </enum>
3816 <enum name="OFPCR_ROLE_SLAVE">
3817 <description>
3818 <text/>
3819 </description>
3820 </enum>
3821 </type>
3822 <description>
3823 <text>Controller roles.Configures the role of the sending controller. The default role is:
3824
3825- Equal (OFPCR_ROLE_EQUAL), which allows the controller access to all
3826OpenFlow features. All controllers have equal responsibility.
3827
3828The other possible roles are a related pair:
3829
3830- Master (OFPCR_ROLE_MASTER) is equivalent to Equal, except that there
3831may be at most one Master controller at a time: when a controller
3832configures itself as Master, any existing Master is demoted to the
3833Slave role.
3834
3835- Slave (OFPCR_ROLE_SLAVE) allows the controller read-only access to
3836OpenFlow features. In particular attempts to modify the flow table
3837will be rejected with an OFPBRC_EPERM error.
3838
3839Slave controllers do not receive OFPT_PACKET_IN or OFPT_FLOW_REMOVED
3840messages, but they do receive OFPT_PORT_STATUS messages.</text>
3841 </description>
3842 </typedef>
3843 <container name="ofp_header">
3844 <description>
3845 <text>Header on all OpenFlow packets.</text>
3846 </description>
3847 <leaf name="version">
3848 <type name="uint32"/>
3849 <description>
3850 <text>OFP_VERSION.</text>
3851 </description>
3852 </leaf>
3853 <leaf name="type">
3854 <type name="ofp_type"/>
3855 <description>
3856 <text>One of the OFPT_ constants.</text>
3857 </description>
3858 </leaf>
3859 <leaf name="xid">
3860 <type name="uint32"/>
3861 <description>
3862 <text>Transaction id associated with this packet.
3863Replies use the same id as was in the request
3864to facilitate pairing.</text>
3865 </description>
3866 </leaf>
3867 </container>
3868 <grouping name="ofp_hello_elem_header">
3869 <description>
3870 <text>Common header for all Hello Elements</text>
3871 </description>
3872 <leaf name="type">
3873 <type name="ofp_hello_elem_type"/>
3874 <description>
3875 <text>One of OFPHET_ .</text>
3876 </description>
3877 </leaf>
3878 <choice name="choice_0">
3879 <case name="versionbitmap">
3880 <container name="versionbitmap">
3881 <uses name="ofp_hello_elem_versionbitmap"/>
3882 <description>
3883 <text/>
3884 </description>
3885 </container>
3886 </case>
3887 </choice>
3888 </grouping>
3889 <grouping name="ofp_hello_elem_versionbitmap">
3890 <description>
3891 <text>Version bitmap Hello Element</text>
3892 </description>
3893 <list name="bitmaps">
3894 <key value="bitmaps"/>
3895 <leaf name="bitmaps">
3896 <type name="uint32"/>
3897 <description>
3898 <text>List of bitmaps - supported versions</text>
3899 </description>
3900 </leaf>
3901 <description>
3902 <text>List of bitmaps - supported versions</text>
3903 </description>
3904 </list>
3905 </grouping>
3906 <container name="ofp_hello">
3907 <description>
3908 <text>OFPT_HELLO. This message includes zero or more hello elements having
3909variable size. Unknown elements types must be ignored skipped, to allow
3910for future extensions.ofp_header header;</text>
3911 </description>
3912 <list name="elements">
3913 <key value="type"/>
3914 <uses name="ofp_hello_elem_header"/>
3915 <description>
3916 <text>Hello element list0 or more</text>
3917 </description>
3918 </list>
3919 </container>
3920 <container name="ofp_switch_config">
3921 <description>
3922 <text>Switch configuration.</text>
3923 </description>
3924 <leaf name="flags">
3925 <type name="uint32"/>
3926 <description>
3927 <text>ofp_header header;
3928Bitmap of OFPC_ flags.</text>
3929 </description>
3930 </leaf>
3931 <leaf name="miss_send_len">
3932 <type name="uint32"/>
3933 <description>
3934 <text>Max bytes of packet that datapath
3935should send to the controller. See
3936ofp_controller_max_len for valid values.</text>
3937 </description>
3938 </leaf>
3939 </container>
3940 <container name="ofp_table_mod">
3941 <description>
3942 <text>Configure Modify behavior of a flow table</text>
3943 </description>
3944 <leaf name="table_id">
3945 <type name="uint32"/>
3946 <description>
3947 <text>ofp_header header;
3948ID of the table, OFPTT_ALL indicates all tables</text>
3949 </description>
3950 </leaf>
3951 <leaf name="config">
3952 <type name="uint32"/>
3953 <description>
3954 <text>Bitmap of OFPTC_ flags</text>
3955 </description>
3956 </leaf>
3957 </container>
3958 <grouping name="ofp_port">
3959 <description>
3960 <text>Description of a port</text>
3961 </description>
3962 <leaf name="port_no">
3963 <type name="uint32"/>
3964 <description>
3965 <text/>
3966 </description>
3967 </leaf>
3968 <list name="hw_addr">
3969 <key value="hw_addr"/>
3970 <leaf name="hw_addr">
3971 <type name="uint32"/>
3972 <description>
3973 <text> OFP_ETH_ALEN ;</text>
3974 </description>
3975 </leaf>
3976 <description>
3977 <text> OFP_ETH_ALEN ;</text>
3978 </description>
3979 </list>
3980 <leaf name="name">
3981 <type name="string"/>
3982 <description>
3983 <text>Null-terminated</text>
3984 </description>
3985 </leaf>
3986 <leaf name="config">
3987 <type name="uint32"/>
3988 <description>
3989 <text>Bitmap of OFPPC_ flags.</text>
3990 </description>
3991 </leaf>
3992 <leaf name="state">
3993 <type name="uint32"/>
3994 <description>
3995 <text>Bitmap of OFPPS_ flags.</text>
3996 </description>
3997 </leaf>
3998 <leaf name="curr">
3999 <type name="uint32"/>
4000 <description>
4001 <text>Bitmaps of OFPPF_ that describe features. All bits zeroed if
4002unsupported or unavailable.Current features.</text>
4003 </description>
4004 </leaf>
4005 <leaf name="advertised">
4006 <type name="uint32"/>
4007 <description>
4008 <text>Features being advertised by the port.</text>
4009 </description>
4010 </leaf>
4011 <leaf name="supported">
4012 <type name="uint32"/>
4013 <description>
4014 <text>Features supported by the port.</text>
4015 </description>
4016 </leaf>
4017 <leaf name="peer">
4018 <type name="uint32"/>
4019 <description>
4020 <text>Features advertised by peer.</text>
4021 </description>
4022 </leaf>
4023 <leaf name="curr_speed">
4024 <type name="uint32"/>
4025 <description>
4026 <text>Current port bitrate in kbps.</text>
4027 </description>
4028 </leaf>
4029 <leaf name="max_speed">
4030 <type name="uint32"/>
4031 <description>
4032 <text>Max port bitrate in kbps</text>
4033 </description>
4034 </leaf>
4035 </grouping>
4036 <grouping name="ofp_switch_features">
4037 <description>
4038 <text>Switch features.</text>
4039 </description>
4040 <leaf name="datapath_id">
4041 <type name="uint64"/>
4042 <description>
4043 <text>ofp_header header;
4044Datapath unique ID. The lower 48-bits are for
4045a MAC address, while the upper 16-bits are
4046implementer-defined.</text>
4047 </description>
4048 </leaf>
4049 <leaf name="n_buffers">
4050 <type name="uint32"/>
4051 <description>
4052 <text>Max packets buffered at once.</text>
4053 </description>
4054 </leaf>
4055 <leaf name="n_tables">
4056 <type name="uint32"/>
4057 <description>
4058 <text>Number of tables supported by datapath.</text>
4059 </description>
4060 </leaf>
4061 <leaf name="auxiliary_id">
4062 <type name="uint32"/>
4063 <description>
4064 <text>Identify auxiliary connections</text>
4065 </description>
4066 </leaf>
4067 <leaf name="capabilities">
4068 <type name="uint32"/>
4069 <description>
4070 <text>Features.Bitmap of support ofp_capabilities .</text>
4071 </description>
4072 </leaf>
4073 </grouping>
4074 <grouping name="ofp_port_status">
4075 <description>
4076 <text>A physical port has changed in the datapath</text>
4077 </description>
4078 <leaf name="reason">
4079 <type name="ofp_port_reason"/>
4080 <description>
4081 <text>ofp_header header;
4082One of OFPPR_ .</text>
4083 </description>
4084 </leaf>
4085 <container name="desc">
4086 <uses name="ofp_port"/>
4087 <description>
4088 <text/>
4089 </description>
4090 </container>
4091 </grouping>
4092 <container name="ofp_port_mod">
4093 <description>
4094 <text>Modify behavior of the physical port</text>
4095 </description>
4096 <leaf name="port_no">
4097 <type name="uint32"/>
4098 <description>
4099 <text>ofp_header header;</text>
4100 </description>
4101 </leaf>
4102 <list name="hw_addr">
4103 <key value="hw_addr"/>
4104 <leaf name="hw_addr">
4105 <type name="uint32"/>
4106 <description>
4107 <text> OFP_ETH_ALEN ;</text>
4108 </description>
4109 </leaf>
4110 <description>
4111 <text> OFP_ETH_ALEN ;</text>
4112 </description>
4113 </list>
4114 <leaf name="config">
4115 <type name="uint32"/>
4116 <description>
4117 <text>The hardware address is not
4118configurable. This is used to
4119sanity-check the request, so it must
4120be the same as returned in an
4121ofp_port struct.Bitmap of OFPPC_ flags.</text>
4122 </description>
4123 </leaf>
4124 <leaf name="mask">
4125 <type name="uint32"/>
4126 <description>
4127 <text>Bitmap of OFPPC_ flags to be changed.</text>
4128 </description>
4129 </leaf>
4130 <leaf name="advertise">
4131 <type name="uint32"/>
4132 <description>
4133 <text>Bitmap of OFPPF_ . Zero all bits to prevent
4134any action taking place.</text>
4135 </description>
4136 </leaf>
4137 </container>
4138 <grouping name="ofp_match">
4139 <description>
4140 <text>Fields to match against flows</text>
4141 </description>
4142 <leaf name="type">
4143 <type name="ofp_match_type"/>
4144 <description>
4145 <text>One of OFPMT_ </text>
4146 </description>
4147 </leaf>
4148 <list name="oxm_fields">
4149 <key value="oxm_class"/>
4150 <uses name="ofp_oxm_field"/>
4151 <description>
4152 <text>0 or more</text>
4153 </description>
4154 </list>
4155 </grouping>
4156 <grouping name="ofp_oxm_field">
4157 <description>
4158 <text>OXM Flow match fields</text>
4159 </description>
4160 <leaf name="oxm_class">
4161 <type name="ofp_oxm_class"/>
4162 <description>
4163 <text/>
4164 </description>
4165 </leaf>
4166 <choice name="choice_0">
4167 <case name="ofb_field">
4168 <container name="ofb_field">
4169 <uses name="ofp_oxm_ofb_field"/>
4170 <description>
4171 <text>2 and 3 reserved for NXM_0 and NXM-1 OXM classes</text>
4172 </description>
4173 </container>
4174 </case>
4175 <case name="experimenter_field">
4176 <container name="experimenter_field">
4177 <uses name="ofp_oxm_experimenter_field"/>
4178 <description>
4179 <text/>
4180 </description>
4181 </container>
4182 </case>
4183 </choice>
4184 </grouping>
4185 <grouping name="ofp_oxm_ofb_field">
4186 <description>
4187 <text>OXM OpenFlow Basic Match Field</text>
4188 </description>
4189 <leaf name="type">
4190 <type name="oxm_ofb_field_types"/>
4191 <description>
4192 <text/>
4193 </description>
4194 </leaf>
4195 <leaf name="has_mask">
4196 <type name="boolean"/>
4197 <description>
4198 <text/>
4199 </description>
4200 </leaf>
4201 <choice name="choice_0">
4202 <case name="port">
4203 <leaf name="port">
4204 <type name="uint32"/>
4205 <description>
4206 <text>#define OXM_OF_IN_PORT OXM_HEADER (0x8000, OFPXMT_OFB_IN_PORT, 4)
4207Used for OFPXMT_OFB_IN_PORTOpenFlow port on which the packet was received.
4208May be a physical port, a logical port, or the reserved port OFPP_LOCAL
4209
4210Prereqs: None.
4211
4212Format: 32-bit integer in network byte order.
4213
4214Masking: Not maskable.</text>
4215 </description>
4216 </leaf>
4217 </case>
4218 <case name="physical_port">
4219 <leaf name="physical_port">
4220 <type name="uint32"/>
4221 <description>
4222 <text>#define OXM_OF_IN_PHY_PORT OXM_HEADER (0x8000, OFPXMT_OFB_IN_PHY_PORT, 4)
4223Used for OFPXMT_OF_IN_PHY_PORTPhysical port on which the packet was received.
4224
4225Consider a packet received on a tunnel interface defined over a link
4226aggregation group (LAG) with two physical port members. If the tunnel
4227interface is the logical port bound to OpenFlow. In this case,
4228OFPXMT_OF_IN_PORT is the tunnel's port number and OFPXMT_OF_IN_PHY_PORT is
4229the physical port number of the LAG on which the tunnel is configured.
4230
4231When a packet is received directly on a physical port and not processed by a
4232logical port, OFPXMT_OF_IN_PORT and OFPXMT_OF_IN_PHY_PORT have the same
4233value.
4234
4235This field is usually not available in a regular match and only available
4236in ofp_packet_in messages when it's different from OXM_OF_IN_PORT.
4237
4238Prereqs: OXM_OF_IN_PORT must be present.
4239
4240Format: 32-bit integer in network byte order.
4241
4242Masking: Not maskable.</text>
4243 </description>
4244 </leaf>
4245 </case>
4246 <case name="table_metadata">
4247 <leaf name="table_metadata">
4248 <type name="uint64"/>
4249 <description>
4250 <text>#define OXM_OF_METADATA OXM_HEADER (0x8000, OFPXMT_OFB_METADATA, 8)
4251#define OXM_OF_METADATA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_METADATA, 8)
4252Used for OFPXMT_OFB_METADATATable metadata.
4253
4254Prereqs: None.
4255
4256Format: 64-bit integer in network byte order.
4257
4258Masking: Arbitrary masks.</text>
4259 </description>
4260 </leaf>
4261 </case>
4262 <case name="eth_dst">
4263 <leaf name="eth_dst">
4264 <type name="binary"/>
4265 <description>
4266 <text>#define OXM_OF_ETH_DST OXM_HEADER (0x8000, OFPXMT_OFB_ETH_DST, 6)
4267#define OXM_OF_ETH_DST_W OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_DST, 6)
4268#define OXM_OF_ETH_SRC OXM_HEADER (0x8000, OFPXMT_OFB_ETH_SRC, 6)
4269#define OXM_OF_ETH_SRC_W OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_SRC, 6)
4270Used for OFPXMT_OFB_ETH_DST (exactly 6 bytes)Source or destination address in Ethernet header.
4271
4272Prereqs: None.
4273
4274Format: 48-bit Ethernet MAC address.
4275
4276Masking: Arbitrary masks.</text>
4277 </description>
4278 </leaf>
4279 </case>
4280 <case name="eth_src">
4281 <leaf name="eth_src">
4282 <type name="binary"/>
4283 <description>
4284 <text>Used for OFPXMT_OFB_ETH_SRC (exactly 6 bytes)</text>
4285 </description>
4286 </leaf>
4287 </case>
4288 <case name="eth_type">
4289 <leaf name="eth_type">
4290 <type name="uint32"/>
4291 <description>
4292 <text>#define OXM_OF_ETH_TYPE OXM_HEADER (0x8000, OFPXMT_OFB_ETH_TYPE,2)
4293Used for OFPXMT_OFB_ETH_TYPEPacket's Ethernet type.
4294
4295Prereqs: None.
4296
4297Format: 16-bit integer in network byte order.
4298
4299Masking: Not maskable.</text>
4300 </description>
4301 </leaf>
4302 </case>
4303 <case name="vlan_vid">
4304 <leaf name="vlan_vid">
4305 <type name="uint32"/>
4306 <description>
4307 <text>#define OXM_OF_VLAN_VID OXM_HEADER (0x8000, OFPXMT_OFB_VLAN_VID, 2)
4308#define OXM_OF_VLAN_VID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_VLAN_VID, 2)
4309Used for OFPXMT_OFB_VLAN_VID802.1Q VID.
4310
4311For a packet with an 802.1Q header, this is the VLAN-ID (VID) from the
4312outermost tag, with the CFI bit forced to 1. For a packet with no 802.1Q
4313header, this has value OFPVID_NONE.
4314
4315Prereqs: None.
4316
4317Format: 16-bit integer in network byte order with bit 13 indicating
4318presence of VLAN header and 3 most-significant bits forced to 0.
4319Only the lower 13 bits have meaning.
4320
4321Masking: Arbitrary masks.
4322
4323This field can be used in various ways:
4324
4325- If it is not constrained at all, the nx_match matches packets without
4326an 802.1Q header or with an 802.1Q header that has any VID value.
4327
4328- Testing for an exact match with 0x0 matches only packets without
4329an 802.1Q header.
4330
4331- Testing for an exact match with a VID value with CFI=1 matches packets
4332that have an 802.1Q header with a specified VID.
4333
4334- Testing for an exact match with a nonzero VID value with CFI=0 does
4335not make sense. The switch may reject this combination.
4336
4337- Testing with nxm_value=0, nxm_mask=0x0fff matches packets with no 802.1Q
4338header or with an 802.1Q header with a VID of 0.
4339
4340- Testing with nxm_value=0x1000, nxm_mask=0x1000 matches packets with
4341an 802.1Q header that has any VID value.</text>
4342 </description>
4343 </leaf>
4344 </case>
4345 <case name="vlan_pcp">
4346 <leaf name="vlan_pcp">
4347 <type name="uint32"/>
4348 <description>
4349 <text>#define OXM_OF_VLAN_PCP OXM_HEADER (0x8000, OFPXMT_OFB_VLAN_PCP, 1)
4350Used for OFPXMT_OFB_VLAN_PCP802.1Q PCP.
4351
4352For a packet with an 802.1Q header, this is the VLAN-PCP from the
4353outermost tag. For a packet with no 802.1Q header, this has value
43540.
4355
4356Prereqs: OXM_OF_VLAN_VID must be different from OFPVID_NONE.
4357
4358Format: 8-bit integer with 5 most-significant bits forced to 0.
4359Only the lower 3 bits have meaning.
4360
4361Masking: Not maskable.</text>
4362 </description>
4363 </leaf>
4364 </case>
4365 <case name="ip_dscp">
4366 <leaf name="ip_dscp">
4367 <type name="uint32"/>
4368 <description>
4369 <text>#define OXM_OF_IP_DSCP OXM_HEADER (0x8000, OFPXMT_OFB_IP_DSCP, 1)
4370Used for OFPXMT_OFB_IP_DSCPThe Diff Serv Code Point (DSCP) bits of the IP header.
4371Part of the IPv4 ToS field or the IPv6 Traffic Class field.
4372
4373Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
4374
4375Format: 8-bit integer with 2 most-significant bits forced to 0.
4376Only the lower 6 bits have meaning.
4377
4378Masking: Not maskable.</text>
4379 </description>
4380 </leaf>
4381 </case>
4382 <case name="ip_ecn">
4383 <leaf name="ip_ecn">
4384 <type name="uint32"/>
4385 <description>
4386 <text>#define OXM_OF_IP_ECN OXM_HEADER (0x8000, OFPXMT_OFB_IP_ECN, 1)
4387Used for OFPXMT_OFB_IP_ECNThe ECN bits of the IP header.
4388Part of the IPv4 ToS field or the IPv6 Traffic Class field.
4389
4390Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
4391
4392Format: 8-bit integer with 6 most-significant bits forced to 0.
4393Only the lower 2 bits have meaning.
4394
4395Masking: Not maskable.</text>
4396 </description>
4397 </leaf>
4398 </case>
4399 <case name="ip_proto">
4400 <leaf name="ip_proto">
4401 <type name="uint32"/>
4402 <description>
4403 <text>#define OXM_OF_IP_PROTO OXM_HEADER (0x8000, OFPXMT_OFB_IP_PROTO, 1)
4404Used for OFPXMT_OFB_IP_PROTOThe protocol byte in the IP header.
4405
4406Prereqs: OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
4407
4408Format: 8-bit integer.
4409
4410Masking: Not maskable.</text>
4411 </description>
4412 </leaf>
4413 </case>
4414 <case name="ipv4_src">
4415 <leaf name="ipv4_src">
4416 <type name="uint32"/>
4417 <description>
4418 <text>#define OXM_OF_IPV4_SRC OXM_HEADER (0x8000, OFPXMT_OFB_IPV4_SRC, 4)
4419#define OXM_OF_IPV4_SRC_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_SRC, 4)
4420#define OXM_OF_IPV4_DST OXM_HEADER (0x8000, OFPXMT_OFB_IPV4_DST, 4)
4421#define OXM_OF_IPV4_DST_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_DST, 4)
4422Used for OFPXMT_OFB_IPV4_SRCThe source or destination address in the IP header.
4423
4424Prereqs: OXM_OF_ETH_TYPE must match 0x0800 exactly.
4425
4426Format: 32-bit integer in network byte order.
4427
4428Masking: Arbitrary masks.</text>
4429 </description>
4430 </leaf>
4431 </case>
4432 <case name="ipv4_dst">
4433 <leaf name="ipv4_dst">
4434 <type name="uint32"/>
4435 <description>
4436 <text>Used for OFPXMT_OFB_IPV4_DST</text>
4437 </description>
4438 </leaf>
4439 </case>
4440 <case name="tcp_src">
4441 <leaf name="tcp_src">
4442 <type name="uint32"/>
4443 <description>
4444 <text>#define OXM_OF_TCP_SRC OXM_HEADER (0x8000, OFPXMT_OFB_TCP_SRC, 2)
4445#define OXM_OF_TCP_DST OXM_HEADER (0x8000, OFPXMT_OFB_TCP_DST, 2)
4446Used for OFPXMT_OFB_TCP_SRCThe source or destination port in the TCP header.
4447
4448Prereqs:
4449OXM_OF_ETH_TYPE must be either 0x0800 or 0x86dd.
4450OXM_OF_IP_PROTO must match 6 exactly.
4451
4452Format: 16-bit integer in network byte order.
4453
4454Masking: Not maskable.</text>
4455 </description>
4456 </leaf>
4457 </case>
4458 <case name="tcp_dst">
4459 <leaf name="tcp_dst">
4460 <type name="uint32"/>
4461 <description>
4462 <text>Used for OFPXMT_OFB_TCP_DST</text>
4463 </description>
4464 </leaf>
4465 </case>
4466 <case name="udp_src">
4467 <leaf name="udp_src">
4468 <type name="uint32"/>
4469 <description>
4470 <text>#define OXM_OF_UDP_SRC OXM_HEADER (0x8000, OFPXMT_OFB_UDP_SRC, 2)
4471#define OXM_OF_UDP_DST OXM_HEADER (0x8000, OFPXMT_OFB_UDP_DST, 2)
4472Used for OFPXMT_OFB_UDP_SRCThe source or destination port in the UDP header.
4473
4474Prereqs:
4475OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
4476OXM_OF_IP_PROTO must match 17 exactly.
4477
4478Format: 16-bit integer in network byte order.
4479
4480Masking: Not maskable.</text>
4481 </description>
4482 </leaf>
4483 </case>
4484 <case name="udp_dst">
4485 <leaf name="udp_dst">
4486 <type name="uint32"/>
4487 <description>
4488 <text>Used for OFPXMT_OFB_UDP_DST</text>
4489 </description>
4490 </leaf>
4491 </case>
4492 <case name="sctp_src">
4493 <leaf name="sctp_src">
4494 <type name="uint32"/>
4495 <description>
4496 <text>#define OXM_OF_SCTP_SRC OXM_HEADER (0x8000, OFPXMT_OFB_SCTP_SRC, 2)
4497#define OXM_OF_SCTP_DST OXM_HEADER (0x8000, OFPXMT_OFB_SCTP_DST, 2)
4498Used for OFPXMT_OFB_SCTP_SRCThe source or destination port in the SCTP header.
4499
4500Prereqs:
4501OXM_OF_ETH_TYPE must match either 0x0800 or 0x86dd.
4502OXM_OF_IP_PROTO must match 132 exactly.
4503
4504Format: 16-bit integer in network byte order.
4505
4506Masking: Not maskable.</text>
4507 </description>
4508 </leaf>
4509 </case>
4510 <case name="sctp_dst">
4511 <leaf name="sctp_dst">
4512 <type name="uint32"/>
4513 <description>
4514 <text>Used for OFPXMT_OFB_SCTP_DST</text>
4515 </description>
4516 </leaf>
4517 </case>
4518 <case name="icmpv4_type">
4519 <leaf name="icmpv4_type">
4520 <type name="uint32"/>
4521 <description>
4522 <text>#define OXM_OF_ICMPV4_TYPE OXM_HEADER (0x8000, OFPXMT_OFB_ICMPV4_TYPE, 1)
4523#define OXM_OF_ICMPV4_CODE OXM_HEADER (0x8000, OFPXMT_OFB_ICMPV4_CODE, 1)
4524Used for OFPXMT_OFB_ICMPV4_TYPEThe type or code in the ICMP header.
4525
4526Prereqs:
4527OXM_OF_ETH_TYPE must match 0x0800 exactly.
4528OXM_OF_IP_PROTO must match 1 exactly.
4529
4530Format: 8-bit integer.
4531
4532Masking: Not maskable.</text>
4533 </description>
4534 </leaf>
4535 </case>
4536 <case name="icmpv4_code">
4537 <leaf name="icmpv4_code">
4538 <type name="uint32"/>
4539 <description>
4540 <text>Used for OFPXMT_OFB_ICMPV4_CODE</text>
4541 </description>
4542 </leaf>
4543 </case>
4544 <case name="arp_op">
4545 <leaf name="arp_op">
4546 <type name="uint32"/>
4547 <description>
4548 <text>#define OXM_OF_ARP_OP OXM_HEADER (0x8000, OFPXMT_OFB_ARP_OP, 2)
4549Used for OFPXMT_OFB_ARP_OPARP opcode.
4550
4551For an Ethernet+IP ARP packet, the opcode in the ARP header. Always 0
4552otherwise.
4553
4554Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
4555
4556Format: 16-bit integer in network byte order.
4557
4558Masking: Not maskable.</text>
4559 </description>
4560 </leaf>
4561 </case>
4562 <case name="arp_spa">
4563 <leaf name="arp_spa">
4564 <type name="uint32"/>
4565 <description>
4566 <text>#define OXM_OF_ARP_SPA OXM_HEADER (0x8000, OFPXMT_OFB_ARP_SPA, 4)
4567#define OXM_OF_ARP_SPA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_SPA, 4)
4568#define OXM_OF_ARP_TPA OXM_HEADER (0x8000, OFPXMT_OFB_ARP_TPA, 4)
4569#define OXM_OF_ARP_TPA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_TPA, 4)
4570For OFPXMT_OFB_ARP_SPAFor an Ethernet+IP ARP packet, the source or target protocol address
4571in the ARP header. Always 0 otherwise.
4572
4573Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
4574
4575Format: 32-bit integer in network byte order.
4576
4577Masking: Arbitrary masks.</text>
4578 </description>
4579 </leaf>
4580 </case>
4581 <case name="arp_tpa">
4582 <leaf name="arp_tpa">
4583 <type name="uint32"/>
4584 <description>
4585 <text>For OFPXMT_OFB_ARP_TPA</text>
4586 </description>
4587 </leaf>
4588 </case>
4589 <case name="arp_sha">
4590 <leaf name="arp_sha">
4591 <type name="binary"/>
4592 <description>
4593 <text>#define OXM_OF_ARP_SHA OXM_HEADER (0x8000, OFPXMT_OFB_ARP_SHA, 6)
4594#define OXM_OF_ARP_SHA_W OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_SHA, 6)
4595#define OXM_OF_ARP_THA OXM_HEADER (0x8000, OFPXMT_OFB_ARP_THA, 6)
4596#define OXM_OF_ARP_THA_W OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_THA, 6)
4597For OFPXMT_OFB_ARP_SHA (6 bytes)For an Ethernet+IP ARP packet, the source or target hardware address
4598in the ARP header. Always 0 otherwise.
4599
4600Prereqs: OXM_OF_ETH_TYPE must match 0x0806 exactly.
4601
4602Format: 48-bit Ethernet MAC address.
4603
4604Masking: Not maskable.</text>
4605 </description>
4606 </leaf>
4607 </case>
4608 <case name="arp_tha">
4609 <leaf name="arp_tha">
4610 <type name="binary"/>
4611 <description>
4612 <text>For OFPXMT_OFB_ARP_THA (6 bytes)</text>
4613 </description>
4614 </leaf>
4615 </case>
4616 <case name="ipv6_src">
4617 <leaf name="ipv6_src">
4618 <type name="binary"/>
4619 <description>
4620 <text>#define OXM_OF_IPV6_SRC OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_SRC, 16)
4621#define OXM_OF_IPV6_SRC_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_SRC, 16)
4622#define OXM_OF_IPV6_DST OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_DST, 16)
4623#define OXM_OF_IPV6_DST_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_DST, 16)
4624For OFPXMT_OFB_IPV6_SRCThe source or destination address in the IPv6 header.
4625
4626Prereqs: OXM_OF_ETH_TYPE must match 0x86dd exactly.
4627
4628Format: 128-bit IPv6 address.
4629
4630Masking: Arbitrary masks.</text>
4631 </description>
4632 </leaf>
4633 </case>
4634 <case name="ipv6_dst">
4635 <leaf name="ipv6_dst">
4636 <type name="binary"/>
4637 <description>
4638 <text>For OFPXMT_OFB_IPV6_DST</text>
4639 </description>
4640 </leaf>
4641 </case>
4642 <case name="ipv6_flabel">
4643 <leaf name="ipv6_flabel">
4644 <type name="uint32"/>
4645 <description>
4646 <text>#define OXM_OF_IPV6_FLABEL OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
4647#define OXM_OF_IPV6_FLABEL_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
4648For OFPXMT_OFB_IPV6_FLABELThe IPv6 Flow Label
4649
4650Prereqs:
4651OXM_OF_ETH_TYPE must match 0x86dd exactly
4652
4653Format: 32-bit integer with 12 most-significant bits forced to 0.
4654Only the lower 20 bits have meaning.
4655
4656Masking: Arbitrary masks.</text>
4657 </description>
4658 </leaf>
4659 </case>
4660 <case name="icmpv6_type">
4661 <leaf name="icmpv6_type">
4662 <type name="uint32"/>
4663 <description>
4664 <text>#define OXM_OF_ICMPV6_TYPE OXM_HEADER (0x8000, OFPXMT_OFB_ICMPV6_TYPE, 1)
4665#define OXM_OF_ICMPV6_CODE OXM_HEADER (0x8000, OFPXMT_OFB_ICMPV6_CODE, 1)
4666For OFPXMT_OFB_ICMPV6_TYPEThe type or code in the ICMPv6 header.
4667
4668Prereqs:
4669OXM_OF_ETH_TYPE must match 0x86dd exactly.
4670OXM_OF_IP_PROTO must match 58 exactly.
4671
4672Format: 8-bit integer.
4673
4674Masking: Not maskable.</text>
4675 </description>
4676 </leaf>
4677 </case>
4678 <case name="icmpv6_code">
4679 <leaf name="icmpv6_code">
4680 <type name="uint32"/>
4681 <description>
4682 <text>For OFPXMT_OFB_ICMPV6_CODE</text>
4683 </description>
4684 </leaf>
4685 </case>
4686 <case name="ipv6_nd_target">
4687 <leaf name="ipv6_nd_target">
4688 <type name="binary"/>
4689 <description>
4690 <text>#define OXM_OF_IPV6_ND_TARGET OXM_HEADER
4691(0x8000, OFPXMT_OFB_IPV6_ND_TARGET, 16)
4692For OFPXMT_OFB_IPV6_ND_TARGETThe target address in an IPv6 Neighbor Discovery message.
4693
4694Prereqs:
4695OXM_OF_ETH_TYPE must match 0x86dd exactly.
4696OXM_OF_IP_PROTO must match 58 exactly.
4697OXM_OF_ICMPV6_TYPE must be either 135 or 136.
4698
4699Format: 128-bit IPv6 address.
4700
4701Masking: Not maskable.</text>
4702 </description>
4703 </leaf>
4704 </case>
4705 <case name="ipv6_nd_ssl">
4706 <leaf name="ipv6_nd_ssl">
4707 <type name="binary"/>
4708 <description>
4709 <text>#define OXM_OF_IPV6_ND_SLL OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_ND_SLL, 6)
4710For OFPXMT_OFB_IPV6_ND_SLLThe source link-layer address option in an IPv6 Neighbor Discovery
4711message.
4712
4713Prereqs:
4714OXM_OF_ETH_TYPE must match 0x86dd exactly.
4715OXM_OF_IP_PROTO must match 58 exactly.
4716OXM_OF_ICMPV6_TYPE must be exactly 135.
4717
4718Format: 48-bit Ethernet MAC address.
4719
4720Masking: Not maskable.</text>
4721 </description>
4722 </leaf>
4723 </case>
4724 <case name="ipv6_nd_tll">
4725 <leaf name="ipv6_nd_tll">
4726 <type name="binary"/>
4727 <description>
4728 <text>#define OXM_OF_IPV6_ND_TLL OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_ND_TLL, 6)
4729For OFPXMT_OFB_IPV6_ND_TLLThe target link-layer address option in an IPv6 Neighbor Discovery
4730message.
4731
4732Prereqs:
4733OXM_OF_ETH_TYPE must match 0x86dd exactly.
4734OXM_OF_IP_PROTO must match 58 exactly.
4735OXM_OF_ICMPV6_TYPE must be exactly 136.
4736
4737Format: 48-bit Ethernet MAC address.
4738
4739Masking: Not maskable.</text>
4740 </description>
4741 </leaf>
4742 </case>
4743 <case name="mpls_label">
4744 <leaf name="mpls_label">
4745 <type name="uint32"/>
4746 <description>
4747 <text>#define OXM_OF_MPLS_LABEL OXM_HEADER (0x8000, OFPXMT_OFB_MPLS_LABEL, 4)
4748For OFPXMT_OFB_MPLS_LABELThe LABEL in the first MPLS shim header.
4749
4750Prereqs:
4751OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
4752
4753Format: 32-bit integer in network byte order with 12 most-significant
4754bits forced to 0. Only the lower 20 bits have meaning.
4755
4756Masking: Not maskable.</text>
4757 </description>
4758 </leaf>
4759 </case>
4760 <case name="mpls_tc">
4761 <leaf name="mpls_tc">
4762 <type name="uint32"/>
4763 <description>
4764 <text>#define OXM_OF_MPLS_TC OXM_HEADER (0x8000, OFPXMT_OFB_MPLS_TC, 1)
4765For OFPXMT_OFB_MPLS_TCThe TC in the first MPLS shim header.
4766
4767Prereqs:
4768OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
4769
4770Format: 8-bit integer with 5 most-significant bits forced to 0.
4771Only the lower 3 bits have meaning.
4772
4773Masking: Not maskable.</text>
4774 </description>
4775 </leaf>
4776 </case>
4777 <case name="mpls_bos">
4778 <leaf name="mpls_bos">
4779 <type name="uint32"/>
4780 <description>
4781 <text>#define OXM_OF_MPLS_BOS OXM_HEADER (0x8000, OFPXMT_OFB_MPLS_BOS, 1)
4782For OFPXMT_OFB_MPLS_BOSThe BoS bit in the first MPLS shim header.
4783
4784Prereqs:
4785OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
4786
4787Format: 8-bit integer with 7 most-significant bits forced to 0.
4788Only the lowest bit have a meaning.
4789
4790Masking: Not maskable.</text>
4791 </description>
4792 </leaf>
4793 </case>
4794 <case name="pbb_isid">
4795 <leaf name="pbb_isid">
4796 <type name="uint32"/>
4797 <description>
4798 <text>#define OXM_OF_PBB_ISID OXM_HEADER (0x8000, OFPXMT_OFB_PBB_ISID, 3)
4799#define OXM_OF_PBB_ISID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_PBB_ISID, 3)
4800For OFPXMT_OFB_PBB_ISIDIEEE 802.1ah I-SID.
4801
4802For a packet with a PBB header, this is the I-SID from the
4803outermost service tag.
4804
4805Prereqs:
4806OXM_OF_ETH_TYPE must match 0x88E7 exactly.
4807
4808Format: 24-bit integer in network byte order.
4809
4810Masking: Arbitrary masks.</text>
4811 </description>
4812 </leaf>
4813 </case>
4814 <case name="tunnel_id">
4815 <leaf name="tunnel_id">
4816 <type name="uint64"/>
4817 <description>
4818 <text>#define OXM_OF_TUNNEL_ID OXM_HEADER (0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
4819#define OXM_OF_TUNNEL_ID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
4820For OFPXMT_OFB_TUNNEL_IDLogical Port Metadata.
4821
4822Metadata associated with a logical port.
4823If the logical port performs encapsulation and decapsulation, this
4824is the demultiplexing field from the encapsulation header.
4825For example, for a packet received via GRE tunnel including a (32-bit) key,
4826the key is stored in the low 32-bits and the high bits are zeroed.
4827For a MPLS logical port, the low 20 bits represent the MPLS Label.
4828For a VxLAN logical port, the low 24 bits represent the VNI.
4829If the packet is not received through a logical port, the value is 0.
4830
4831Prereqs: None.
4832
4833Format: 64-bit integer in network byte order.
4834
4835Masking: Arbitrary masks.</text>
4836 </description>
4837 </leaf>
4838 </case>
4839 <case name="ipv6_exthdr">
4840 <leaf name="ipv6_exthdr">
4841 <type name="uint32"/>
4842 <description>
4843 <text>#define OXM_OF_IPV6_EXTHDR OXM_HEADER (0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
4844#define OXM_OF_IPV6_EXTHDR_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
4845For OFPXMT_OFB_IPV6_EXTHDRThe IPv6 Extension Header pseudo-field.
4846
4847Prereqs:
4848OXM_OF_ETH_TYPE must match 0x86dd exactly
4849
4850Format: 16-bit integer with 7 most-significant bits forced to 0.
4851Only the lower 9 bits have meaning.
4852
4853Masking: Maskable.</text>
4854 </description>
4855 </leaf>
4856 </case>
4857 </choice>
4858 <choice name="choice_1">
4859 <case name="table_metadata_mask">
4860 <leaf name="table_metadata_mask">
4861 <type name="uint64"/>
4862 <description>
4863 <text>For OFPXMT_OFB_METADATA</text>
4864 </description>
4865 </leaf>
4866 </case>
4867 <case name="eth_dst_mask">
4868 <leaf name="eth_dst_mask">
4869 <type name="binary"/>
4870 <description>
4871 <text>For OFPXMT_OFB_ETH_DST (exactly 6 bytes)</text>
4872 </description>
4873 </leaf>
4874 </case>
4875 <case name="eth_src_mask">
4876 <leaf name="eth_src_mask">
4877 <type name="binary"/>
4878 <description>
4879 <text>For OFPXMT_OFB_ETH_SRC (exactly 6 bytes)</text>
4880 </description>
4881 </leaf>
4882 </case>
4883 <case name="vlan_vid_mask">
4884 <leaf name="vlan_vid_mask">
4885 <type name="uint32"/>
4886 <description>
4887 <text>For OFPXMT_OFB_VLAN_VID</text>
4888 </description>
4889 </leaf>
4890 </case>
4891 <case name="ipv4_src_mask">
4892 <leaf name="ipv4_src_mask">
4893 <type name="uint32"/>
4894 <description>
4895 <text>For OFPXMT_OFB_IPV4_SRC</text>
4896 </description>
4897 </leaf>
4898 </case>
4899 <case name="ipv4_dst_mask">
4900 <leaf name="ipv4_dst_mask">
4901 <type name="uint32"/>
4902 <description>
4903 <text>For OFPXMT_OFB_IPV4_DST</text>
4904 </description>
4905 </leaf>
4906 </case>
4907 <case name="arp_spa_mask">
4908 <leaf name="arp_spa_mask">
4909 <type name="uint32"/>
4910 <description>
4911 <text>For OFPXMT_OFB_ARP_SPA</text>
4912 </description>
4913 </leaf>
4914 </case>
4915 <case name="arp_tpa_mask">
4916 <leaf name="arp_tpa_mask">
4917 <type name="uint32"/>
4918 <description>
4919 <text>For OFPXMT_OFB_ARP_TPA</text>
4920 </description>
4921 </leaf>
4922 </case>
4923 <case name="ipv6_src_mask">
4924 <leaf name="ipv6_src_mask">
4925 <type name="binary"/>
4926 <description>
4927 <text>For OFPXMT_OFB_IPV6_SRC</text>
4928 </description>
4929 </leaf>
4930 </case>
4931 <case name="ipv6_dst_mask">
4932 <leaf name="ipv6_dst_mask">
4933 <type name="binary"/>
4934 <description>
4935 <text>For OFPXMT_OFB_IPV6_DST</text>
4936 </description>
4937 </leaf>
4938 </case>
4939 <case name="ipv6_flabel_mask">
4940 <leaf name="ipv6_flabel_mask">
4941 <type name="uint32"/>
4942 <description>
4943 <text>For OFPXMT_OFB_IPV6_FLABEL</text>
4944 </description>
4945 </leaf>
4946 </case>
4947 <case name="pbb_isid_mask">
4948 <leaf name="pbb_isid_mask">
4949 <type name="uint32"/>
4950 <description>
4951 <text>For OFPXMT_OFB_PBB_ISID</text>
4952 </description>
4953 </leaf>
4954 </case>
4955 <case name="tunnel_id_mask">
4956 <leaf name="tunnel_id_mask">
4957 <type name="uint64"/>
4958 <description>
4959 <text>For OFPXMT_OFB_TUNNEL_ID</text>
4960 </description>
4961 </leaf>
4962 </case>
4963 <case name="ipv6_exthdr_mask">
4964 <leaf name="ipv6_exthdr_mask">
4965 <type name="uint32"/>
4966 <description>
4967 <text>For OFPXMT_OFB_IPV6_EXTHDR</text>
4968 </description>
4969 </leaf>
4970 </case>
4971 </choice>
4972 </grouping>
4973 <grouping name="ofp_oxm_experimenter_field">
4974 <description>
4975 <text>Header for OXM experimenter match fields.
4976The experimenter class should not use OXM_HEADER() macros for defining
4977fields due to this extra header.</text>
4978 </description>
4979 <leaf name="oxm_header">
4980 <type name="uint32"/>
4981 <description>
4982 <text>oxm_class = OFPXMC_EXPERIMENTER</text>
4983 </description>
4984 </leaf>
4985 <leaf name="experimenter">
4986 <type name="uint32"/>
4987 <description>
4988 <text>Experimenter ID which takes the same
4989form as in struct ofp_experimenter_header.</text>
4990 </description>
4991 </leaf>
4992 </grouping>
4993 <grouping name="ofp_action">
4994 <description>
4995 <text>Action header that is common to all actions. The length includes the
4996header and any padding used to make the action 64-bit aligned.
4997NB: The length of an action must always be a multiple of eight.</text>
4998 </description>
4999 <leaf name="type">
5000 <type name="ofp_action_type"/>
5001 <description>
5002 <text>One of OFPAT_ .</text>
5003 </description>
5004 </leaf>
5005 <choice name="choice_0">
5006 <case name="output">
5007 <container name="output">
5008 <uses name="ofp_action_output"/>
5009 <description>
5010 <text/>
5011 </description>
5012 </container>
5013 </case>
5014 <case name="mpls_ttl">
5015 <container name="mpls_ttl">
5016 <uses name="ofp_action_mpls_ttl"/>
5017 <description>
5018 <text/>
5019 </description>
5020 </container>
5021 </case>
5022 <case name="push">
5023 <container name="push">
5024 <uses name="ofp_action_push"/>
5025 <description>
5026 <text/>
5027 </description>
5028 </container>
5029 </case>
5030 <case name="pop_mpls">
5031 <container name="pop_mpls">
5032 <uses name="ofp_action_pop_mpls"/>
5033 <description>
5034 <text/>
5035 </description>
5036 </container>
5037 </case>
5038 <case name="group">
5039 <container name="group">
5040 <uses name="ofp_action_group"/>
5041 <description>
5042 <text/>
5043 </description>
5044 </container>
5045 </case>
5046 <case name="nw_ttl">
5047 <container name="nw_ttl">
5048 <uses name="ofp_action_nw_ttl"/>
5049 <description>
5050 <text/>
5051 </description>
5052 </container>
5053 </case>
5054 <case name="set_field">
5055 <container name="set_field">
5056 <uses name="ofp_action_set_field"/>
5057 <description>
5058 <text/>
5059 </description>
5060 </container>
5061 </case>
5062 <case name="experimenter">
5063 <container name="experimenter">
5064 <uses name="ofp_action_experimenter"/>
5065 <description>
5066 <text/>
5067 </description>
5068 </container>
5069 </case>
5070 </choice>
5071 </grouping>
5072 <grouping name="ofp_action_output">
5073 <description>
5074 <text>Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
5075When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
5076number of bytes to send. A 'max_len' of zero means no bytes of the
5077packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
5078the packet is not buffered and the complete packet is to be sent to
5079the controller.</text>
5080 </description>
5081 <leaf name="port">
5082 <type name="uint32"/>
5083 <description>
5084 <text>Output port.</text>
5085 </description>
5086 </leaf>
5087 <leaf name="max_len">
5088 <type name="uint32"/>
5089 <description>
5090 <text>Max length to send to controller.</text>
5091 </description>
5092 </leaf>
5093 </grouping>
5094 <grouping name="ofp_action_mpls_ttl">
5095 <description>
5096 <text>Action structure for OFPAT_SET_MPLS_TTL.</text>
5097 </description>
5098 <leaf name="mpls_ttl">
5099 <type name="uint32"/>
5100 <description>
5101 <text>MPLS TTL</text>
5102 </description>
5103 </leaf>
5104 </grouping>
5105 <grouping name="ofp_action_push">
5106 <description>
5107 <text>Action structure for OFPAT_PUSH_VLAN MPLS PBB.</text>
5108 </description>
5109 <leaf name="ethertype">
5110 <type name="uint32"/>
5111 <description>
5112 <text>Ethertype</text>
5113 </description>
5114 </leaf>
5115 </grouping>
5116 <grouping name="ofp_action_pop_mpls">
5117 <description>
5118 <text>Action structure for OFPAT_POP_MPLS.</text>
5119 </description>
5120 <leaf name="ethertype">
5121 <type name="uint32"/>
5122 <description>
5123 <text>Ethertype</text>
5124 </description>
5125 </leaf>
5126 </grouping>
5127 <grouping name="ofp_action_group">
5128 <description>
5129 <text>Action structure for OFPAT_GROUP.</text>
5130 </description>
5131 <leaf name="group_id">
5132 <type name="uint32"/>
5133 <description>
5134 <text>Group identifier.</text>
5135 </description>
5136 </leaf>
5137 </grouping>
5138 <grouping name="ofp_action_nw_ttl">
5139 <description>
5140 <text>Action structure for OFPAT_SET_NW_TTL.</text>
5141 </description>
5142 <leaf name="nw_ttl">
5143 <type name="uint32"/>
5144 <description>
5145 <text>IP TTL</text>
5146 </description>
5147 </leaf>
5148 </grouping>
5149 <grouping name="ofp_action_set_field">
5150 <description>
5151 <text>Action structure for OFPAT_SET_FIELD.</text>
5152 </description>
5153 <container name="field">
5154 <uses name="ofp_oxm_field"/>
5155 <description>
5156 <text/>
5157 </description>
5158 </container>
5159 </grouping>
5160 <grouping name="ofp_action_experimenter">
5161 <description>
5162 <text>Action header for OFPAT_EXPERIMENTER.
5163The rest of the body is experimenter-defined.</text>
5164 </description>
5165 <leaf name="experimenter">
5166 <type name="uint32"/>
5167 <description>
5168 <text>Experimenter ID which takes the same
5169form as in struct
5170ofp_experimenter_header.</text>
5171 </description>
5172 </leaf>
5173 <leaf name="data">
5174 <type name="binary"/>
5175 <description>
5176 <text/>
5177 </description>
5178 </leaf>
5179 </grouping>
5180 <grouping name="ofp_instruction">
5181 <description>
5182 <text>Instruction header that is common to all instructions. The length includes
5183the header and any padding used to make the instruction 64-bit aligned.
5184NB: The length of an instruction must always be a multiple of eight.</text>
5185 </description>
5186 <leaf name="type">
5187 <type name="uint32"/>
5188 <description>
5189 <text>Instruction type</text>
5190 </description>
5191 </leaf>
5192 <choice name="choice_0">
5193 <case name="goto_table">
5194 <container name="goto_table">
5195 <uses name="ofp_instruction_goto_table"/>
5196 <description>
5197 <text/>
5198 </description>
5199 </container>
5200 </case>
5201 <case name="write_metadata">
5202 <container name="write_metadata">
5203 <uses name="ofp_instruction_write_metadata"/>
5204 <description>
5205 <text/>
5206 </description>
5207 </container>
5208 </case>
5209 <case name="actions">
5210 <container name="actions">
5211 <uses name="ofp_instruction_actions"/>
5212 <description>
5213 <text/>
5214 </description>
5215 </container>
5216 </case>
5217 <case name="meter">
5218 <container name="meter">
5219 <uses name="ofp_instruction_meter"/>
5220 <description>
5221 <text/>
5222 </description>
5223 </container>
5224 </case>
5225 <case name="experimenter">
5226 <container name="experimenter">
5227 <uses name="ofp_instruction_experimenter"/>
5228 <description>
5229 <text/>
5230 </description>
5231 </container>
5232 </case>
5233 </choice>
5234 </grouping>
5235 <grouping name="ofp_instruction_goto_table">
5236 <description>
5237 <text>Instruction structure for OFPIT_GOTO_TABLE</text>
5238 </description>
5239 <leaf name="table_id">
5240 <type name="uint32"/>
5241 <description>
5242 <text>Set next table in the lookup pipeline</text>
5243 </description>
5244 </leaf>
5245 </grouping>
5246 <grouping name="ofp_instruction_write_metadata">
5247 <description>
5248 <text>Instruction structure for OFPIT_WRITE_METADATA</text>
5249 </description>
5250 <leaf name="metadata">
5251 <type name="uint64"/>
5252 <description>
5253 <text>Metadata value to write</text>
5254 </description>
5255 </leaf>
5256 <leaf name="metadata_mask">
5257 <type name="uint64"/>
5258 <description>
5259 <text>Metadata write bitmask</text>
5260 </description>
5261 </leaf>
5262 </grouping>
5263 <grouping name="ofp_instruction_actions">
5264 <description>
5265 <text>Instruction structure for OFPIT_WRITE APPLY CLEAR_ACTIONS</text>
5266 </description>
5267 <list name="actions">
5268 <key value="type"/>
5269 <uses name="ofp_action"/>
5270 <description>
5271 <text>0 or more actions associated
5272with OFPIT_WRITE_ACTIONS and
5273OFPIT_APPLY_ACTIONS</text>
5274 </description>
5275 </list>
5276 </grouping>
5277 <grouping name="ofp_instruction_meter">
5278 <description>
5279 <text>Instruction structure for OFPIT_METER</text>
5280 </description>
5281 <leaf name="meter_id">
5282 <type name="uint32"/>
5283 <description>
5284 <text>Meter instance.</text>
5285 </description>
5286 </leaf>
5287 </grouping>
5288 <grouping name="ofp_instruction_experimenter">
5289 <description>
5290 <text>Instruction structure for experimental instructions</text>
5291 </description>
5292 <leaf name="experimenter">
5293 <type name="uint32"/>
5294 <description>
5295 <text>Experimenter ID which takes the same form
5296as in struct ofp_experimenter_header.</text>
5297 </description>
5298 </leaf>
5299 <leaf name="data">
5300 <type name="binary"/>
5301 <description>
5302 <text>Experimenter-defined arbitrary additional data.</text>
5303 </description>
5304 </leaf>
5305 </grouping>
5306 <grouping name="ofp_flow_mod">
5307 <description>
5308 <text>Flow setup and teardown (controller - datapath).</text>
5309 </description>
5310 <leaf name="cookie">
5311 <type name="uint64"/>
5312 <description>
5313 <text>ofp_header header;
5314Opaque controller-issued identifier.</text>
5315 </description>
5316 </leaf>
5317 <leaf name="cookie_mask">
5318 <type name="uint64"/>
5319 <description>
5320 <text>Mask used to restrict the cookie bits
5321that must match when the command is
5322OFPFC_MODIFY or OFPFC_DELETE . A value
5323of 0 indicates no restriction.</text>
5324 </description>
5325 </leaf>
5326 <leaf name="table_id">
5327 <type name="uint32"/>
5328 <description>
5329 <text>ID of the table to put the flow in.
5330For OFPFC_DELETE_ commands, OFPTT_ALL
5331can also be used to delete matching
5332flows from all tables.</text>
5333 </description>
5334 </leaf>
5335 <leaf name="command">
5336 <type name="ofp_flow_mod_command"/>
5337 <description>
5338 <text>One of OFPFC_ .</text>
5339 </description>
5340 </leaf>
5341 <leaf name="idle_timeout">
5342 <type name="uint32"/>
5343 <description>
5344 <text>Idle time before discarding (seconds).</text>
5345 </description>
5346 </leaf>
5347 <leaf name="hard_timeout">
5348 <type name="uint32"/>
5349 <description>
5350 <text>Max time before discarding (seconds).</text>
5351 </description>
5352 </leaf>
5353 <leaf name="priority">
5354 <type name="uint32"/>
5355 <description>
5356 <text>Priority level of flow entry.</text>
5357 </description>
5358 </leaf>
5359 <leaf name="buffer_id">
5360 <type name="uint32"/>
5361 <description>
5362 <text>Buffered packet to apply to, or
5363OFP_NO_BUFFER.
5364Not meaningful for OFPFC_DELETE .</text>
5365 </description>
5366 </leaf>
5367 <leaf name="out_port">
5368 <type name="uint32"/>
5369 <description>
5370 <text>For OFPFC_DELETE commands, require
5371matching entries to include this as an
5372output port. A value of OFPP_ANY
5373indicates no restriction.</text>
5374 </description>
5375 </leaf>
5376 <leaf name="out_group">
5377 <type name="uint32"/>
5378 <description>
5379 <text>For OFPFC_DELETE commands, require
5380matching entries to include this as an
5381output group. A value of OFPG_ANY
5382indicates no restriction.</text>
5383 </description>
5384 </leaf>
5385 <leaf name="flags">
5386 <type name="uint32"/>
5387 <description>
5388 <text>Bitmap of OFPFF_ flags.</text>
5389 </description>
5390 </leaf>
5391 <container name="match">
5392 <uses name="ofp_match"/>
5393 <description>
5394 <text>Fields to match. Variable size.</text>
5395 </description>
5396 </container>
5397 <list name="instructions">
5398 <key value="type"/>
5399 <uses name="ofp_instruction"/>
5400 <description>
5401 <text>0 or more.</text>
5402 </description>
5403 </list>
5404 </grouping>
5405 <grouping name="ofp_bucket">
5406 <description>
5407 <text>Bucket for use in groups.</text>
5408 </description>
5409 <leaf name="weight">
5410 <type name="uint32"/>
5411 <description>
5412 <text>Relative weight of bucket. Only
5413defined for select groups.</text>
5414 </description>
5415 </leaf>
5416 <leaf name="watch_port">
5417 <type name="uint32"/>
5418 <description>
5419 <text>Port whose state affects whether this
5420bucket is live. Only required for fast
5421failover groups.</text>
5422 </description>
5423 </leaf>
5424 <leaf name="watch_group">
5425 <type name="uint32"/>
5426 <description>
5427 <text>Group whose state affects whether this
5428bucket is live. Only required for fast
5429failover groups.</text>
5430 </description>
5431 </leaf>
5432 <list name="actions">
5433 <key value="type"/>
5434 <uses name="ofp_action"/>
5435 <description>
5436 <text/>
5437 </description>
5438 </list>
5439 </grouping>
5440 <grouping name="ofp_group_mod">
5441 <description>
5442 <text>Group setup and teardown (controller - datapath).</text>
5443 </description>
5444 <leaf name="command">
5445 <type name="ofp_group_mod_command"/>
5446 <description>
5447 <text>ofp_header header;
5448One of OFPGC_ .</text>
5449 </description>
5450 </leaf>
5451 <leaf name="type">
5452 <type name="ofp_group_type"/>
5453 <description>
5454 <text>One of OFPGT_ .</text>
5455 </description>
5456 </leaf>
5457 <leaf name="group_id">
5458 <type name="uint32"/>
5459 <description>
5460 <text>Group identifier.</text>
5461 </description>
5462 </leaf>
5463 <list name="buckets">
5464 <key value="weight"/>
5465 <uses name="ofp_bucket"/>
5466 <description>
5467 <text/>
5468 </description>
5469 </list>
5470 </grouping>
5471 <grouping name="ofp_packet_out">
5472 <description>
5473 <text>Send packet (controller - datapath).Special buffer-id to indicate 'no buffer'#define OFP_NO_BUFFER 0xffffffff</text>
5474 </description>
5475 <leaf name="buffer_id">
5476 <type name="uint32"/>
5477 <description>
5478 <text>ofp_header header;
5479ID assigned by datapath (OFP_NO_BUFFER
5480if none).</text>
5481 </description>
5482 </leaf>
5483 <leaf name="in_port">
5484 <type name="uint32"/>
5485 <description>
5486 <text>Packet's input port or OFPP_CONTROLLER.</text>
5487 </description>
5488 </leaf>
5489 <list name="actions">
5490 <key value="type"/>
5491 <uses name="ofp_action"/>
5492 <description>
5493 <text>Action list - 0 or more.</text>
5494 </description>
5495 </list>
5496 <leaf name="data">
5497 <type name="binary"/>
5498 <description>
5499 <text>The variable size action list is optionally followed by packet data.
5500This data is only present and meaningful if buffer_id == -1.Packet data.</text>
5501 </description>
5502 </leaf>
5503 </grouping>
5504 <grouping name="ofp_packet_in">
5505 <description>
5506 <text>Packet received on port (datapath - controller).</text>
5507 </description>
5508 <leaf name="buffer_id">
5509 <type name="uint32"/>
5510 <description>
5511 <text>ofp_header header;
5512ID assigned by datapath.</text>
5513 </description>
5514 </leaf>
5515 <leaf name="reason">
5516 <type name="ofp_packet_in_reason"/>
5517 <description>
5518 <text>Reason packet is being sent</text>
5519 </description>
5520 </leaf>
5521 <leaf name="table_id">
5522 <type name="uint32"/>
5523 <description>
5524 <text>ID of the table that was looked up</text>
5525 </description>
5526 </leaf>
5527 <leaf name="cookie">
5528 <type name="uint64"/>
5529 <description>
5530 <text>Cookie of the flow entry that was looked up.</text>
5531 </description>
5532 </leaf>
5533 <container name="match">
5534 <uses name="ofp_match"/>
5535 <description>
5536 <text>Packet metadata. Variable size.</text>
5537 </description>
5538 </container>
5539 <leaf name="data">
5540 <type name="binary"/>
5541 <description>
5542 <text>Ethernet frame</text>
5543 </description>
5544 </leaf>
5545 </grouping>
5546 <container name="ofp_flow_removed">
5547 <description>
5548 <text>Flow removed (datapath - controller).</text>
5549 </description>
5550 <leaf name="cookie">
5551 <type name="uint64"/>
5552 <description>
5553 <text>ofp_header header;
5554Opaque controller-issued identifier.</text>
5555 </description>
5556 </leaf>
5557 <leaf name="priority">
5558 <type name="uint32"/>
5559 <description>
5560 <text>Priority level of flow entry.</text>
5561 </description>
5562 </leaf>
5563 <leaf name="reason">
5564 <type name="ofp_flow_removed_reason"/>
5565 <description>
5566 <text>One of OFPRR_ .</text>
5567 </description>
5568 </leaf>
5569 <leaf name="table_id">
5570 <type name="uint32"/>
5571 <description>
5572 <text>ID of the table</text>
5573 </description>
5574 </leaf>
5575 <leaf name="duration_sec">
5576 <type name="uint32"/>
5577 <description>
5578 <text>Time flow was alive in seconds.</text>
5579 </description>
5580 </leaf>
5581 <leaf name="duration_nsec">
5582 <type name="uint32"/>
5583 <description>
5584 <text>Time flow was alive in nanoseconds beyond
5585duration_sec.</text>
5586 </description>
5587 </leaf>
5588 <leaf name="idle_timeout">
5589 <type name="uint32"/>
5590 <description>
5591 <text>Idle timeout from original flow mod.</text>
5592 </description>
5593 </leaf>
5594 <leaf name="hard_timeout">
5595 <type name="uint32"/>
5596 <description>
5597 <text>Hard timeout from original flow mod.</text>
5598 </description>
5599 </leaf>
5600 <leaf name="packet_count">
5601 <type name="uint64"/>
5602 <description>
5603 <text/>
5604 </description>
5605 </leaf>
5606 <leaf name="byte_count">
5607 <type name="uint64"/>
5608 <description>
5609 <text/>
5610 </description>
5611 </leaf>
5612 <container name="match">
5613 <uses name="ofp_match"/>
5614 <description>
5615 <text>Description of fields. Variable size.</text>
5616 </description>
5617 </container>
5618 </container>
5619 <grouping name="ofp_meter_band_header">
5620 <description>
5621 <text>Common header for all meter bands</text>
5622 </description>
5623 <leaf name="type">
5624 <type name="ofp_meter_band_type"/>
5625 <description>
5626 <text>One of OFPMBT_ .</text>
5627 </description>
5628 </leaf>
5629 <leaf name="len">
5630 <type name="uint32"/>
5631 <description>
5632 <text>Length in bytes of this band.</text>
5633 </description>
5634 </leaf>
5635 <leaf name="rate">
5636 <type name="uint32"/>
5637 <description>
5638 <text>Rate for this band.</text>
5639 </description>
5640 </leaf>
5641 <leaf name="burst_size">
5642 <type name="uint32"/>
5643 <description>
5644 <text>Size of bursts.</text>
5645 </description>
5646 </leaf>
5647 </grouping>
5648 <container name="ofp_meter_band_drop">
5649 <description>
5650 <text>OFPMBT_DROP band - drop packets</text>
5651 </description>
5652 <leaf name="type">
5653 <type name="uint32"/>
5654 <description>
5655 <text>OFPMBT_DROP.</text>
5656 </description>
5657 </leaf>
5658 <leaf name="len">
5659 <type name="uint32"/>
5660 <description>
5661 <text>Length in bytes of this band.</text>
5662 </description>
5663 </leaf>
5664 <leaf name="rate">
5665 <type name="uint32"/>
5666 <description>
5667 <text>Rate for dropping packets.</text>
5668 </description>
5669 </leaf>
5670 <leaf name="burst_size">
5671 <type name="uint32"/>
5672 <description>
5673 <text>Size of bursts.</text>
5674 </description>
5675 </leaf>
5676 </container>
5677 <container name="ofp_meter_band_dscp_remark">
5678 <description>
5679 <text>OFPMBT_DSCP_REMARK band - Remark DSCP in the IP header</text>
5680 </description>
5681 <leaf name="type">
5682 <type name="uint32"/>
5683 <description>
5684 <text>OFPMBT_DSCP_REMARK.</text>
5685 </description>
5686 </leaf>
5687 <leaf name="len">
5688 <type name="uint32"/>
5689 <description>
5690 <text>Length in bytes of this band.</text>
5691 </description>
5692 </leaf>
5693 <leaf name="rate">
5694 <type name="uint32"/>
5695 <description>
5696 <text>Rate for remarking packets.</text>
5697 </description>
5698 </leaf>
5699 <leaf name="burst_size">
5700 <type name="uint32"/>
5701 <description>
5702 <text>Size of bursts.</text>
5703 </description>
5704 </leaf>
5705 <leaf name="prec_level">
5706 <type name="uint32"/>
5707 <description>
5708 <text>Number of drop precedence level to add.</text>
5709 </description>
5710 </leaf>
5711 </container>
5712 <container name="ofp_meter_band_experimenter">
5713 <description>
5714 <text>OFPMBT_EXPERIMENTER band - Experimenter type.
5715The rest of the band is experimenter-defined.</text>
5716 </description>
5717 <leaf name="type">
5718 <type name="ofp_meter_band_type"/>
5719 <description>
5720 <text>One of OFPMBT_ .</text>
5721 </description>
5722 </leaf>
5723 <leaf name="len">
5724 <type name="uint32"/>
5725 <description>
5726 <text>Length in bytes of this band.</text>
5727 </description>
5728 </leaf>
5729 <leaf name="rate">
5730 <type name="uint32"/>
5731 <description>
5732 <text>Rate for this band.</text>
5733 </description>
5734 </leaf>
5735 <leaf name="burst_size">
5736 <type name="uint32"/>
5737 <description>
5738 <text>Size of bursts.</text>
5739 </description>
5740 </leaf>
5741 <leaf name="experimenter">
5742 <type name="uint32"/>
5743 <description>
5744 <text>Experimenter ID which takes the
5745same form as in struct
5746ofp_experimenter_header.</text>
5747 </description>
5748 </leaf>
5749 </container>
5750 <container name="ofp_meter_mod">
5751 <description>
5752 <text>Meter configuration. OFPT_METER_MOD.</text>
5753 </description>
5754 <leaf name="command">
5755 <type name="ofp_meter_mod_command"/>
5756 <description>
5757 <text>ofp_header header = 1;
5758One of OFPMC_ .</text>
5759 </description>
5760 </leaf>
5761 <leaf name="flags">
5762 <type name="uint32"/>
5763 <description>
5764 <text>Bitmap of OFPMF_ flags.</text>
5765 </description>
5766 </leaf>
5767 <leaf name="meter_id">
5768 <type name="uint32"/>
5769 <description>
5770 <text>Meter instance.</text>
5771 </description>
5772 </leaf>
5773 <list name="bands">
5774 <key value="type"/>
5775 <uses name="ofp_meter_band_header"/>
5776 <description>
5777 <text>The band list length is
5778inferred from the length field
5779in the header.</text>
5780 </description>
5781 </list>
5782 </container>
5783 <container name="ofp_error_msg">
5784 <description>
5785 <text>OFPT_ERROR: Error message (datapath - controller).</text>
5786 </description>
5787 <leaf name="type">
5788 <type name="uint32"/>
5789 <description>
5790 <text>ofp_header header;</text>
5791 </description>
5792 </leaf>
5793 <leaf name="code">
5794 <type name="uint32"/>
5795 <description>
5796 <text/>
5797 </description>
5798 </leaf>
5799 <leaf name="data">
5800 <type name="binary"/>
5801 <description>
5802 <text>Variable-length data. Interpreted based
5803on the type and code. No padding.</text>
5804 </description>
5805 </leaf>
5806 </container>
5807 <container name="ofp_error_experimenter_msg">
5808 <description>
5809 <text>OFPET_EXPERIMENTER: Error message (datapath - controller).ofp_header header;</text>
5810 </description>
5811 <leaf name="type">
5812 <type name="uint32"/>
5813 <description>
5814 <text>OFPET_EXPERIMENTER.</text>
5815 </description>
5816 </leaf>
5817 <leaf name="exp_type">
5818 <type name="uint32"/>
5819 <description>
5820 <text>Experimenter defined.</text>
5821 </description>
5822 </leaf>
5823 <leaf name="experimenter">
5824 <type name="uint32"/>
5825 <description>
5826 <text>Experimenter ID which takes the same form
5827as in struct ofp_experimenter_header.</text>
5828 </description>
5829 </leaf>
5830 <leaf name="data">
5831 <type name="binary"/>
5832 <description>
5833 <text>Variable-length data. Interpreted based
5834on the type and code. No padding.</text>
5835 </description>
5836 </leaf>
5837 </container>
5838 <container name="ofp_multipart_request">
5839 <description>
5840 <text/>
5841 </description>
5842 <leaf name="type">
5843 <type name="ofp_multipart_type"/>
5844 <description>
5845 <text>ofp_header header;
5846One of the OFPMP_ constants.</text>
5847 </description>
5848 </leaf>
5849 <leaf name="flags">
5850 <type name="uint32"/>
5851 <description>
5852 <text>OFPMPF_REQ_ flags.</text>
5853 </description>
5854 </leaf>
5855 <leaf name="body">
5856 <type name="binary"/>
5857 <description>
5858 <text>Body of the request. 0 or more bytes.</text>
5859 </description>
5860 </leaf>
5861 </container>
5862 <container name="ofp_multipart_reply">
5863 <description>
5864 <text/>
5865 </description>
5866 <leaf name="type">
5867 <type name="ofp_multipart_type"/>
5868 <description>
5869 <text>ofp_header header;
5870One of the OFPMP_ constants.</text>
5871 </description>
5872 </leaf>
5873 <leaf name="flags">
5874 <type name="uint32"/>
5875 <description>
5876 <text>OFPMPF_REPLY_ flags.</text>
5877 </description>
5878 </leaf>
5879 <leaf name="body">
5880 <type name="binary"/>
5881 <description>
5882 <text>Body of the reply. 0 or more bytes.</text>
5883 </description>
5884 </leaf>
5885 </container>
5886 <grouping name="ofp_desc">
5887 <description>
5888 <text>Body of reply to OFPMP_DESC request. Each entry is a NULL-terminated
5889ASCII string.#define DESC_STR_LEN 256
5890#define SERIAL_NUM_LEN 32</text>
5891 </description>
5892 <leaf name="mfr_desc">
5893 <type name="string"/>
5894 <description>
5895 <text>Manufacturer description.</text>
5896 </description>
5897 </leaf>
5898 <leaf name="hw_desc">
5899 <type name="string"/>
5900 <description>
5901 <text>Hardware description.</text>
5902 </description>
5903 </leaf>
5904 <leaf name="sw_desc">
5905 <type name="string"/>
5906 <description>
5907 <text>Software description.</text>
5908 </description>
5909 </leaf>
5910 <leaf name="serial_num">
5911 <type name="string"/>
5912 <description>
5913 <text>Serial number.</text>
5914 </description>
5915 </leaf>
5916 <leaf name="dp_desc">
5917 <type name="string"/>
5918 <description>
5919 <text>Human readable description of datapath.</text>
5920 </description>
5921 </leaf>
5922 </grouping>
5923 <container name="ofp_flow_stats_request">
5924 <description>
5925 <text>Body for ofp_multipart_request of type OFPMP_FLOW.</text>
5926 </description>
5927 <leaf name="table_id">
5928 <type name="uint32"/>
5929 <description>
5930 <text>ID of table to read (from ofp_table_stats),
5931OFPTT_ALL for all tables.</text>
5932 </description>
5933 </leaf>
5934 <leaf name="out_port">
5935 <type name="uint32"/>
5936 <description>
5937 <text>Require matching entries to include this
5938as an output port. A value of OFPP_ANY
5939indicates no restriction.</text>
5940 </description>
5941 </leaf>
5942 <leaf name="out_group">
5943 <type name="uint32"/>
5944 <description>
5945 <text>Require matching entries to include this
5946as an output group. A value of OFPG_ANY
5947indicates no restriction.</text>
5948 </description>
5949 </leaf>
5950 <leaf name="cookie">
5951 <type name="uint64"/>
5952 <description>
5953 <text>Require matching entries to contain this
5954cookie value</text>
5955 </description>
5956 </leaf>
5957 <leaf name="cookie_mask">
5958 <type name="uint64"/>
5959 <description>
5960 <text>Mask used to restrict the cookie bits that
5961must match. A value of 0 indicates
5962no restriction.</text>
5963 </description>
5964 </leaf>
5965 <container name="match">
5966 <uses name="ofp_match"/>
5967 <description>
5968 <text>Fields to match. Variable size.</text>
5969 </description>
5970 </container>
5971 </container>
5972 <grouping name="ofp_flow_stats">
5973 <description>
5974 <text>Body of reply to OFPMP_FLOW request.</text>
5975 </description>
5976 <leaf name="id">
5977 <type name="uint64"/>
5978 <description>
5979 <text>Unique ID of flow within device.</text>
5980 </description>
5981 </leaf>
5982 <leaf name="table_id">
5983 <type name="uint32"/>
5984 <description>
5985 <text>ID of table flow came from.</text>
5986 </description>
5987 </leaf>
5988 <leaf name="duration_sec">
5989 <type name="uint32"/>
5990 <description>
5991 <text>Time flow has been alive in seconds.</text>
5992 </description>
5993 </leaf>
5994 <leaf name="duration_nsec">
5995 <type name="uint32"/>
5996 <description>
5997 <text>Time flow has been alive in nanoseconds
5998beyond duration_sec.</text>
5999 </description>
6000 </leaf>
6001 <leaf name="priority">
6002 <type name="uint32"/>
6003 <description>
6004 <text>Priority of the entry.</text>
6005 </description>
6006 </leaf>
6007 <leaf name="idle_timeout">
6008 <type name="uint32"/>
6009 <description>
6010 <text>Number of seconds idle before expiration.</text>
6011 </description>
6012 </leaf>
6013 <leaf name="hard_timeout">
6014 <type name="uint32"/>
6015 <description>
6016 <text>Number of seconds before expiration.</text>
6017 </description>
6018 </leaf>
6019 <leaf name="flags">
6020 <type name="uint32"/>
6021 <description>
6022 <text>Bitmap of OFPFF_ flags.</text>
6023 </description>
6024 </leaf>
6025 <leaf name="cookie">
6026 <type name="uint64"/>
6027 <description>
6028 <text>Opaque controller-issued identifier.</text>
6029 </description>
6030 </leaf>
6031 <leaf name="packet_count">
6032 <type name="uint64"/>
6033 <description>
6034 <text>Number of packets in flow.</text>
6035 </description>
6036 </leaf>
6037 <leaf name="byte_count">
6038 <type name="uint64"/>
6039 <description>
6040 <text>Number of bytes in flow.</text>
6041 </description>
6042 </leaf>
6043 <container name="match">
6044 <uses name="ofp_match"/>
6045 <description>
6046 <text>Description of fields. Variable size.</text>
6047 </description>
6048 </container>
6049 <list name="instructions">
6050 <key value="type"/>
6051 <uses name="ofp_instruction"/>
6052 <description>
6053 <text>Instruction set
6054(0 or more)</text>
6055 </description>
6056 </list>
6057 </grouping>
6058 <container name="ofp_aggregate_stats_request">
6059 <description>
6060 <text>Body for ofp_multipart_request of type OFPMP_AGGREGATE.</text>
6061 </description>
6062 <leaf name="table_id">
6063 <type name="uint32"/>
6064 <description>
6065 <text>ID of table to read (from ofp_table_stats)
6066OFPTT_ALL for all tables.</text>
6067 </description>
6068 </leaf>
6069 <leaf name="out_port">
6070 <type name="uint32"/>
6071 <description>
6072 <text>Require matching entries to include this
6073as an output port. A value of OFPP_ANY
6074indicates no restriction.</text>
6075 </description>
6076 </leaf>
6077 <leaf name="out_group">
6078 <type name="uint32"/>
6079 <description>
6080 <text>Require matching entries to include this
6081as an output group. A value of OFPG_ANY
6082indicates no restriction.</text>
6083 </description>
6084 </leaf>
6085 <leaf name="cookie">
6086 <type name="uint64"/>
6087 <description>
6088 <text>Require matching entries to contain this
6089cookie value</text>
6090 </description>
6091 </leaf>
6092 <leaf name="cookie_mask">
6093 <type name="uint64"/>
6094 <description>
6095 <text>Mask used to restrict the cookie bits that
6096must match. A value of 0 indicates
6097no restriction.</text>
6098 </description>
6099 </leaf>
6100 <container name="match">
6101 <uses name="ofp_match"/>
6102 <description>
6103 <text>Fields to match. Variable size.</text>
6104 </description>
6105 </container>
6106 </container>
6107 <container name="ofp_aggregate_stats_reply">
6108 <description>
6109 <text>Body of reply to OFPMP_AGGREGATE request.</text>
6110 </description>
6111 <leaf name="packet_count">
6112 <type name="uint64"/>
6113 <description>
6114 <text>Number of packets in flows.</text>
6115 </description>
6116 </leaf>
6117 <leaf name="byte_count">
6118 <type name="uint64"/>
6119 <description>
6120 <text>Number of bytes in flows.</text>
6121 </description>
6122 </leaf>
6123 <leaf name="flow_count">
6124 <type name="uint32"/>
6125 <description>
6126 <text>Number of flows.</text>
6127 </description>
6128 </leaf>
6129 </container>
6130 <grouping name="ofp_table_feature_property">
6131 <description>
6132 <text>Common header for all Table Feature Properties</text>
6133 </description>
6134 <leaf name="type">
6135 <type name="ofp_table_feature_prop_type"/>
6136 <description>
6137 <text>One of OFPTFPT_ .</text>
6138 </description>
6139 </leaf>
6140 <choice name="choice_0">
6141 <case name="instructions">
6142 <container name="instructions">
6143 <uses name="ofp_table_feature_prop_instructions"/>
6144 <description>
6145 <text/>
6146 </description>
6147 </container>
6148 </case>
6149 <case name="next_tables">
6150 <container name="next_tables">
6151 <uses name="ofp_table_feature_prop_next_tables"/>
6152 <description>
6153 <text/>
6154 </description>
6155 </container>
6156 </case>
6157 <case name="actions">
6158 <container name="actions">
6159 <uses name="ofp_table_feature_prop_actions"/>
6160 <description>
6161 <text/>
6162 </description>
6163 </container>
6164 </case>
6165 <case name="oxm">
6166 <container name="oxm">
6167 <uses name="ofp_table_feature_prop_oxm"/>
6168 <description>
6169 <text/>
6170 </description>
6171 </container>
6172 </case>
6173 <case name="experimenter">
6174 <container name="experimenter">
6175 <uses name="ofp_table_feature_prop_experimenter"/>
6176 <description>
6177 <text/>
6178 </description>
6179 </container>
6180 </case>
6181 </choice>
6182 </grouping>
6183 <grouping name="ofp_table_feature_prop_instructions">
6184 <description>
6185 <text>Instructions property</text>
6186 </description>
6187 <list name="instructions">
6188 <key value="type"/>
6189 <uses name="ofp_instruction"/>
6190 <description>
6191 <text>One of OFPTFPT_INSTRUCTIONS,
6192OFPTFPT_INSTRUCTIONS_MISS.List of instructions</text>
6193 </description>
6194 </list>
6195 </grouping>
6196 <grouping name="ofp_table_feature_prop_next_tables">
6197 <description>
6198 <text>Next Tables property</text>
6199 </description>
6200 <list name="next_table_ids">
6201 <key value="next_table_ids"/>
6202 <leaf name="next_table_ids">
6203 <type name="uint32"/>
6204 <description>
6205 <text>One of OFPTFPT_NEXT_TABLES,
6206OFPTFPT_NEXT_TABLES_MISS.List of table ids.</text>
6207 </description>
6208 </leaf>
6209 <description>
6210 <text>One of OFPTFPT_NEXT_TABLES,
6211OFPTFPT_NEXT_TABLES_MISS.List of table ids.</text>
6212 </description>
6213 </list>
6214 </grouping>
6215 <grouping name="ofp_table_feature_prop_actions">
6216 <description>
6217 <text>Actions property</text>
6218 </description>
6219 <list name="actions">
6220 <key value="type"/>
6221 <uses name="ofp_action"/>
6222 <description>
6223 <text>One of OFPTFPT_WRITE_ACTIONS,
6224OFPTFPT_WRITE_ACTIONS_MISS,
6225OFPTFPT_APPLY_ACTIONS,
6226OFPTFPT_APPLY_ACTIONS_MISS.List of actions</text>
6227 </description>
6228 </list>
6229 </grouping>
6230 <grouping name="ofp_table_feature_prop_oxm">
6231 <description>
6232 <text>Match, Wildcard or Set-Field propertyOne of OFPTFPT_MATCH,
6233OFPTFPT_WILDCARDS,
6234OFPTFPT_WRITE_SETFIELD,
6235OFPTFPT_WRITE_SETFIELD_MISS,
6236OFPTFPT_APPLY_SETFIELD,
6237OFPTFPT_APPLY_SETFIELD_MISS.</text>
6238 </description>
6239 <list name="oxm_ids">
6240 <key value="oxm_ids"/>
6241 <leaf name="oxm_ids">
6242 <type name="uint32"/>
6243 <description>
6244 <text>TODO is this a uint32???Array of OXM headers</text>
6245 </description>
6246 </leaf>
6247 <description>
6248 <text>TODO is this a uint32???Array of OXM headers</text>
6249 </description>
6250 </list>
6251 </grouping>
6252 <grouping name="ofp_table_feature_prop_experimenter">
6253 <description>
6254 <text>Experimenter table feature property</text>
6255 </description>
6256 <leaf name="experimenter">
6257 <type name="uint32"/>
6258 <description>
6259 <text>One of OFPTFPT_EXPERIMENTER,
6260OFPTFPT_EXPERIMENTER_MISS.Experimenter ID which takes the same
6261form as in struct
6262ofp_experimenter_header.</text>
6263 </description>
6264 </leaf>
6265 <leaf name="exp_type">
6266 <type name="uint32"/>
6267 <description>
6268 <text>Experimenter defined.</text>
6269 </description>
6270 </leaf>
6271 <list name="experimenter_data">
6272 <key value="experimenter_data"/>
6273 <leaf name="experimenter_data">
6274 <type name="uint32"/>
6275 <description>
6276 <text/>
6277 </description>
6278 </leaf>
6279 <description>
6280 <text/>
6281 </description>
6282 </list>
6283 </grouping>
6284 <container name="ofp_table_features">
6285 <description>
6286 <text>Body for ofp_multipart_request of type OFPMP_TABLE_FEATURES.
6287Body of reply to OFPMP_TABLE_FEATURES request.</text>
6288 </description>
6289 <leaf name="table_id">
6290 <type name="uint32"/>
6291 <description>
6292 <text>Identifier of table. Lower numbered tables
6293are consulted first.</text>
6294 </description>
6295 </leaf>
6296 <leaf name="name">
6297 <type name="string"/>
6298 <description>
6299 <text/>
6300 </description>
6301 </leaf>
6302 <leaf name="metadata_match">
6303 <type name="uint64"/>
6304 <description>
6305 <text>Bits of metadata table can match.</text>
6306 </description>
6307 </leaf>
6308 <leaf name="metadata_write">
6309 <type name="uint64"/>
6310 <description>
6311 <text>Bits of metadata table can write.</text>
6312 </description>
6313 </leaf>
6314 <leaf name="config">
6315 <type name="uint32"/>
6316 <description>
6317 <text>Bitmap of OFPTC_ values</text>
6318 </description>
6319 </leaf>
6320 <leaf name="max_entries">
6321 <type name="uint32"/>
6322 <description>
6323 <text>Max number of entries supported.</text>
6324 </description>
6325 </leaf>
6326 <list name="properties">
6327 <key value="type"/>
6328 <uses name="ofp_table_feature_property"/>
6329 <description>
6330 <text>Table Feature Property list</text>
6331 </description>
6332 </list>
6333 </container>
6334 <container name="ofp_table_stats">
6335 <description>
6336 <text>Body of reply to OFPMP_TABLE request.</text>
6337 </description>
6338 <leaf name="table_id">
6339 <type name="uint32"/>
6340 <description>
6341 <text>Identifier of table. Lower numbered tables
6342are consulted first.</text>
6343 </description>
6344 </leaf>
6345 <leaf name="active_count">
6346 <type name="uint32"/>
6347 <description>
6348 <text>Number of active entries.</text>
6349 </description>
6350 </leaf>
6351 <leaf name="lookup_count">
6352 <type name="uint64"/>
6353 <description>
6354 <text>Number of packets looked up in table.</text>
6355 </description>
6356 </leaf>
6357 <leaf name="matched_count">
6358 <type name="uint64"/>
6359 <description>
6360 <text>Number of packets that hit table.</text>
6361 </description>
6362 </leaf>
6363 </container>
6364 <container name="ofp_port_stats_request">
6365 <description>
6366 <text>Body for ofp_multipart_request of type OFPMP_PORT.</text>
6367 </description>
6368 <leaf name="port_no">
6369 <type name="uint32"/>
6370 <description>
6371 <text>OFPMP_PORT message must request statistics
6372either for a single port (specified in
6373port_no) or for all ports (if port_no ==
6374OFPP_ANY).</text>
6375 </description>
6376 </leaf>
6377 </container>
6378 <container name="ofp_port_stats">
6379 <description>
6380 <text>Body of reply to OFPMP_PORT request. If a counter is unsupported, set
6381the field to all ones.</text>
6382 </description>
6383 <leaf name="port_no">
6384 <type name="uint32"/>
6385 <description>
6386 <text/>
6387 </description>
6388 </leaf>
6389 <leaf name="rx_packets">
6390 <type name="uint64"/>
6391 <description>
6392 <text>Number of received packets.</text>
6393 </description>
6394 </leaf>
6395 <leaf name="tx_packets">
6396 <type name="uint64"/>
6397 <description>
6398 <text>Number of transmitted packets.</text>
6399 </description>
6400 </leaf>
6401 <leaf name="rx_bytes">
6402 <type name="uint64"/>
6403 <description>
6404 <text>Number of received bytes.</text>
6405 </description>
6406 </leaf>
6407 <leaf name="tx_bytes">
6408 <type name="uint64"/>
6409 <description>
6410 <text>Number of transmitted bytes.</text>
6411 </description>
6412 </leaf>
6413 <leaf name="rx_dropped">
6414 <type name="uint64"/>
6415 <description>
6416 <text>Number of packets dropped by RX.</text>
6417 </description>
6418 </leaf>
6419 <leaf name="tx_dropped">
6420 <type name="uint64"/>
6421 <description>
6422 <text>Number of packets dropped by TX.</text>
6423 </description>
6424 </leaf>
6425 <leaf name="rx_errors">
6426 <type name="uint64"/>
6427 <description>
6428 <text>Number of receive errors. This is a super-set
6429of more specific receive errors and should be
6430greater than or equal to the sum of all
6431rx_ _err values.</text>
6432 </description>
6433 </leaf>
6434 <leaf name="tx_errors">
6435 <type name="uint64"/>
6436 <description>
6437 <text>Number of transmit errors. This is a super-set
6438of more specific transmit errors and should be
6439greater than or equal to the sum of all
6440tx_ _err values (none currently defined.)</text>
6441 </description>
6442 </leaf>
6443 <leaf name="rx_frame_err">
6444 <type name="uint64"/>
6445 <description>
6446 <text>Number of frame alignment errors.</text>
6447 </description>
6448 </leaf>
6449 <leaf name="rx_over_err">
6450 <type name="uint64"/>
6451 <description>
6452 <text>Number of packets with RX overrun.</text>
6453 </description>
6454 </leaf>
6455 <leaf name="rx_crc_err">
6456 <type name="uint64"/>
6457 <description>
6458 <text>Number of CRC errors.</text>
6459 </description>
6460 </leaf>
6461 <leaf name="collisions">
6462 <type name="uint64"/>
6463 <description>
6464 <text>Number of collisions.</text>
6465 </description>
6466 </leaf>
6467 <leaf name="duration_sec">
6468 <type name="uint32"/>
6469 <description>
6470 <text>Time port has been alive in seconds.</text>
6471 </description>
6472 </leaf>
6473 <leaf name="duration_nsec">
6474 <type name="uint32"/>
6475 <description>
6476 <text>Time port has been alive in nanoseconds
6477beyond duration_sec.</text>
6478 </description>
6479 </leaf>
6480 </container>
6481 <container name="ofp_group_stats_request">
6482 <description>
6483 <text>Body of OFPMP_GROUP request.</text>
6484 </description>
6485 <leaf name="group_id">
6486 <type name="uint32"/>
6487 <description>
6488 <text>All groups if OFPG_ALL.</text>
6489 </description>
6490 </leaf>
6491 </container>
6492 <grouping name="ofp_bucket_counter">
6493 <description>
6494 <text>Used in group stats replies.</text>
6495 </description>
6496 <leaf name="packet_count">
6497 <type name="uint64"/>
6498 <description>
6499 <text>Number of packets processed by bucket.</text>
6500 </description>
6501 </leaf>
6502 <leaf name="byte_count">
6503 <type name="uint64"/>
6504 <description>
6505 <text>Number of bytes processed by bucket.</text>
6506 </description>
6507 </leaf>
6508 </grouping>
6509 <grouping name="ofp_group_stats">
6510 <description>
6511 <text>Body of reply to OFPMP_GROUP request.</text>
6512 </description>
6513 <leaf name="group_id">
6514 <type name="uint32"/>
6515 <description>
6516 <text>Group identifier.</text>
6517 </description>
6518 </leaf>
6519 <leaf name="ref_count">
6520 <type name="uint32"/>
6521 <description>
6522 <text>Number of flows or groups that directly
6523forward to this group.</text>
6524 </description>
6525 </leaf>
6526 <leaf name="packet_count">
6527 <type name="uint64"/>
6528 <description>
6529 <text>Number of packets processed by group.</text>
6530 </description>
6531 </leaf>
6532 <leaf name="byte_count">
6533 <type name="uint64"/>
6534 <description>
6535 <text>Number of bytes processed by group.</text>
6536 </description>
6537 </leaf>
6538 <leaf name="duration_sec">
6539 <type name="uint32"/>
6540 <description>
6541 <text>Time group has been alive in seconds.</text>
6542 </description>
6543 </leaf>
6544 <leaf name="duration_nsec">
6545 <type name="uint32"/>
6546 <description>
6547 <text>Time group has been alive in nanoseconds
6548beyond duration_sec.</text>
6549 </description>
6550 </leaf>
6551 <list name="bucket_stats">
6552 <key value="packet_count"/>
6553 <uses name="ofp_bucket_counter"/>
6554 <description>
6555 <text>One counter set per
6556bucket.</text>
6557 </description>
6558 </list>
6559 </grouping>
6560 <grouping name="ofp_group_desc">
6561 <description>
6562 <text>Body of reply to OFPMP_GROUP_DESC request.</text>
6563 </description>
6564 <leaf name="type">
6565 <type name="ofp_group_type"/>
6566 <description>
6567 <text>One of OFPGT_ .</text>
6568 </description>
6569 </leaf>
6570 <leaf name="group_id">
6571 <type name="uint32"/>
6572 <description>
6573 <text>Group identifier.</text>
6574 </description>
6575 </leaf>
6576 <list name="buckets">
6577 <key value="weight"/>
6578 <uses name="ofp_bucket"/>
6579 <description>
6580 <text>List of buckets - 0 or more.</text>
6581 </description>
6582 </list>
6583 </grouping>
6584 <grouping name="ofp_group_entry">
6585 <description>
6586 <text/>
6587 </description>
6588 <leaf name="type">
6589 <type name="ofp_group_type"/>
6590 <description>
6591 <text>One of OFPGT_ .</text>
6592 </description>
6593 </leaf>
6594 <leaf name="group_id">
6595 <type name="uint32"/>
6596 <description>
6597 <text>Group identifier.</text>
6598 </description>
6599 </leaf>
6600 <list name="buckets">
6601 <key value="weight"/>
6602 <uses name="ofp_bucket"/>
6603 <description>
6604 <text>List of buckets - 0 or more.</text>
6605 </description>
6606 </list>
6607 <container name="stats">
6608 <uses name="ofp_group_stats"/>
6609 <description>
6610 <text/>
6611 </description>
6612 </container>
6613 </grouping>
6614 <container name="ofp_group_features">
6615 <description>
6616 <text>Body of reply to OFPMP_GROUP_FEATURES request. Group features.</text>
6617 </description>
6618 <leaf name="types">
6619 <type name="uint32"/>
6620 <description>
6621 <text>Bitmap of (1 OFPGT_ ) values supported.</text>
6622 </description>
6623 </leaf>
6624 <leaf name="capabilities">
6625 <type name="uint32"/>
6626 <description>
6627 <text>Bitmap of OFPGFC_ capability supported.</text>
6628 </description>
6629 </leaf>
6630 <list name="max_groups">
6631 <key value="max_groups"/>
6632 <leaf name="max_groups">
6633 <type name="uint32"/>
6634 <description>
6635 <text>Maximum number of groups for each type.</text>
6636 </description>
6637 </leaf>
6638 <description>
6639 <text>Maximum number of groups for each type.</text>
6640 </description>
6641 </list>
6642 <list name="actions">
6643 <key value="actions"/>
6644 <leaf name="actions">
6645 <type name="uint32"/>
6646 <description>
6647 <text>Bitmaps of (1 OFPAT_ ) values
6648supported.</text>
6649 </description>
6650 </leaf>
6651 <description>
6652 <text>Bitmaps of (1 OFPAT_ ) values
6653supported.</text>
6654 </description>
6655 </list>
6656 </container>
6657 <container name="ofp_meter_multipart_request">
6658 <description>
6659 <text>Body of OFPMP_METER and OFPMP_METER_CONFIG requests.</text>
6660 </description>
6661 <leaf name="meter_id">
6662 <type name="uint32"/>
6663 <description>
6664 <text>Meter instance, or OFPM_ALL.</text>
6665 </description>
6666 </leaf>
6667 </container>
6668 <grouping name="ofp_meter_band_stats">
6669 <description>
6670 <text>Statistics for each meter band</text>
6671 </description>
6672 <leaf name="packet_band_count">
6673 <type name="uint64"/>
6674 <description>
6675 <text>Number of packets in band.</text>
6676 </description>
6677 </leaf>
6678 <leaf name="byte_band_count">
6679 <type name="uint64"/>
6680 <description>
6681 <text>Number of bytes in band.</text>
6682 </description>
6683 </leaf>
6684 </grouping>
6685 <container name="ofp_meter_stats">
6686 <description>
6687 <text>Body of reply to OFPMP_METER request. Meter statistics.</text>
6688 </description>
6689 <leaf name="meter_id">
6690 <type name="uint32"/>
6691 <description>
6692 <text>Meter instance.</text>
6693 </description>
6694 </leaf>
6695 <leaf name="flow_count">
6696 <type name="uint32"/>
6697 <description>
6698 <text>Number of flows bound to meter.</text>
6699 </description>
6700 </leaf>
6701 <leaf name="packet_in_count">
6702 <type name="uint64"/>
6703 <description>
6704 <text>Number of packets in input.</text>
6705 </description>
6706 </leaf>
6707 <leaf name="byte_in_count">
6708 <type name="uint64"/>
6709 <description>
6710 <text>Number of bytes in input.</text>
6711 </description>
6712 </leaf>
6713 <leaf name="duration_sec">
6714 <type name="uint32"/>
6715 <description>
6716 <text>Time meter has been alive in seconds.</text>
6717 </description>
6718 </leaf>
6719 <leaf name="duration_nsec">
6720 <type name="uint32"/>
6721 <description>
6722 <text>Time meter has been alive in nanoseconds
6723beyond duration_sec.</text>
6724 </description>
6725 </leaf>
6726 <list name="band_stats">
6727 <key value="packet_band_count"/>
6728 <uses name="ofp_meter_band_stats"/>
6729 <description>
6730 <text>The band_stats length is
6731inferred from the length field.</text>
6732 </description>
6733 </list>
6734 </container>
6735 <container name="ofp_meter_config">
6736 <description>
6737 <text>Body of reply to OFPMP_METER_CONFIG request. Meter configuration.</text>
6738 </description>
6739 <leaf name="flags">
6740 <type name="uint32"/>
6741 <description>
6742 <text>All OFPMF_ that apply.</text>
6743 </description>
6744 </leaf>
6745 <leaf name="meter_id">
6746 <type name="uint32"/>
6747 <description>
6748 <text>Meter instance.</text>
6749 </description>
6750 </leaf>
6751 <list name="bands">
6752 <key value="type"/>
6753 <uses name="ofp_meter_band_header"/>
6754 <description>
6755 <text>The bands length is
6756inferred from the length field.</text>
6757 </description>
6758 </list>
6759 </container>
6760 <container name="ofp_meter_features">
6761 <description>
6762 <text>Body of reply to OFPMP_METER_FEATURES request. Meter features.</text>
6763 </description>
6764 <leaf name="max_meter">
6765 <type name="uint32"/>
6766 <description>
6767 <text>Maximum number of meters.</text>
6768 </description>
6769 </leaf>
6770 <leaf name="band_types">
6771 <type name="uint32"/>
6772 <description>
6773 <text>Bitmaps of (1 OFPMBT_ ) values supported.</text>
6774 </description>
6775 </leaf>
6776 <leaf name="capabilities">
6777 <type name="uint32"/>
6778 <description>
6779 <text>Bitmaps of ofp_meter_flags .</text>
6780 </description>
6781 </leaf>
6782 <leaf name="max_bands">
6783 <type name="uint32"/>
6784 <description>
6785 <text>Maximum bands per meters</text>
6786 </description>
6787 </leaf>
6788 <leaf name="max_color">
6789 <type name="uint32"/>
6790 <description>
6791 <text>Maximum color value</text>
6792 </description>
6793 </leaf>
6794 </container>
6795 <container name="ofp_experimenter_multipart_header">
6796 <description>
6797 <text>Body for ofp_multipart_request reply of type OFPMP_EXPERIMENTER.</text>
6798 </description>
6799 <leaf name="experimenter">
6800 <type name="uint32"/>
6801 <description>
6802 <text>Experimenter ID which takes the same form
6803as in struct ofp_experimenter_header.</text>
6804 </description>
6805 </leaf>
6806 <leaf name="exp_type">
6807 <type name="uint32"/>
6808 <description>
6809 <text>Experimenter defined.</text>
6810 </description>
6811 </leaf>
6812 <leaf name="data">
6813 <type name="binary"/>
6814 <description>
6815 <text>Experimenter-defined arbitrary additional data.</text>
6816 </description>
6817 </leaf>
6818 </container>
6819 <container name="ofp_experimenter_header">
6820 <description>
6821 <text>Experimenter extension.</text>
6822 </description>
6823 <leaf name="experimenter">
6824 <type name="uint32"/>
6825 <description>
6826 <text>ofp_header header; Type OFPT_EXPERIMENTER.
6827Experimenter ID:
6828- MSB 0: low-order bytes are IEEE OUI.
6829- MSB != 0: defined by ONF.</text>
6830 </description>
6831 </leaf>
6832 <leaf name="exp_type">
6833 <type name="uint32"/>
6834 <description>
6835 <text>Experimenter defined.</text>
6836 </description>
6837 </leaf>
6838 <leaf name="data">
6839 <type name="binary"/>
6840 <description>
6841 <text>Experimenter-defined arbitrary additional data.</text>
6842 </description>
6843 </leaf>
6844 </container>
6845 <grouping name="ofp_queue_prop_header">
6846 <description>
6847 <text>Common description for a queue.</text>
6848 </description>
6849 <leaf name="property">
6850 <type name="uint32"/>
6851 <description>
6852 <text>One of OFPQT_.</text>
6853 </description>
6854 </leaf>
6855 <leaf name="len">
6856 <type name="uint32"/>
6857 <description>
6858 <text>Length of property, including this header.</text>
6859 </description>
6860 </leaf>
6861 </grouping>
6862 <container name="ofp_queue_prop_min_rate">
6863 <description>
6864 <text>Min-Rate queue property description.</text>
6865 </description>
6866 <container name="prop_header">
6867 <uses name="ofp_queue_prop_header"/>
6868 <description>
6869 <text>prop: OFPQT_MIN, len: 16.</text>
6870 </description>
6871 </container>
6872 <leaf name="rate">
6873 <type name="uint32"/>
6874 <description>
6875 <text>In 1 10 of a percent = 0; 1000 - disabled.</text>
6876 </description>
6877 </leaf>
6878 </container>
6879 <container name="ofp_queue_prop_max_rate">
6880 <description>
6881 <text>Max-Rate queue property description.</text>
6882 </description>
6883 <container name="prop_header">
6884 <uses name="ofp_queue_prop_header"/>
6885 <description>
6886 <text>prop: OFPQT_MAX, len: 16.</text>
6887 </description>
6888 </container>
6889 <leaf name="rate">
6890 <type name="uint32"/>
6891 <description>
6892 <text>In 1 10 of a percent = 0; 1000 - disabled.</text>
6893 </description>
6894 </leaf>
6895 </container>
6896 <container name="ofp_queue_prop_experimenter">
6897 <description>
6898 <text>Experimenter queue property description.</text>
6899 </description>
6900 <container name="prop_header">
6901 <uses name="ofp_queue_prop_header"/>
6902 <description>
6903 <text>prop: OFPQT_EXPERIMENTER</text>
6904 </description>
6905 </container>
6906 <leaf name="experimenter">
6907 <type name="uint32"/>
6908 <description>
6909 <text>Experimenter ID which takes the same
6910form as in struct
6911ofp_experimenter_header.</text>
6912 </description>
6913 </leaf>
6914 <leaf name="data">
6915 <type name="binary"/>
6916 <description>
6917 <text>Experimenter defined data.</text>
6918 </description>
6919 </leaf>
6920 </container>
6921 <grouping name="ofp_packet_queue">
6922 <description>
6923 <text>Full description for a queue.</text>
6924 </description>
6925 <leaf name="queue_id">
6926 <type name="uint32"/>
6927 <description>
6928 <text>id for the specific queue.</text>
6929 </description>
6930 </leaf>
6931 <leaf name="port">
6932 <type name="uint32"/>
6933 <description>
6934 <text>Port this queue is attached to.</text>
6935 </description>
6936 </leaf>
6937 <list name="properties">
6938 <key value="property"/>
6939 <uses name="ofp_queue_prop_header"/>
6940 <description>
6941 <text>List of properties.</text>
6942 </description>
6943 </list>
6944 </grouping>
6945 <container name="ofp_queue_get_config_request">
6946 <description>
6947 <text>Query for port queue configuration.</text>
6948 </description>
6949 <leaf name="port">
6950 <type name="uint32"/>
6951 <description>
6952 <text>ofp_header header;
6953Port to be queried. Should refer
6954to a valid physical port (i.e. = OFPP_MAX),
6955or OFPP_ANY to request all configured
6956queues.</text>
6957 </description>
6958 </leaf>
6959 </container>
6960 <container name="ofp_queue_get_config_reply">
6961 <description>
6962 <text>Queue configuration for a given port.</text>
6963 </description>
6964 <leaf name="port">
6965 <type name="uint32"/>
6966 <description>
6967 <text>ofp_header header;</text>
6968 </description>
6969 </leaf>
6970 <list name="queues">
6971 <key value="queue_id"/>
6972 <uses name="ofp_packet_queue"/>
6973 <description>
6974 <text>List of configured queues.</text>
6975 </description>
6976 </list>
6977 </container>
6978 <container name="ofp_action_set_queue">
6979 <description>
6980 <text>OFPAT_SET_QUEUE action struct: send packets to given queue on port.</text>
6981 </description>
6982 <leaf name="type">
6983 <type name="uint32"/>
6984 <description>
6985 <text>OFPAT_SET_QUEUE.</text>
6986 </description>
6987 </leaf>
6988 <leaf name="queue_id">
6989 <type name="uint32"/>
6990 <description>
6991 <text>Queue id for the packets.</text>
6992 </description>
6993 </leaf>
6994 </container>
6995 <container name="ofp_queue_stats_request">
6996 <description>
6997 <text/>
6998 </description>
6999 <leaf name="port_no">
7000 <type name="uint32"/>
7001 <description>
7002 <text>All ports if OFPP_ANY.</text>
7003 </description>
7004 </leaf>
7005 <leaf name="queue_id">
7006 <type name="uint32"/>
7007 <description>
7008 <text>All queues if OFPQ_ALL.</text>
7009 </description>
7010 </leaf>
7011 </container>
7012 <container name="ofp_queue_stats">
7013 <description>
7014 <text/>
7015 </description>
7016 <leaf name="port_no">
7017 <type name="uint32"/>
7018 <description>
7019 <text/>
7020 </description>
7021 </leaf>
7022 <leaf name="queue_id">
7023 <type name="uint32"/>
7024 <description>
7025 <text>Queue i.d</text>
7026 </description>
7027 </leaf>
7028 <leaf name="tx_bytes">
7029 <type name="uint64"/>
7030 <description>
7031 <text>Number of transmitted bytes.</text>
7032 </description>
7033 </leaf>
7034 <leaf name="tx_packets">
7035 <type name="uint64"/>
7036 <description>
7037 <text>Number of transmitted packets.</text>
7038 </description>
7039 </leaf>
7040 <leaf name="tx_errors">
7041 <type name="uint64"/>
7042 <description>
7043 <text>Number of packets dropped due to overrun.</text>
7044 </description>
7045 </leaf>
7046 <leaf name="duration_sec">
7047 <type name="uint32"/>
7048 <description>
7049 <text>Time queue has been alive in seconds.</text>
7050 </description>
7051 </leaf>
7052 <leaf name="duration_nsec">
7053 <type name="uint32"/>
7054 <description>
7055 <text>Time queue has been alive in nanoseconds
7056beyond duration_sec.</text>
7057 </description>
7058 </leaf>
7059 </container>
7060 <container name="ofp_role_request">
7061 <description>
7062 <text>Role request and reply message.</text>
7063 </description>
7064 <leaf name="role">
7065 <type name="ofp_controller_role"/>
7066 <description>
7067 <text>ofp_header header; Type OFPT_ROLE_REQUEST OFPT_ROLE_REPLY.
7068One of OFPCR_ROLE_ .</text>
7069 </description>
7070 </leaf>
7071 <leaf name="generation_id">
7072 <type name="uint64"/>
7073 <description>
7074 <text>Master Election Generation Id</text>
7075 </description>
7076 </leaf>
7077 </container>
7078 <container name="ofp_async_config">
7079 <description>
7080 <text>Asynchronous message configuration.</text>
7081 </description>
7082 <list name="packet_in_mask">
7083 <key value="packet_in_mask"/>
7084 <leaf name="packet_in_mask">
7085 <type name="uint32"/>
7086 <description>
7087 <text>ofp_header header; OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC.
7088Bitmasks of OFPR_ values.</text>
7089 </description>
7090 </leaf>
7091 <description>
7092 <text>ofp_header header; OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC.
7093Bitmasks of OFPR_ values.</text>
7094 </description>
7095 </list>
7096 <list name="port_status_mask">
7097 <key value="port_status_mask"/>
7098 <leaf name="port_status_mask">
7099 <type name="uint32"/>
7100 <description>
7101 <text>Bitmasks of OFPPR_ values.</text>
7102 </description>
7103 </leaf>
7104 <description>
7105 <text>Bitmasks of OFPPR_ values.</text>
7106 </description>
7107 </list>
7108 <list name="flow_removed_mask">
7109 <key value="flow_removed_mask"/>
7110 <leaf name="flow_removed_mask">
7111 <type name="uint32"/>
7112 <description>
7113 <text>Bitmasks of OFPRR_ values.</text>
7114 </description>
7115 </leaf>
7116 <description>
7117 <text>Bitmasks of OFPRR_ values.</text>
7118 </description>
7119 </list>
7120 </container>
7121 <grouping name="FlowTableUpdate">
7122 <description>
7123 <text>ADDITIONAL VOLTHA SPECIFIC MESSAGE TYPES, AIDING RPC CALLS</text>
7124 </description>
7125 <leaf name="id">
7126 <type name="string"/>
7127 <description>
7128 <text>Device.id or LogicalDevice.id</text>
7129 </description>
7130 </leaf>
7131 <container name="flow_mod">
7132 <uses name="ofp_flow_mod"/>
7133 <description>
7134 <text/>
7135 </description>
7136 </container>
7137 </grouping>
7138 <grouping name="FlowGroupTableUpdate">
7139 <description>
7140 <text/>
7141 </description>
7142 <leaf name="id">
7143 <type name="string"/>
7144 <description>
7145 <text>Device.id or LogicalDevice.id</text>
7146 </description>
7147 </leaf>
7148 <container name="group_mod">
7149 <uses name="ofp_group_mod"/>
7150 <description>
7151 <text/>
7152 </description>
7153 </container>
7154 </grouping>
7155 <grouping name="Flows">
7156 <description>
7157 <text/>
7158 </description>
7159 <list name="items">
7160 <key value="id"/>
7161 <uses name="ofp_flow_stats"/>
7162 <description>
7163 <text/>
7164 </description>
7165 </list>
7166 </grouping>
7167 <grouping name="FlowGroups">
7168 <description>
7169 <text/>
7170 </description>
7171 <list name="items">
7172 <key value="type"/>
7173 <uses name="ofp_group_entry"/>
7174 <description>
7175 <text/>
7176 </description>
7177 </list>
7178 </grouping>
7179 <grouping name="PacketIn">
7180 <description>
7181 <text/>
7182 </description>
7183 <leaf name="id">
7184 <type name="string"/>
7185 <description>
7186 <text>LogicalDevice.id</text>
7187 </description>
7188 </leaf>
7189 <container name="packet_in">
7190 <uses name="ofp_packet_in"/>
7191 <description>
7192 <text/>
7193 </description>
7194 </container>
7195 </grouping>
7196 <grouping name="PacketOut">
7197 <description>
7198 <text/>
7199 </description>
7200 <leaf name="id">
7201 <type name="string"/>
7202 <description>
7203 <text>LogicalDevice.id</text>
7204 </description>
7205 </leaf>
7206 <container name="packet_out">
7207 <uses name="ofp_packet_out"/>
7208 <description>
7209 <text/>
7210 </description>
7211 </container>
7212 </grouping>
7213 <grouping name="ChangeEvent">
7214 <description>
7215 <text/>
7216 </description>
7217 <leaf name="id">
7218 <type name="string"/>
7219 <description>
7220 <text>LogicalDevice.id</text>
7221 </description>
7222 </leaf>
7223 <choice name="choice_0">
7224 <case name="port_status">
7225 <container name="port_status">
7226 <uses name="ofp_port_status"/>
7227 <description>
7228 <text/>
7229 </description>
7230 </container>
7231 </case>
7232 </choice>
7233 </grouping>
7234 <rpc name="HealthService-GetHealthStatus">
7235 <description>
7236 <text>Return current health status of a Voltha instance</text>
7237 </description>
7238 <input>
7239 <uses name="Empty"/>
7240 </input>
7241 <output>
7242 <uses name="HealthStatus"/>
7243 </output>
7244 </rpc>
7245 <rpc name="VolthaGlobalService-GetVoltha">
7246 <description>
7247 <text>Get high level information on the Voltha cluster</text>
7248 </description>
7249 <input>
7250 <uses name="Empty"/>
7251 </input>
7252 <output>
7253 <uses name="Voltha_grouping"/>
7254 </output>
7255 </rpc>
7256 <rpc name="VolthaGlobalService-ListVolthaInstances">
7257 <description>
7258 <text>List all Voltha cluster instances</text>
7259 </description>
7260 <input>
7261 <uses name="Empty"/>
7262 </input>
7263 <output>
7264 <uses name="VolthaInstances_grouping"/>
7265 </output>
7266 </rpc>
7267 <rpc name="VolthaGlobalService-GetVolthaInstance">
7268 <description>
7269 <text>Get details on a Voltha cluster instance</text>
7270 </description>
7271 <input>
7272 <uses name="ID"/>
7273 </input>
7274 <output>
7275 <uses name="VolthaInstance_grouping"/>
7276 </output>
7277 </rpc>
7278 <rpc name="VolthaGlobalService-ListLogicalDevices">
7279 <description>
7280 <text>List all logical devices managed by the Voltha cluster</text>
7281 </description>
7282 <input>
7283 <uses name="Empty"/>
7284 </input>
7285 <output>
7286 <uses name="LogicalDevices"/>
7287 </output>
7288 </rpc>
7289 <rpc name="VolthaGlobalService-GetLogicalDevice">
7290 <description>
7291 <text>Get additional information on a given logical device</text>
7292 </description>
7293 <input>
7294 <uses name="ID"/>
7295 </input>
7296 <output>
7297 <uses name="LogicalDevice"/>
7298 </output>
7299 </rpc>
7300 <rpc name="VolthaGlobalService-ListLogicalDevicePorts">
7301 <description>
7302 <text>List ports of a logical device</text>
7303 </description>
7304 <input>
7305 <uses name="ID"/>
7306 </input>
7307 <output>
7308 <uses name="LogicalPorts"/>
7309 </output>
7310 </rpc>
7311 <rpc name="VolthaGlobalService-ListLogicalDeviceFlows">
7312 <description>
7313 <text>List all flows of a logical device</text>
7314 </description>
7315 <input>
7316 <uses name="ID"/>
7317 </input>
7318 <output>
7319 <uses name="Flows"/>
7320 </output>
7321 </rpc>
7322 <rpc name="VolthaGlobalService-UpdateLogicalDeviceFlowTable">
7323 <description>
7324 <text>Update flow table for logical device</text>
7325 </description>
7326 <input>
7327 <uses name="FlowTableUpdate"/>
7328 </input>
7329 <output>
7330 <uses name="Empty"/>
7331 </output>
7332 </rpc>
7333 <rpc name="VolthaGlobalService-ListLogicalDeviceFlowGroups">
7334 <description>
7335 <text>List all flow groups of a logical device</text>
7336 </description>
7337 <input>
7338 <uses name="ID"/>
7339 </input>
7340 <output>
7341 <uses name="FlowGroups"/>
7342 </output>
7343 </rpc>
7344 <rpc name="VolthaGlobalService-UpdateLogicalDeviceFlowGroupTable">
7345 <description>
7346 <text>Update group table for device</text>
7347 </description>
7348 <input>
7349 <uses name="FlowGroupTableUpdate"/>
7350 </input>
7351 <output>
7352 <uses name="Empty"/>
7353 </output>
7354 </rpc>
7355 <rpc name="VolthaGlobalService-ListDevices">
7356 <description>
7357 <text>List all physical devices controlled by the Voltha cluster</text>
7358 </description>
7359 <input>
7360 <uses name="Empty"/>
7361 </input>
7362 <output>
7363 <uses name="Devices"/>
7364 </output>
7365 </rpc>
7366 <rpc name="VolthaGlobalService-GetDevice">
7367 <description>
7368 <text>Get more information on a given physical device</text>
7369 </description>
7370 <input>
7371 <uses name="ID"/>
7372 </input>
7373 <output>
7374 <uses name="Device"/>
7375 </output>
7376 </rpc>
7377 <rpc name="VolthaGlobalService-CreateDevice">
7378 <description>
7379 <text>Pre-provision a new physical device</text>
7380 </description>
7381 <input>
7382 <uses name="Device"/>
7383 </input>
7384 <output>
7385 <uses name="Device"/>
7386 </output>
7387 </rpc>
7388 <rpc name="VolthaGlobalService-EnableDevice">
7389 <description>
7390 <text>Enable a device. If the device was in pre-provisioned state then it
7391will tansition to ENABLED state. If it was is DISABLED state then it
7392will tansition to ENABLED state as well.</text>
7393 </description>
7394 <input>
7395 <uses name="ID"/>
7396 </input>
7397 <output>
7398 <uses name="Empty"/>
7399 </output>
7400 </rpc>
7401 <rpc name="VolthaGlobalService-DisableDevice">
7402 <description>
7403 <text>Disable a device</text>
7404 </description>
7405 <input>
7406 <uses name="ID"/>
7407 </input>
7408 <output>
7409 <uses name="Empty"/>
7410 </output>
7411 </rpc>
7412 <rpc name="VolthaGlobalService-RebootDevice">
7413 <description>
7414 <text>Reboot a device</text>
7415 </description>
7416 <input>
7417 <uses name="ID"/>
7418 </input>
7419 <output>
7420 <uses name="Empty"/>
7421 </output>
7422 </rpc>
7423 <rpc name="VolthaGlobalService-DeleteDevice">
7424 <description>
7425 <text>Delete a device</text>
7426 </description>
7427 <input>
7428 <uses name="ID"/>
7429 </input>
7430 <output>
7431 <uses name="Empty"/>
7432 </output>
7433 </rpc>
7434 <rpc name="VolthaGlobalService-ListDevicePorts">
7435 <description>
7436 <text>List ports of a device</text>
7437 </description>
7438 <input>
7439 <uses name="ID"/>
7440 </input>
7441 <output>
7442 <uses name="Ports"/>
7443 </output>
7444 </rpc>
7445 <rpc name="VolthaGlobalService-ListDevicePmConfigs">
7446 <description>
7447 <text>List pm config of a device</text>
7448 </description>
7449 <input>
7450 <uses name="ID"/>
7451 </input>
7452 <output>
7453 <uses name="PmConfigs"/>
7454 </output>
7455 </rpc>
7456 <rpc name="VolthaGlobalService-UpdateDevicePmConfigs">
7457 <description>
7458 <text>Update the pm config of a device</text>
7459 </description>
7460 <input>
7461 <uses name="PmConfigs"/>
7462 </input>
7463 <output>
7464 <uses name="Empty"/>
7465 </output>
7466 </rpc>
7467 <rpc name="VolthaGlobalService-ListDeviceFlows">
7468 <description>
7469 <text>List all flows of a device</text>
7470 </description>
7471 <input>
7472 <uses name="ID"/>
7473 </input>
7474 <output>
7475 <uses name="Flows"/>
7476 </output>
7477 </rpc>
7478 <rpc name="VolthaGlobalService-ListDeviceFlowGroups">
7479 <description>
7480 <text>List all flow groups of a device</text>
7481 </description>
7482 <input>
7483 <uses name="ID"/>
7484 </input>
7485 <output>
7486 <uses name="FlowGroups"/>
7487 </output>
7488 </rpc>
7489 <rpc name="VolthaGlobalService-ListDeviceTypes">
7490 <description>
7491 <text>List device types known to Voltha</text>
7492 </description>
7493 <input>
7494 <uses name="Empty"/>
7495 </input>
7496 <output>
7497 <uses name="DeviceTypes"/>
7498 </output>
7499 </rpc>
7500 <rpc name="VolthaGlobalService-GetDeviceType">
7501 <description>
7502 <text>Get additional information on a device type</text>
7503 </description>
7504 <input>
7505 <uses name="ID"/>
7506 </input>
7507 <output>
7508 <uses name="DeviceType"/>
7509 </output>
7510 </rpc>
7511 <rpc name="VolthaGlobalService-ListDeviceGroups">
7512 <description>
7513 <text>List all device sharding groups</text>
7514 </description>
7515 <input>
7516 <uses name="Empty"/>
7517 </input>
7518 <output>
7519 <uses name="DeviceGroups"/>
7520 </output>
7521 </rpc>
7522 <rpc name="VolthaGlobalService-GetDeviceGroup">
7523 <description>
7524 <text>Get additional information on a device group</text>
7525 </description>
7526 <input>
7527 <uses name="ID"/>
7528 </input>
7529 <output>
7530 <uses name="DeviceGroup"/>
7531 </output>
7532 </rpc>
7533 <rpc name="VolthaGlobalService-CreateAlarmFilter">
7534 <description>
7535 <text/>
7536 </description>
7537 <input>
7538 <uses name="AlarmFilter"/>
7539 </input>
7540 <output>
7541 <uses name="AlarmFilter"/>
7542 </output>
7543 </rpc>
7544 <rpc name="VolthaGlobalService-GetAlarmFilter">
7545 <description>
7546 <text/>
7547 </description>
7548 <input>
7549 <uses name="ID"/>
7550 </input>
7551 <output>
7552 <uses name="AlarmFilter"/>
7553 </output>
7554 </rpc>
7555 <rpc name="VolthaGlobalService-UpdateAlarmFilter">
7556 <description>
7557 <text/>
7558 </description>
7559 <input>
7560 <uses name="AlarmFilter"/>
7561 </input>
7562 <output>
7563 <uses name="AlarmFilter"/>
7564 </output>
7565 </rpc>
7566 <rpc name="VolthaGlobalService-DeleteAlarmFilter">
7567 <description>
7568 <text/>
7569 </description>
7570 <input>
7571 <uses name="ID"/>
7572 </input>
7573 <output>
7574 <uses name="Empty"/>
7575 </output>
7576 </rpc>
7577 <rpc name="VolthaGlobalService-ListAlarmFilters">
7578 <description>
7579 <text/>
7580 </description>
7581 <input>
7582 <uses name="Empty"/>
7583 </input>
7584 <output>
7585 <uses name="AlarmFilters"/>
7586 </output>
7587 </rpc>
7588 <rpc name="VolthaLocalService-GetVolthaInstance">
7589 <description>
7590 <text>Get information on this Voltha instance</text>
7591 </description>
7592 <input>
7593 <uses name="Empty"/>
7594 </input>
7595 <output>
7596 <uses name="VolthaInstance_grouping"/>
7597 </output>
7598 </rpc>
7599 <rpc name="VolthaLocalService-GetHealth">
7600 <description>
7601 <text>Get the health state of the Voltha instance</text>
7602 </description>
7603 <input>
7604 <uses name="Empty"/>
7605 </input>
7606 <output>
7607 <uses name="HealthStatus"/>
7608 </output>
7609 </rpc>
7610 <rpc name="VolthaLocalService-ListAdapters">
7611 <description>
7612 <text>List all active adapters (plugins) in this Voltha instance</text>
7613 </description>
7614 <input>
7615 <uses name="Empty"/>
7616 </input>
7617 <output>
7618 <uses name="Adapters"/>
7619 </output>
7620 </rpc>
7621 <rpc name="VolthaLocalService-ListLogicalDevices">
7622 <description>
7623 <text>List all logical devices managed by this Voltha instance</text>
7624 </description>
7625 <input>
7626 <uses name="Empty"/>
7627 </input>
7628 <output>
7629 <uses name="LogicalDevices"/>
7630 </output>
7631 </rpc>
7632 <rpc name="VolthaLocalService-GetLogicalDevice">
7633 <description>
7634 <text>Get additional information on given logical device</text>
7635 </description>
7636 <input>
7637 <uses name="ID"/>
7638 </input>
7639 <output>
7640 <uses name="LogicalDevice"/>
7641 </output>
7642 </rpc>
7643 <rpc name="VolthaLocalService-ListLogicalDevicePorts">
7644 <description>
7645 <text>List ports of a logical device</text>
7646 </description>
7647 <input>
7648 <uses name="ID"/>
7649 </input>
7650 <output>
7651 <uses name="LogicalPorts"/>
7652 </output>
7653 </rpc>
7654 <rpc name="VolthaLocalService-ListLogicalDeviceFlows">
7655 <description>
7656 <text>List all flows of a logical device</text>
7657 </description>
7658 <input>
7659 <uses name="ID"/>
7660 </input>
7661 <output>
7662 <uses name="Flows"/>
7663 </output>
7664 </rpc>
7665 <rpc name="VolthaLocalService-UpdateLogicalDeviceFlowTable">
7666 <description>
7667 <text>Update flow table for logical device</text>
7668 </description>
7669 <input>
7670 <uses name="FlowTableUpdate"/>
7671 </input>
7672 <output>
7673 <uses name="Empty"/>
7674 </output>
7675 </rpc>
7676 <rpc name="VolthaLocalService-ListLogicalDeviceFlowGroups">
7677 <description>
7678 <text>List all flow groups of a logical device</text>
7679 </description>
7680 <input>
7681 <uses name="ID"/>
7682 </input>
7683 <output>
7684 <uses name="FlowGroups"/>
7685 </output>
7686 </rpc>
7687 <rpc name="VolthaLocalService-UpdateLogicalDeviceFlowGroupTable">
7688 <description>
7689 <text>Update group table for logical device</text>
7690 </description>
7691 <input>
7692 <uses name="FlowGroupTableUpdate"/>
7693 </input>
7694 <output>
7695 <uses name="Empty"/>
7696 </output>
7697 </rpc>
7698 <rpc name="VolthaLocalService-ListDevices">
7699 <description>
7700 <text>List all physical devices managed by this Voltha instance</text>
7701 </description>
7702 <input>
7703 <uses name="Empty"/>
7704 </input>
7705 <output>
7706 <uses name="Devices"/>
7707 </output>
7708 </rpc>
7709 <rpc name="VolthaLocalService-GetDevice">
7710 <description>
7711 <text>Get additional information on this device</text>
7712 </description>
7713 <input>
7714 <uses name="ID"/>
7715 </input>
7716 <output>
7717 <uses name="Device"/>
7718 </output>
7719 </rpc>
7720 <rpc name="VolthaLocalService-CreateDevice">
7721 <description>
7722 <text>Pre-provision a new physical device</text>
7723 </description>
7724 <input>
7725 <uses name="Device"/>
7726 </input>
7727 <output>
7728 <uses name="Device"/>
7729 </output>
7730 </rpc>
7731 <rpc name="VolthaLocalService-EnableDevice">
7732 <description>
7733 <text>Enable a device. If the device was in pre-provisioned state then it
7734will tansition to ENABLED state. If it was is DISABLED state then it
7735will tansition to ENABLED state as well.</text>
7736 </description>
7737 <input>
7738 <uses name="ID"/>
7739 </input>
7740 <output>
7741 <uses name="Empty"/>
7742 </output>
7743 </rpc>
7744 <rpc name="VolthaLocalService-DisableDevice">
7745 <description>
7746 <text>Disable a device</text>
7747 </description>
7748 <input>
7749 <uses name="ID"/>
7750 </input>
7751 <output>
7752 <uses name="Empty"/>
7753 </output>
7754 </rpc>
7755 <rpc name="VolthaLocalService-RebootDevice">
7756 <description>
7757 <text>Reboot a device</text>
7758 </description>
7759 <input>
7760 <uses name="ID"/>
7761 </input>
7762 <output>
7763 <uses name="Empty"/>
7764 </output>
7765 </rpc>
7766 <rpc name="VolthaLocalService-DeleteDevice">
7767 <description>
7768 <text>Delete a device</text>
7769 </description>
7770 <input>
7771 <uses name="ID"/>
7772 </input>
7773 <output>
7774 <uses name="Empty"/>
7775 </output>
7776 </rpc>
7777 <rpc name="VolthaLocalService-ListDevicePorts">
7778 <description>
7779 <text>List ports of a device</text>
7780 </description>
7781 <input>
7782 <uses name="ID"/>
7783 </input>
7784 <output>
7785 <uses name="Ports"/>
7786 </output>
7787 </rpc>
7788 <rpc name="VolthaLocalService-ListDevicePmConfigs">
7789 <description>
7790 <text>List pm config of a device</text>
7791 </description>
7792 <input>
7793 <uses name="ID"/>
7794 </input>
7795 <output>
7796 <uses name="PmConfigs"/>
7797 </output>
7798 </rpc>
7799 <rpc name="VolthaLocalService-UpdateDevicePmConfigs">
7800 <description>
7801 <text>Update the pm config of a device</text>
7802 </description>
7803 <input>
7804 <uses name="PmConfigs"/>
7805 </input>
7806 <output>
7807 <uses name="Empty"/>
7808 </output>
7809 </rpc>
7810 <rpc name="VolthaLocalService-ListDeviceFlows">
7811 <description>
7812 <text>List all flows of a device</text>
7813 </description>
7814 <input>
7815 <uses name="ID"/>
7816 </input>
7817 <output>
7818 <uses name="Flows"/>
7819 </output>
7820 </rpc>
7821 <rpc name="VolthaLocalService-ListDeviceFlowGroups">
7822 <description>
7823 <text>List all flow groups of a device</text>
7824 </description>
7825 <input>
7826 <uses name="ID"/>
7827 </input>
7828 <output>
7829 <uses name="FlowGroups"/>
7830 </output>
7831 </rpc>
7832 <rpc name="VolthaLocalService-ListDeviceTypes">
7833 <description>
7834 <text>List device types know to Voltha instance</text>
7835 </description>
7836 <input>
7837 <uses name="Empty"/>
7838 </input>
7839 <output>
7840 <uses name="DeviceTypes"/>
7841 </output>
7842 </rpc>
7843 <rpc name="VolthaLocalService-GetDeviceType">
7844 <description>
7845 <text>Get additional information on given device type</text>
7846 </description>
7847 <input>
7848 <uses name="ID"/>
7849 </input>
7850 <output>
7851 <uses name="DeviceType"/>
7852 </output>
7853 </rpc>
7854 <rpc name="VolthaLocalService-ListDeviceGroups">
7855 <description>
7856 <text>List device sharding groups managed by this Voltha instance</text>
7857 </description>
7858 <input>
7859 <uses name="Empty"/>
7860 </input>
7861 <output>
7862 <uses name="DeviceGroups"/>
7863 </output>
7864 </rpc>
7865 <rpc name="VolthaLocalService-GetDeviceGroup">
7866 <description>
7867 <text>Get more information on given device shard</text>
7868 </description>
7869 <input>
7870 <uses name="ID"/>
7871 </input>
7872 <output>
7873 <uses name="DeviceGroup"/>
7874 </output>
7875 </rpc>
7876 <rpc name="VolthaLocalService-StreamPacketsOut">
7877 <description>
7878 <text>Stream control packets to the dataplane
7879This does not have an HTTP representation</text>
7880 </description>
7881 <input>
7882 <uses name="PacketOut"/>
7883 </input>
7884 <output>
7885 <uses name="Empty"/>
7886 </output>
7887 </rpc>
7888 <rpc name="VolthaLocalService-ReceivePacketsIn">
7889 <description>
7890 <text>Receive control packet stream
7891This does not have an HTTP representation</text>
7892 </description>
7893 <input>
7894 <uses name="Empty"/>
7895 </input>
7896 <output>
7897 <uses name="PacketIn"/>
7898 </output>
7899 </rpc>
7900 <rpc name="VolthaLocalService-ReceiveChangeEvents">
7901 <description>
7902 <text>This does not have an HTTP representation</text>
7903 </description>
7904 <input>
7905 <uses name="Empty"/>
7906 </input>
7907 <output>
7908 <uses name="ChangeEvent"/>
7909 </output>
7910 </rpc>
7911 <rpc name="VolthaLocalService-CreateAlarmFilter">
7912 <description>
7913 <text/>
7914 </description>
7915 <input>
7916 <uses name="AlarmFilter"/>
7917 </input>
7918 <output>
7919 <uses name="AlarmFilter"/>
7920 </output>
7921 </rpc>
7922 <rpc name="VolthaLocalService-GetAlarmFilter">
7923 <description>
7924 <text/>
7925 </description>
7926 <input>
7927 <uses name="ID"/>
7928 </input>
7929 <output>
7930 <uses name="AlarmFilter"/>
7931 </output>
7932 </rpc>
7933 <rpc name="VolthaLocalService-UpdateAlarmFilter">
7934 <description>
7935 <text/>
7936 </description>
7937 <input>
7938 <uses name="AlarmFilter"/>
7939 </input>
7940 <output>
7941 <uses name="AlarmFilter"/>
7942 </output>
7943 </rpc>
7944 <rpc name="VolthaLocalService-DeleteAlarmFilter">
7945 <description>
7946 <text/>
7947 </description>
7948 <input>
7949 <uses name="ID"/>
7950 </input>
7951 <output>
7952 <uses name="Empty"/>
7953 </output>
7954 </rpc>
7955 <rpc name="VolthaLocalService-ListAlarmFilters">
7956 <description>
7957 <text/>
7958 </description>
7959 <input>
7960 <uses name="Empty"/>
7961 </input>
7962 <output>
7963 <uses name="AlarmFilters"/>
7964 </output>
7965 </rpc>
7966</module>