Bug 2756 - Instruction model update
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-augments.yang
index 67297e7a674ad619c0d067614b02ace3771077c4..34ca8c43e3864fe1d2a492eb5048cf8ba9492a09 100644 (file)
-module openflow-augments {\r
-    namespace "urn:opendaylight:openflow:augments";\r
-    prefix "aug";\r
-    \r
-    import openflow-protocol {prefix ofproto;}\r
-\r
-\r
-    revision "2013-10-02" {\r
-        description "Initial model";\r
-    }\r
-\r
-     //augment "/ofproto:hello-message/ofproto:hello" {\r
-     //       leaf uid {\r
-     //           type uint16;\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-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_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;
+         }
+     }
 }
\ No newline at end of file