2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 module openflow-augments {
10 namespace "urn:opendaylight:openflow:augments";
13 import yang-ext {prefix ext;}
14 import ietf-inet-types {prefix inet;}
15 import ietf-yang-types {prefix yang;}
17 import openflow-types {prefix oft;}
18 import openflow-protocol {prefix ofproto;}
19 import openflow-action {prefix ofaction;}
20 import openflow-instruction {prefix ofinstruction;}
21 import openflow-extensible-match {prefix oxm;}
23 revision "2015-02-25" {
24 description "OpenFlow 1.3 - augments model.
26 https://wiki.opendaylight.org/view/File:OpenFlow_Protocol_Library_-_Project_documentation.pdf
27 - Augmentation Tables chapter";
31 augment "/oxm:oxm-container/oxm:match-entry-value" {
32 ext:augment-identifier "experimenter-id-match-entry";
33 case experimenter-id-case {
34 container experimenter {
36 type oft:experimenter-id;
42 // OFP_ACTION AUGMENTS
43 augment "/ofaction:actions-container/ofaction:action" {
44 ext:augment-identifier "port-action";
49 augment "/ofaction:actions-container/ofaction:action" {
50 ext:augment-identifier "max-length-action";
55 augment "/ofaction:actions-container/ofaction:action" {
56 ext:augment-identifier "mpls-ttl-action";
61 augment "/ofaction:actions-container/ofaction:action" {
62 ext:augment-identifier "ethertype-action";
67 augment "/ofaction:actions-container/ofaction:action" {
68 ext:augment-identifier "queue-id-action";
73 augment "/ofaction:actions-container/ofaction:action" {
74 ext:augment-identifier "group-id-action";
79 augment "/ofaction:actions-container/ofaction:action" {
80 ext:augment-identifier "nw-ttl-action";
85 augment "/ofaction:actions-container/ofaction:action" {
86 ext:augment-identifier "oxm-fields-action";
87 uses oxm:match-entries-grouping;
89 augment "/ofaction:actions-container/ofaction:action" {
90 ext:augment-identifier "experimenter-id-action";
92 type oft:experimenter-id;
96 base ofaction:experimenter-action-sub-type;
101 augment "/ofaction:actions-container/ofaction:action" {
102 ext:augment-identifier "vlan-vid-action";
107 augment "/ofaction:actions-container/ofaction:action" {
108 ext:augment-identifier "vlan-pcp-action";
113 augment "/ofaction:actions-container/ofaction:action" {
114 ext:augment-identifier "dl-address-action";
116 type yang:mac-address;
119 augment "/ofaction:actions-container/ofaction:action" {
120 ext:augment-identifier "nw-tos-action";
125 augment "/ofaction:actions-container/ofaction:action" {
126 ext:augment-identifier "ip-address-action";
128 type inet:ipv4-address;
132 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS
133 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
134 ext:augment-identifier "instruction-related-table-feature-property";
135 uses ofinstruction:instructions-grouping;
137 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
138 ext:augment-identifier "next-table-related-table-feature-property";
139 list next-table-ids {
146 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
147 ext:augment-identifier "action-related-table-feature-property";
148 uses ofaction:actions-grouping;
150 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
151 ext:augment-identifier "oxm-related-table-feature-property";
152 uses oxm:match-entries-grouping;
154 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
155 ext:augment-identifier "experimenter-id-table-feature-property";
157 type oft:experimenter-id;
164 // OFP_INSTRUCTION AUGMENTS
165 augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
166 ext:augment-identifier "table-id-instruction";
171 augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
172 ext:augment-identifier "metadata-instruction";
180 augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
181 ext:augment-identifier "actions-instruction";
182 uses ofaction:actions-grouping;
184 augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
185 ext:augment-identifier "meter-id-instruction";
190 augment "/ofinstruction:instruction-container/ofinstruction:instruction" {
191 ext:augment-identifier "experimenter-id-instruction";
193 type oft:experimenter-id;
197 // OFP_QUEUE_PROP AUGMENTS
198 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
199 ext:augment-identifier "rate-queue-property";
204 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
205 ext:augment-identifier "experimenter-id-queue-property";
207 type oft:experimenter-id;
211 // OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3)
212 augment "/ofproto:error-message" {
213 ext:augment-identifier "experimenter-id-error";
215 type oft:experimenter-id;
219 // OFP_MULTIPART AUGMENTS
220 augment "/ofproto:multipart-request/input/ofproto:multipart-request-body/ofproto:multipart-request-experimenter-case/ofproto:multipart-request-experimenter" {
221 ext:augment-identifier "experimenter-id-multipart-request";
223 type oft:experimenter-id;
229 augment "/ofproto:multipart-reply-message/ofproto:multipart-reply-body/ofproto:multipart-reply-experimenter-case/ofproto:multipart-reply-experimenter" {
230 ext:augment-identifier "experimenter-id-multipart-reply";
232 type oft:experimenter-id;
239 // OFP_METER_BAND AUGMENTS
240 augment "/ofproto:meter-band-container/ofproto:meter-band/ofproto:meter-band-experimenter-case/ofproto:meter-band-experimenter" {
241 ext:augment-identifier "experimenter-id-meter-band";
243 type oft:experimenter-id;