+/*
+ * 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 "#NOT_PUBLISHED# 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-choice" {
+ case experimenter-id-case {
+ container experimenter {
+ leaf experimenter-id {
+ 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_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;
+ }
+ leaf sub-type {
+ type identityref {
+ base oft:experimenter-meter-band-sub-type;
+ }
+ }
+ }
+}