1 module onf-extensions {
2 namespace "urn:opendaylight:openflowplugin:extension:onf";
5 import openflow-types {prefix oft; revision-date "2013-07-31";}
6 import openflow-protocol {prefix ofproto; revision-date "2013-07-31";}
8 revision "2017-01-24" {
9 description "Open networking foundation approved extensions definition.";
12 // ONF experimenter error codes
13 typedef onf-experimenter-error-code {
14 description "Error codes for experimenter error type.";
16 enum ONFERR_ET_UNKNOWN {
17 description "Unspecified error.";
20 enum ONFERR_ET_EPERM {
21 description "Permissions error.";
24 enum ONFERR_ET_BAD_ID {
25 description "Bundle ID doesn’t exist.";
28 enum ONFERR_ET_BUNDLE_EXIST {
29 description "Bundle ID already exist.";
32 enum ONFERR_ET_BUNDLE_CLOSED {
33 description "Bundle ID is closed.";
36 enum ONFERR_ET_OUT_OF_BUNDLES {
37 description "Too many bundles IDs.";
40 enum ONFERR_ET_BAD_TYPE {
41 description "Unsupported or unknown message control type.";
44 enum ONFERR_ET_BAD_FLAGS {
45 description "Unsupported, unknown, or inconsistent flags.";
48 enum ONFERR_ET_MSG_BAD_LEN {
49 description "Length problem in included message.";
52 enum ONFERR_ET_MSG_BAD_XID {
53 description "Inconsistent or duplicate XID.";
56 enum ONFERR_ET_MSG_UNSUP {
57 description "Unsupported message in this bundle.";
60 enum ONFERR_ET_MSG_CONFLICT {
61 description "Unsupported message combination in this bundle.";
64 enum ONFERR_ET_MSG_TOO_MANY {
65 description "Can not handle this many messages in bundle.";
68 enum ONFERR_ET_MSG_FAILED {
69 description "One message in bundle failed.";
72 enum ONFERR_ET_TIMEOUT {
73 description "Bundle is taking too long.";
76 enum ONFERR_ET_BUNDLE_IN_PROGRESS {
77 description "Bundle is locking the resource.";
83 // Extension 230 - Bundle Extension
85 description "Identify the bundle.";
89 typedef bundle-control-type {
90 description "Bundle control message type.";
92 enum ONF_BCT_OPEN_REQUEST {
95 enum ONF_BCT_OPEN_REPLY {
98 enum ONF_BCT_CLOSE_REQUEST {
101 enum ONF_BCT_CLOSE_REPLY {
104 enum ONF_BCT_COMMIT_REQUEST {
107 enum ONF_BCT_COMMIT_REPLY {
110 enum ONF_BCT_DISCARD_REQUEST {
113 enum ONF_BCT_DISCARD_REPLY {
119 typedef bundle-flags {
120 description "Bundle configuration flags.";
123 description "Execute atomically.";
127 description "Execute in specified order.";
133 typedef bundle-property-type {
134 description "Bundle property types.";
136 enum ONF_ET_BPT_EXPERIMENTER {
137 description "Experimenter property.";
138 value 65535; //0xFFFF
143 grouping bundle-property-grouping {
144 description "Container for bundle property.";
146 type bundle-property-type;
148 choice bundle-property-entry {
149 case bundle-property-experimenter {
151 type oft:experimenter-id;
156 choice bundle-property-experimenter-data {
157 // to be augmented by vendors
163 grouping bundle-common-grouping {
164 description "Common fields of bundle messages.";
171 list bundle-property {
172 uses bundle-property-grouping;
176 grouping bundle-control-grouping {
177 description "ONF_ET_BUNDLE_CONTROL message in OpenFlow Switch Extension 230.";
178 uses bundle-common-grouping;
180 type bundle-control-type;
184 grouping bundle-add-message-grouping {
185 description "ONF_ET_BUNDLE_ADD_MESSAGE in OpenFlow Switch Extension 230.";
186 uses bundle-common-grouping;
187 choice bundle-inner-message {
188 description "Message added to the bundle.";
189 case bundle-flow-mod-case {
190 container flow-mod-case-data {
191 uses ofproto:flow-mod;
194 case bundle-group-mod-case {
195 container group-mod-case-data {
196 uses ofproto:group-mod;
199 case bundle-port-mod-case {
200 container port-mod-case-data {
201 uses ofproto:port-mod;
207 augment "/ofproto:experimenter/ofproto:input/ofproto:experimenter-data-of-choice" {
208 case bundle-control-onf {
209 container onf-control-grouping-data {
210 uses bundle-control-grouping;
213 case bundle-add-message-onf {
214 container onf-add-message-grouping-data {
215 uses bundle-add-message-grouping;