Updated extension registration keys
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-augments.yang
index 3f8502a2cba38fb119d17005d7eba9ecb921e943..44986927df0393ebb05dbcff7d6ee2aa841af887 100644 (file)
@@ -1,4 +1,12 @@
-module openflow-augments {\r
+/*\r
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
\r
+ module openflow-augments {\r
     namespace "urn:opendaylight:openflow:augments";\r
     prefix "aug";\r
     \r
@@ -13,7 +21,10 @@ module openflow-augments {
     import openflow-extensible-match {prefix oxm;}\r
 \r
     revision "2013-10-02" {\r
-        description "OpenFlow 1.3 - augments model";\r
+        description "OpenFlow 1.3 - augments model. \r
+                    Please visit \r
+                    https://wiki.opendaylight.org/view/File:OpenFlow_Protocol_Library_-_Project_documentation.pdf\r
+                     - Augmentation Tables chapter";\r
     }\r
 \r
 // OFP_MATCH AUGMENTS\r
@@ -161,126 +172,116 @@ module openflow-augments {
      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
-                     description "<No next header> encountered.";\r
-                     position 0;\r
-                 }\r
-                 bit esp {\r
-                     description "Encrypted Sec Payload header present.";\r
-                     position 1;\r
-                 }\r
-                 bit auth {\r
-                     description "Authentication header present.";\r
-                     position 2;\r
-                 }\r
-                 bit dest {\r
-                     description "1 or 2 dest headers present.";\r
-                     position 3;\r
-                 }\r
-                 bit frag {\r
-                     description "Fragment header present.";\r
-                     position 4;\r
-                 }\r
-                 bit router {\r
-                     description "Router header present.";\r
-                     position 5;\r
-                 }\r
-                 bit hop {\r
-                     description "Hop-by-hop header present.";\r
-                     position 6;\r
-                 }\r
-                 bit unrep {\r
-                     description "Unexpected repeats encountered.";\r
-                     position 7;\r
-                 }\r
-                 bit unseq {\r
-                     description "Unexpected sequencing encountered.";\r
-                     position 8;\r
-                 }\r
-             }\r
+             type oft:ipv6-exthdr-flags;\r
+         }\r
+     }\r
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "experimenter-match-entry";\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+     }\r
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "tcp-flag-match-entry";\r
+         leaf tcp-flag {\r
+             type uint16;\r
+         }\r
+     }\r
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "tunnel-ipv4-dst-match-entry";\r
+         leaf tunnel-ipv4-dst {\r
+             type inet:ipv4-address;\r
+         }\r
+     }\r
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "tunnel-ipv4-src-match-entry";\r
+         leaf tunnel-ipv4-src {\r
+             type inet:ipv4-address;\r
          }\r
      }\r
 \r
 // OFP_ACTION AUGMENTS\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "port-action";\r
          leaf port {\r
              type oft:port-number;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "max-length-action";\r
          leaf max-length {\r
              type uint16;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "mpls-ttl-action";\r
          leaf mpls-ttl {\r
              type uint8;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "ethertype-action";\r
          leaf ethertype {\r
              type oft:ether-type;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "queue-id-action";\r
          leaf queue-id {\r
              type uint32;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "group-id-action";\r
          leaf group-id {\r
              type uint32;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "nw-ttl-action";\r
          leaf nw-ttl {\r
              type uint8;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "oxm-fields-action";\r
-         uses oxm:oxm-fields;\r
+         uses oxm:oxm-fields-grouping;\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "experimenter-action";\r
          leaf experimenter {\r
              type uint32;\r
          }\r
+         leaf data {\r
+             type binary;\r
+         }\r
      }\r
      // OF1.0 structures\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "vlan-vid-action";\r
          leaf vlan-vid {\r
              type uint16;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "vlan-pcp-action";\r
          leaf vlan-pcp {\r
              type uint8;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "dl-address-action";\r
          leaf dl-address {\r
              type yang:mac-address;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "nw-tos-action";\r
          leaf nw-tos {\r
              type uint8;\r
          }\r
      }\r
-     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+     augment "/ofaction:actions-container/ofaction:action" {\r
          ext:augment-identifier "ip-address-action";\r
          leaf ip-address {\r
              type inet:ipv4-address;\r
@@ -290,11 +291,12 @@ module openflow-augments {
 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
          ext:augment-identifier "instruction-related-table-feature-property";\r
-         uses ofinstruction:instructions;\r
+         uses ofinstruction:instructions-grouping;\r
      }\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
          ext:augment-identifier "next-table-related-table-feature-property";\r
          list next-table-ids {\r
+             config false;\r
              leaf table-id {\r
                  type uint8;\r
              }\r
@@ -302,11 +304,11 @@ module openflow-augments {
      }\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
          ext:augment-identifier "action-related-table-feature-property";\r
-         uses ofaction:actions;\r
+         uses ofaction:actions-grouping;\r
      }\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
          ext:augment-identifier "oxm-related-table-feature-property";\r
-         uses oxm:oxm-fields;\r
+         uses oxm:oxm-fields-grouping;\r
      }\r
      augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
          ext:augment-identifier "experimenter-related-table-feature-property";\r
@@ -322,13 +324,13 @@ module openflow-augments {
      }\r
 \r
 // OFP_INSTRUCTION AUGMENTS\r
-     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
          ext:augment-identifier "table-id-instruction";\r
          leaf table-id {\r
              type uint8;\r
          }\r
      }\r
-     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
          ext:augment-identifier "metadata-instruction";\r
          leaf metadata {\r
              type binary;\r
@@ -337,17 +339,17 @@ module openflow-augments {
              type binary;\r
          }\r
      }\r
-     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
          ext:augment-identifier "actions-instruction";\r
-         uses ofaction:actions;\r
+         uses ofaction:actions-grouping;\r
      }\r
-     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
          ext:augment-identifier "meter-id-instruction";\r
          leaf meter-id {\r
              type uint32;\r
          }\r
      }\r
-     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
          ext:augment-identifier "experimenter-instruction";\r
          leaf experimenter {\r
              type uint32;\r
@@ -373,4 +375,19 @@ module openflow-augments {
              type binary;\r
          }\r
      }\r
+     \r
+// OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3)\r
+    augment "/ofproto:error-message" {\r
+         ext:augment-identifier "experimenter-error";\r
+         leaf exp_type {\r
+             type uint16;\r
+         }\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+         leaf exp-data {\r
+             type binary;\r
+         }\r
+     }\r
+\r
 }
\ No newline at end of file