-/*\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
- 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 "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
- 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 oft:ipv6-exthdr-flags;\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
-\r
-// OFP_ACTION AUGMENTS\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:action" {\r
- ext:augment-identifier "max-length-action";\r
- leaf max-length {\r
- type uint16;\r
- }\r
- }\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:action" {\r
- ext:augment-identifier "ethertype-action";\r
- leaf ethertype {\r
- type oft:ether-type;\r
- }\r
- }\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:action" {\r
- ext:augment-identifier "group-id-action";\r
- leaf group-id {\r
- type uint32;\r
- }\r
- }\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:action" {\r
- ext:augment-identifier "oxm-fields-action";\r
- uses oxm:oxm-fields-grouping;\r
- }\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:action" {\r
- ext:augment-identifier "vlan-vid-action";\r
- leaf vlan-vid {\r
- type uint16;\r
- }\r
- }\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: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:action" {\r
- ext:augment-identifier "nw-tos-action";\r
- leaf nw-tos {\r
- type uint8;\r
- }\r
- }\r
- augment "/ofaction:actions-container/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-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
- }\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-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-grouping;\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:instruction" {\r
- ext:augment-identifier "table-id-instruction";\r
- leaf table-id {\r
- type uint8;\r
- }\r
- }\r
- augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\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:instruction" {\r
- ext:augment-identifier "actions-instruction";\r
- uses ofaction:actions-grouping;\r
- }\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:instruction" {\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
+/*
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+ module openflow-augments {
+ namespace "urn:opendaylight:openflow:augments";
+ prefix "aug";
+
+ import yang-ext {prefix ext;}
+ import ietf-inet-types {prefix inet;}
+ import ietf-yang-types {prefix yang;}
+
+ import openflow-types {prefix oft;}
+ import openflow-protocol {prefix ofproto;}
+ import openflow-action {prefix ofaction;}
+ import openflow-instruction {prefix ofinstruction;}
+ import openflow-extensible-match {prefix oxm;}
+
+ revision "2015-02-25" {
+ description "OpenFlow 1.3 - augments model.
+ Please visit
+ https://wiki.opendaylight.org/view/File:OpenFlow_Protocol_Library_-_Project_documentation.pdf
+ - Augmentation Tables chapter";
+ }
+
+// OFP_MATCH AUGMENTS
+ augment "/oxm:oxm-container/oxm:match-entry-value" {
+ ext:augment-identifier "experimenter-id-match-entry";
+ case experimenter-id-case {
+ container experimenter {
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ }
+ }
+ }
+
+// OFP_ACTION AUGMENTS
+ augment "/ofaction:action-container/ofaction:action-choice" {
+ ext:augment-identifier "experimenter-id-action";
+ case experimenter-id-case {
+ container experimenter {
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ leaf sub-type {
+ type identityref {
+ base ofaction:experimenter-action-sub-type;
+ }
+ }
+ }
+ }
+ }
+
+// OFP_TABLE_FEATURES_PROPERTIES AUGMENTS
+ augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
+ ext:augment-identifier "instruction-related-table-feature-property";
+ uses ofinstruction:instructions-grouping;
+ }
+ augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
+ ext:augment-identifier "next-table-related-table-feature-property";
+ list next-table-ids {
+ config false;
+ leaf table-id {
+ type uint8;
+ }
+ }
+ }
+ augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
+ ext:augment-identifier "action-related-table-feature-property";
+ uses ofaction:actions-grouping;
+ }
+ augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
+ ext:augment-identifier "oxm-related-table-feature-property";
+ uses oxm:match-entries-grouping;
+ }
+ augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
+ ext:augment-identifier "experimenter-id-table-feature-property";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ leaf exp-type {
+ type uint32;
+ }
+ }
+
+// OFP_INSTRUCTION AUGMENTS
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
+ ext:augment-identifier "table-id-instruction";
+ leaf table-id {
+ type uint8;
+ }
+ }
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
+ ext:augment-identifier "metadata-instruction";
+ leaf metadata {
+ type binary;
+ }
+ leaf metadata-mask {
+ type binary;
+ }
+ }
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
+ ext:augment-identifier "actions-instruction";
+ uses ofaction:actions-grouping;
+ }
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
+ ext:augment-identifier "meter-id-instruction";
+ leaf meter-id {
+ type uint32;
+ }
+ }
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
+ ext:augment-identifier "experimenter-id-instruction";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ }
+
+// OFP_QUEUE_PROP AUGMENTS
+ augment "/ofproto:queue-prop-container/ofproto:queue-property" {
+ ext:augment-identifier "rate-queue-property";
+ leaf rate {
+ type uint16;
+ }
+ }
+ augment "/ofproto:queue-prop-container/ofproto:queue-property" {
+ ext:augment-identifier "experimenter-id-queue-property";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ }
+
+// OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3)
+ augment "/ofproto:error-message" {
+ ext:augment-identifier "experimenter-id-error";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ }
+
+// OFP_MULTIPART AUGMENTS
+ augment "/ofproto:multipart-request/input/ofproto:multipart-request-body/ofproto:multipart-request-experimenter-case/ofproto:multipart-request-experimenter" {
+ ext:augment-identifier "experimenter-id-multipart-request";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ leaf exp-type {
+ type uint32;
+ }
+ }
+ augment "/ofproto:multipart-reply-message/ofproto:multipart-reply-body/ofproto:multipart-reply-experimenter-case/ofproto:multipart-reply-experimenter" {
+ ext:augment-identifier "experimenter-id-multipart-reply";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ leaf exp-type {
+ type uint32;
+ }
+ }
+
+// OFP_METER_BAND AUGMENTS
+ augment "/ofproto:meter-band-container/ofproto:meter-band/ofproto:meter-band-experimenter-case/ofproto:meter-band-experimenter" {
+ ext:augment-identifier "experimenter-id-meter-band";
+ leaf experimenter {
+ type oft:experimenter-id;
+ }
+ }