GroupId and MeterId used in model (as requested)
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-augments.yang
index 67297e7a674ad619c0d067614b02ace3771077c4..866acfe26f8971ec8997d71e39af599380ef192b 100644 (file)
@@ -2,16 +2,387 @@ module openflow-augments {
     namespace "urn:opendaylight:openflow:augments";\r
     prefix "aug";\r
     \r
-    import openflow-protocol {prefix ofproto;}\r
+    import yang-ext {prefix ext;}\r
+    import ietf-inet-types {prefix inet;}\r
+    import ietf-yang-types {prefix yang;}\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
     revision "2013-10-02" {\r
-        description "Initial model";\r
+        description "OpenFlow 1.3 - augments model";\r
     }\r
 \r
-     //augment "/ofproto:hello-message/ofproto:hello" {\r
-     //       leaf uid {\r
-     //           type uint16;\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 oft:port-number;\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
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "mask-match-entry";\r
+         leaf mask {\r
+             type binary;\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
+     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
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "vlan-vid-match-entry";\r
+         leaf vlan-vid {\r
+             type uint16;\r
+         }\r
+         leaf cfi-bit {\r
+             type boolean;\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
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "dscp-match-entry";\r
+         leaf dscp {\r
+             type inet:dscp;\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
+     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
+     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
+     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
+     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
+     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
+     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
+     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
+     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
+     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
+     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
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "tc-match-entry";\r
+         leaf tc {\r
+             type uint8;\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
+     augment "/oxm:oxm-container/oxm:match-entries" {\r
+         ext:augment-identifier "isid-match-entry";\r
+         leaf isid {\r
+             type uint32;\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
+                     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
+         }\r
+     }\r
+\r
+// OFP_ACTION AUGMENTS\r
+     augment "/ofaction:actions-container/ofaction:actions-list/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
+         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
+         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
+         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
+         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
+         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
+         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
+         ext:augment-identifier "oxm-fields-action";\r
+         uses oxm:oxm-fields;\r
+     }\r
+     augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+         ext:augment-identifier "experimenter-action";\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+     }\r
+     // OF1.0 structures\r
+     augment "/ofaction:actions-container/ofaction:actions-list/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
+         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
+         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
+         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
+         ext:augment-identifier "ip-address-action";\r
+         leaf ip-address {\r
+             type inet:ipv4-address;\r
+         }\r
+     }\r
+\r
+// 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
+     }\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
+             leaf table-id {\r
+                 type uint8;\r
+             }\r
+         }\r
+     }\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
+     }\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
+     }\r
+     augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
+         ext:augment-identifier "experimenter-related-table-feature-property";\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+         leaf exp-type {\r
+             type uint32;\r
+         }\r
+         leaf data {\r
+             type binary;\r
+         }\r
+     }\r
+\r
+// OFP_INSTRUCTION AUGMENTS\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+         ext:augment-identifier "table-id-instruction";\r
+         leaf table-id {\r
+             type uint8;\r
+         }\r
+     }\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+         ext:augment-identifier "metadata-instruction";\r
+         leaf metadata {\r
+             type binary;\r
+         }\r
+         leaf metadata-mask {\r
+             type binary;\r
+         }\r
+     }\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+         ext:augment-identifier "actions-instruction";\r
+         uses ofaction:actions;\r
+     }\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+         ext:augment-identifier "meter-id-instruction";\r
+         leaf meter-id {\r
+             type uint32;\r
+         }\r
+     }\r
+     augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+         ext:augment-identifier "experimenter-instruction";\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+         leaf data {\r
+             type binary;\r
+         }\r
+     }\r
+     \r
+// OFP_QUEUE_PROP AUGMENTS\r
+     augment "/ofproto:queue-prop-container/ofproto:queue-property" {\r
+         ext:augment-identifier "rate-queue-property";\r
+         leaf rate {\r
+             type uint16;\r
+         }\r
+     }\r
+     augment "/ofproto:queue-prop-container/ofproto:queue-property" {\r
+         ext:augment-identifier "experimenter-queue-property";\r
+         leaf experimenter {\r
+             type uint32;\r
+         }\r
+         leaf data {\r
+             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
+     }\r
+\r
 }
\ No newline at end of file