2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 module openflow-augments {
\r
10 namespace "urn:opendaylight:openflow:augments";
\r
13 import yang-ext {prefix ext;}
\r
14 import ietf-inet-types {prefix inet;}
\r
15 import ietf-yang-types {prefix yang;}
\r
17 import openflow-types {prefix oft;}
\r
18 import openflow-protocol {prefix ofproto;}
\r
19 import openflow-action {prefix ofaction;}
\r
20 import openflow-instruction {prefix ofinstruction;}
\r
21 import openflow-extensible-match {prefix oxm;}
\r
23 revision "2013-10-02" {
\r
24 description "OpenFlow 1.3 - augments model";
\r
27 // OFP_MATCH AUGMENTS
\r
28 augment "/oxm:oxm-container/oxm:match-entries" {
\r
29 ext:augment-identifier "port-number-match-entry";
\r
31 type oft:port-number;
\r
34 augment "/oxm:oxm-container/oxm:match-entries" {
\r
35 ext:augment-identifier "metadata-match-entry";
\r
40 augment "/oxm:oxm-container/oxm:match-entries" {
\r
41 ext:augment-identifier "mask-match-entry";
\r
46 augment "/oxm:oxm-container/oxm:match-entries" {
\r
47 ext:augment-identifier "mac-address-match-entry";
\r
49 type yang:mac-address;
\r
52 augment "/oxm:oxm-container/oxm:match-entries" {
\r
53 ext:augment-identifier "eth-type-match-entry";
\r
55 type oft:ether-type;
\r
58 augment "/oxm:oxm-container/oxm:match-entries" {
\r
59 ext:augment-identifier "vlan-vid-match-entry";
\r
67 augment "/oxm:oxm-container/oxm:match-entries" {
\r
68 ext:augment-identifier "vlan-pcp-match-entry";
\r
73 augment "/oxm:oxm-container/oxm:match-entries" {
\r
74 ext:augment-identifier "dscp-match-entry";
\r
79 augment "/oxm:oxm-container/oxm:match-entries" {
\r
80 ext:augment-identifier "ecn-match-entry";
\r
85 augment "/oxm:oxm-container/oxm:match-entries" {
\r
86 ext:augment-identifier "protocol-number-match-entry";
\r
87 leaf protocol-number {
\r
91 augment "/oxm:oxm-container/oxm:match-entries" {
\r
92 ext:augment-identifier "port-match-entry";
\r
94 type inet:port-number;
\r
97 augment "/oxm:oxm-container/oxm:match-entries" {
\r
98 ext:augment-identifier "icmpv4-type-match-entry";
\r
103 augment "/oxm:oxm-container/oxm:match-entries" {
\r
104 ext:augment-identifier "icmpv4-code-match-entry";
\r
109 augment "/oxm:oxm-container/oxm:match-entries" {
\r
110 ext:augment-identifier "op-code-match-entry";
\r
115 augment "/oxm:oxm-container/oxm:match-entries" {
\r
116 ext:augment-identifier "ipv6-flabel-match-entry";
\r
118 type inet:ipv6-flow-label;
\r
121 augment "/oxm:oxm-container/oxm:match-entries" {
\r
122 ext:augment-identifier "icmpv6-type-match-entry";
\r
127 augment "/oxm:oxm-container/oxm:match-entries" {
\r
128 ext:augment-identifier "icmpv6-code-match-entry";
\r
133 augment "/oxm:oxm-container/oxm:match-entries" {
\r
134 ext:augment-identifier "ipv6-address-match-entry";
\r
135 leaf ipv6-address {
\r
136 type inet:ipv6-address;
\r
139 augment "/oxm:oxm-container/oxm:match-entries" {
\r
140 ext:augment-identifier "ipv4-address-match-entry";
\r
141 leaf ipv4-address {
\r
142 type inet:ipv4-address;
\r
145 augment "/oxm:oxm-container/oxm:match-entries" {
\r
146 ext:augment-identifier "mpls-label-match-entry";
\r
151 augment "/oxm:oxm-container/oxm:match-entries" {
\r
152 ext:augment-identifier "tc-match-entry";
\r
157 augment "/oxm:oxm-container/oxm:match-entries" {
\r
158 ext:augment-identifier "bos-match-entry";
\r
163 augment "/oxm:oxm-container/oxm:match-entries" {
\r
164 ext:augment-identifier "isid-match-entry";
\r
169 augment "/oxm:oxm-container/oxm:match-entries" {
\r
170 ext:augment-identifier "pseudo-field-match-entry";
\r
171 leaf pseudo-field {
\r
172 type oft:ipv6-exthdr-flags;
\r
176 // OFP_ACTION AUGMENTS
\r
177 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
178 ext:augment-identifier "port-action";
\r
180 type oft:port-number;
\r
183 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
184 ext:augment-identifier "max-length-action";
\r
189 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
190 ext:augment-identifier "mpls-ttl-action";
\r
195 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
196 ext:augment-identifier "ethertype-action";
\r
198 type oft:ether-type;
\r
201 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
202 ext:augment-identifier "queue-id-action";
\r
207 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
208 ext:augment-identifier "group-id-action";
\r
213 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
214 ext:augment-identifier "nw-ttl-action";
\r
219 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
220 ext:augment-identifier "oxm-fields-action";
\r
221 uses oxm:oxm-fields;
\r
223 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
224 ext:augment-identifier "experimenter-action";
\r
225 leaf experimenter {
\r
229 // OF1.0 structures
\r
230 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
231 ext:augment-identifier "vlan-vid-action";
\r
236 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
237 ext:augment-identifier "vlan-pcp-action";
\r
242 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
243 ext:augment-identifier "dl-address-action";
\r
245 type yang:mac-address;
\r
248 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
249 ext:augment-identifier "nw-tos-action";
\r
254 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
255 ext:augment-identifier "ip-address-action";
\r
257 type inet:ipv4-address;
\r
261 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS
\r
262 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
263 ext:augment-identifier "instruction-related-table-feature-property";
\r
264 uses ofinstruction:instructions;
\r
266 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
267 ext:augment-identifier "next-table-related-table-feature-property";
\r
268 list next-table-ids {
\r
275 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
276 ext:augment-identifier "action-related-table-feature-property";
\r
277 uses ofaction:actions;
\r
279 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
280 ext:augment-identifier "oxm-related-table-feature-property";
\r
281 uses oxm:oxm-fields;
\r
283 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
284 ext:augment-identifier "experimenter-related-table-feature-property";
\r
285 leaf experimenter {
\r
296 // OFP_INSTRUCTION AUGMENTS
\r
297 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
298 ext:augment-identifier "table-id-instruction";
\r
303 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
304 ext:augment-identifier "metadata-instruction";
\r
308 leaf metadata-mask {
\r
312 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
313 ext:augment-identifier "actions-instruction";
\r
314 uses ofaction:actions;
\r
316 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
317 ext:augment-identifier "meter-id-instruction";
\r
322 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
323 ext:augment-identifier "experimenter-instruction";
\r
324 leaf experimenter {
\r
332 // OFP_QUEUE_PROP AUGMENTS
\r
333 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
\r
334 ext:augment-identifier "rate-queue-property";
\r
339 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
\r
340 ext:augment-identifier "experimenter-queue-property";
\r
341 leaf experimenter {
\r
349 // OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3)
\r
350 augment "/ofproto:error-message" {
\r
351 ext:augment-identifier "experimenter-error";
\r
355 leaf experimenter {
\r