1 module openflow-approved-extensions {
2 namespace "urn:opendaylight:openflow:approved:extensions";
5 import yang-ext {prefix ext;}
6 import ietf-inet-types {prefix inet;}
7 import ietf-yang-types {prefix yang;}
9 import openflow-types {prefix oft;}
10 import openflow-protocol {prefix ofproto;}
11 import openflow-action {prefix ofaction;}
12 import openflow-instruction {prefix ofinstruction;}
13 import openflow-extensible-match {prefix oxm;}
14 import openflow-augments {prefix aug;}
16 revision "2016-08-02" {
17 description "Openflow approved extensions definition";
20 //ONF Approved OpenFlow Extensions
22 // ONF experimenter error codes
23 typedef onf-experimenter-error-code {
24 description "Error codes for experimenter error type.";
26 enum ONFERR_ET_UNKNOWN {
27 description "Unspecified error.";
30 enum ONFERR_ET_EPERM {
31 description "Permissions error.";
34 enum ONFERR_ET_BAD_ID {
35 description "Bundle ID doesn’t exist.";
38 enum ONFERR_ET_BUNDLE_EXIST {
39 description "Bundle ID already exist.";
42 enum ONFERR_ET_BUNDLE_CLOSED {
43 description "Bundle ID is closed.";
46 enum ONFERR_ET_OUT_OF_BUNDLES {
47 description "Too many bundles IDs.";
50 enum ONFERR_ET_BAD_TYPE {
51 description "Unsupported or unknown message control type.";
54 enum ONFERR_ET_BAD_FLAGS {
55 description "Unsupported, unknown, or inconsistent flags.";
58 enum ONFERR_ET_MSG_BAD_LEN {
59 description "Length problem in included message.";
62 enum ONFERR_ET_MSG_BAD_XID {
63 description "Inconsistent or duplicate XID.";
66 enum ONFERR_ET_MSG_UNSUP {
67 description "Unsupported message in this bundle.";
70 enum ONFERR_ET_MSG_CONFLICT {
71 description "Unsupported message combination in this bundle.";
74 enum ONFERR_ET_MSG_TOO_MANY {
75 description "Can not handle this many messages in bundle.";
78 enum ONFERR_ET_MSG_FAILED {
79 description "One message in bundle failed.";
82 enum ONFERR_ET_TIMEOUT {
83 description "Bundle is taking too long.";
86 enum ONFERR_ET_BUNDLE_IN_PROGRESS {
87 description "Bundle is locking the resource.";
93 // Extension 109 - TCP FLAGS
96 description "TCP flags from the TCP header";
99 augment "/oxm:oxm-container/oxm:match-entry-value/aug:experimenter-id-case" {
100 ext:augment-identifier "tcp-flags-container";
101 container tcp-flags {
111 // Extension 230 - Bundle Extension (experimenterID 0x4F4E4600)
113 description "Identify the bundle.";
117 typedef bundle-control-type {
118 description "Bundle control message type.";
120 enum ONF_BCT_OPEN_REQUEST {
123 enum ONF_BCT_OPEN_REPLY {
126 enum ONF_BCT_CLOSE_REQUEST {
129 enum ONF_BCT_CLOSE_REPLY {
132 enum ONF_BCT_COMMIT_REQUEST {
135 enum ONF_BCT_COMMIT_REPLY {
138 enum ONF_BCT_DISCARD_REQUEST {
141 enum ONF_BCT_DISCARD_REPLY {
147 typedef bundle-flags {
148 description "Bundle configuration flags.";
151 description "Execute atomically.";
155 description "Execute in specified order.";
161 typedef bundle-property-type {
162 description "Bundle property types.";
164 enum ONF_ET_BPT_EXPERIMENTER {
165 description "Experimenter property.";
166 value 65535; //0xFFFF
171 grouping bundle-properties {
172 list bundle-property {
173 description "Bundle properties list.";
175 type bundle-property-type;
177 choice bundle-property-entry {
178 case bundle-experimenter-property {
180 type oft:experimenter-id;
185 choice bundle-experimenter-property-data {
186 // to be augmented by vendors
193 augment "/ofproto:experimenter/ofproto:input/ofproto:experimenter-data-of-choice" {
194 case bundle-control {
195 description "ONF_ET_BUNDLE_CONTROL message in OpenFlow Switch Extension 230.";
200 type bundle-control-type;
205 uses bundle-properties;
207 case bundle-add-message {
208 description "ONF_ET_BUNDLE_ADD_MESSAGE in OpenFlow Switch Extension 230.";
217 description "Message added to the bundle.";
219 uses ofproto:flow-mod;
221 case group-mod-case {
222 uses ofproto:group-mod;
225 uses ofproto:port-mod;
228 uses bundle-properties;