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