Match and actions (de)serialization + fix
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-augments.yang
index 17de70ccc48654f908fc6a45a46e6b2f01ca3392..a62f91ac0ffc026a39ba5cbe02358c268055e6ea 100644 (file)
 module openflow-augments {\r
     namespace "urn:opendaylight:openflow:augments";\r
     prefix "aug";\r
-\r
+    \r
+    import yang-ext {prefix ext;}\r
     import ietf-inet-types {prefix inet;}\r
     import ietf-yang-types {prefix yang;}\r
-    \r
+\r
     import openflow-types {prefix oft;}\r
     import openflow-protocol {prefix ofproto;}\r
     import openflow-action {prefix ofaction;}\r
     import openflow-instruction {prefix ofinstruction;}\r
     import openflow-extensible-match {prefix oxm;}\r
 \r
-\r
     revision "2013-10-02" {\r
-        description "Initial model";\r
+        description "OpenFlow 1.3 - augments model";\r
     }\r
+\r
 // OFP_MATCH AUGMENTS\r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "port-number-match-entry";\r
          leaf port-number {\r
-             type uint32;\r
+             type oft:port-number;\r
          }\r
      }\r
-\r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "metadata-match-entry";\r
          leaf metadata {\r
              type binary;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "mask-match-entry";\r
          leaf mask {\r
              type binary;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "mac-address-match-entry";\r
          leaf mac-address {\r
              type yang:mac-address;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "eth-type-match-entry";\r
          leaf eth-type {\r
              type oft:ether-type;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "vlan-vid-match-entry";\r
          leaf vlan-vid {\r
              type uint16;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "vlan-pcp-match-entry";\r
          leaf vlan-pcp {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "dscp-match-entry";\r
          leaf dscp {\r
              type inet:dscp;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "ecn-match-entry";\r
          leaf ecn {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "protocol-number-match-entry";\r
          leaf protocol-number {\r
              type uint8;\r
          }\r
      }\r
-     \r
-     augment "/oxm:oxm-container/oxm:match-entries" {\r
-         leaf ipv4-prefix {\r
-             type inet:ipv4-prefix;\r
-         }\r
-     }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "port-match-entry";\r
          leaf port {\r
              type inet:port-number;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "icmpv4-type-match-entry";\r
          leaf icmpv4-type {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "icmpv4-code-match-entry";\r
          leaf icmpv4-code {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "op-code-match-entry";\r
          leaf op-code {\r
              type uint16;\r
          }\r
      }\r
-     \r
-     augment "/oxm:oxm-container/oxm:match-entries" {\r
-         leaf ipv6-prefix {\r
-             type inet:ipv6-prefix;\r
-         }\r
-     }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "ipv6-flabel-match-entry";\r
          leaf ipv6-flabel {\r
              type inet:ipv6-flow-label;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "icmpv6-type-match-entry";\r
          leaf icmpv6-type {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "icmpv6-code-match-entry";\r
          leaf icmpv6-code {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "ipv6-address-match-entry";\r
          leaf ipv6-address {\r
              type inet:ipv6-address;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "ipv4-address-match-entry";\r
+         leaf ipv4-address {\r
+             type inet:ipv4-address;\r
+         }\r
+     }\r
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "mpls-label-match-entry";\r
          leaf mpls-label {\r
              type uint32;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "tc-match-entry";\r
          leaf tc {\r
              type uint8;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "bos-match-entry";\r
          leaf bos {\r
              type boolean;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "isid-match-entry";\r
          leaf isid {\r
              type uint32;\r
          }\r
      }\r
-     \r
      augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "pseudo-field-match-entry";\r
          leaf pseudo-field {\r
              type bits {\r
                  bit nonext {\r
@@ -198,79 +194,60 @@ module openflow-augments {
                  bit unseq {\r
                      description "Unexpected sequencing encountered.";\r
                      position 8;\r
-                     }                    \r
+                 }\r
              }\r
          }\r
      }\r
 \r
 // OFP_ACTION AUGMENTS\r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "port-action";\r
          leaf port {\r
-             type oft:any-port-number;\r
+             type oft:port-number;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "max-length-action";\r
          leaf max-length {\r
-             description "Maximum packet length to be send to controller.";\r
-             type union {\r
-                 type uint16 {\r
-                     range "0..65294"; // 0..0xff0e\r
-                 }\r
-                 type enumeration {\r
-                     enum max {\r
-                         desription\r
-                             "maximum max_len value which can be used\r
-                             to request a specific byte length";\r
-                         value 65509; //0xffe5\r
-                     }\r
-                     enum no-buffer {\r
-                         description \r
-                             "indicates that no buffering should be\r
-                              applied and the whole packet is to be\r
-                              sent to the controller";\r
-                         value 65535; //0xffff\r
-                     }\r
-                 }\r
-             }\r
+             type uint16;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "mpls-ttl-action";\r
          leaf mpls-ttl {\r
              type uint8;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "ethertype-action";\r
          leaf ethertype {\r
              type oft:ether-type;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "queue-id-action";\r
          leaf queue-id {\r
              type uint32;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "group-id-action";\r
          leaf group-id {\r
              type uint32;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "nw-ttl-action";\r
          leaf nw-ttl {\r
              type uint8;\r
          }\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "oxm-fields-action";\r
          uses oxm:oxm-fields;\r
      }\r
-     \r
-     augment "/ofaction:actions" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
+         ext:augment-identifier "experimenter-action";\r
          leaf experimenter {\r
              type uint32;\r
          }\r
@@ -278,32 +255,33 @@ module openflow-augments {
 \r
 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "instruction-ids-table-feature-properties";\r
          list instruction-ids {\r
              uses ofinstruction:instructions;\r
          }\r
      }\r
-\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "next-table-ids-table-feature-properties";\r
          list next-table-ids {\r
              leaf table-id {\r
                  type uint8;\r
              }\r
          }\r
      }\r
-\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "action-ids-table-feature-properties";\r
          list action-ids {\r
              uses ofaction:action-header;\r
          }\r
      }\r
-\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "oxm-ids-table-feature-properties";\r
          list oxm-ids {\r
              uses oxm:oxm-fields;\r
          }\r
      }\r
-\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "experimenter-table-feature-properties";\r
          leaf experimenter {\r
              type uint32;\r
          }\r
@@ -314,15 +292,16 @@ module openflow-augments {
              type binary;\r
          }\r
      }\r
-     \r
+\r
 // OFP_INSTRUCTION AUGMENTS\r
-     augment "/ofinstruction:instruction" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
+         ext:augment-identifier "table-id-instruction";\r
          leaf table-id {\r
              type uint8;\r
          }\r
      }\r
-     \r
-     augment "/ofinstruction:instruction" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
+         ext:augment-identifier "metadata-instruction";\r
          leaf metadata {\r
              type binary;\r
          }\r
@@ -330,20 +309,20 @@ module openflow-augments {
              type binary;\r
          }\r
      }\r
-     \r
-     augment "/ofinstruction:instruction" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
+         ext:augment-identifier "action-header-instruction";\r
          list actions {\r
              uses ofaction:action-header;\r
          }\r
      }\r
-     \r
-     augment "/ofinstruction:instruction" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
+         ext:augment-identifier "meter-id-instruction";\r
          leaf meter-id {\r
              type uint32;\r
          }\r
      }\r
-     \r
-     augment "/ofinstruction:instruction" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
+         ext:augment-identifier "experimenter-instruction";\r
          leaf experimenter {\r
              type uint32;\r
          }\r