- // Extension 230 - Bundle Extension (experimenterID 0x4F4E4600)
- typedef bundle-id {
- description "Identify the bundle.";
- type uint32;
- }
-
- typedef bundle-control-type {
- description "Bundle control message type.";
- type enumeration {
- enum ONF_BCT_OPEN_REQUEST {
- value 0;
- }
- enum ONF_BCT_OPEN_REPLY {
- value 1;
- }
- enum ONF_BCT_CLOSE_REQUEST {
- value 2;
- }
- enum ONF_BCT_CLOSE_REPLY {
- value 3;
- }
- enum ONF_BCT_COMMIT_REQUEST {
- value 4;
- }
- enum ONF_BCT_COMMIT_REPLY {
- value 5;
- }
- enum ONF_BCT_DISCARD_REQUEST {
- value 6;
- }
- enum ONF_BCT_DISCARD_REPLY {
- value 7;
- }
- }
- }
-
- typedef bundle-flags {
- description "Bundle configuration flags.";
- type bits {
- bit atomic {
- description "Execute atomically.";
- position 0;
- }
- bit ordered {
- description "Execute in specified order.";
- position 1;
- }
- }
- }
-
- typedef bundle-property-type {
- description "Bundle property types.";
- type enumeration {
- enum ONF_ET_BPT_EXPERIMENTER {
- description "Experimenter property.";
- value 65535; //0xFFFF
- }
- }
- }
-
- grouping bundle-properties {
- list bundle-property {
- description "Bundle properties list.";
- leaf type {
- type bundle-property-type;
- }
- choice bundle-property-entry {
- case bundle-experimenter-property {
- leaf experimenter {
- type oft:experimenter-id;
- }
- leaf exp-type {
- type uint32;
- }
- choice bundle-experimenter-property-data {
- // to be augmented by vendors
- }
- }
- }
- }
- }
-
- augment "/ofproto:experimenter/ofproto:input/ofproto:experimenter-data-of-choice" {
- case bundle-control {
- description "ONF_ET_BUNDLE_CONTROL message in OpenFlow Switch Extension 230.";
- leaf bundle-id {
- type bundle-id;
- }
- leaf type {
- type bundle-control-type;
- }
- leaf flags {
- type bundle-flags;
- }
- uses bundle-properties;
- }
- case bundle-add-message {
- description "ONF_ET_BUNDLE_ADD_MESSAGE in OpenFlow Switch Extension 230.";
- leaf bundle-id {
- type bundle-id;
- }
- leaf flags {
- type bundle-flags;
- }
- // Inner message
- choice message {
- description "Message added to the bundle.";
- case flow-mod-case {
- uses ofproto:flow-mod;
- }
- case group-mod-case {
- uses ofproto:group-mod;
- }
- case port-mod-case {
- uses ofproto:port-mod;
- }
- }
- uses bundle-properties;
- }
- }