1 module openflow-augments {
\r
2 namespace "urn:opendaylight:openflow:augments";
\r
5 import yang-ext {prefix ext;}
\r
6 import ietf-inet-types {prefix inet;}
\r
7 import ietf-yang-types {prefix yang;}
\r
9 import openflow-types {prefix oft;}
\r
10 import openflow-protocol {prefix ofproto;}
\r
11 import openflow-action {prefix ofaction;}
\r
12 import openflow-instruction {prefix ofinstruction;}
\r
13 import openflow-extensible-match {prefix oxm;}
\r
15 revision "2013-10-02" {
\r
16 description "OpenFlow 1.3 - augments model";
\r
19 // OFP_MATCH AUGMENTS
\r
20 augment "/oxm:oxm-container/oxm:match-entries" {
\r
21 ext:augment-identifier "port-number-match-entry";
\r
23 type oft:port-number;
\r
26 augment "/oxm:oxm-container/oxm:match-entries" {
\r
27 ext:augment-identifier "metadata-match-entry";
\r
32 augment "/oxm:oxm-container/oxm:match-entries" {
\r
33 ext:augment-identifier "mask-match-entry";
\r
38 augment "/oxm:oxm-container/oxm:match-entries" {
\r
39 ext:augment-identifier "mac-address-match-entry";
\r
41 type yang:mac-address;
\r
44 augment "/oxm:oxm-container/oxm:match-entries" {
\r
45 ext:augment-identifier "eth-type-match-entry";
\r
47 type oft:ether-type;
\r
50 augment "/oxm:oxm-container/oxm:match-entries" {
\r
51 ext:augment-identifier "vlan-vid-match-entry";
\r
59 augment "/oxm:oxm-container/oxm:match-entries" {
\r
60 ext:augment-identifier "vlan-pcp-match-entry";
\r
65 augment "/oxm:oxm-container/oxm:match-entries" {
\r
66 ext:augment-identifier "dscp-match-entry";
\r
71 augment "/oxm:oxm-container/oxm:match-entries" {
\r
72 ext:augment-identifier "ecn-match-entry";
\r
77 augment "/oxm:oxm-container/oxm:match-entries" {
\r
78 ext:augment-identifier "protocol-number-match-entry";
\r
79 leaf protocol-number {
\r
83 augment "/oxm:oxm-container/oxm:match-entries" {
\r
84 ext:augment-identifier "port-match-entry";
\r
86 type inet:port-number;
\r
89 augment "/oxm:oxm-container/oxm:match-entries" {
\r
90 ext:augment-identifier "icmpv4-type-match-entry";
\r
95 augment "/oxm:oxm-container/oxm:match-entries" {
\r
96 ext:augment-identifier "icmpv4-code-match-entry";
\r
101 augment "/oxm:oxm-container/oxm:match-entries" {
\r
102 ext:augment-identifier "op-code-match-entry";
\r
107 augment "/oxm:oxm-container/oxm:match-entries" {
\r
108 ext:augment-identifier "ipv6-flabel-match-entry";
\r
110 type inet:ipv6-flow-label;
\r
113 augment "/oxm:oxm-container/oxm:match-entries" {
\r
114 ext:augment-identifier "icmpv6-type-match-entry";
\r
119 augment "/oxm:oxm-container/oxm:match-entries" {
\r
120 ext:augment-identifier "icmpv6-code-match-entry";
\r
125 augment "/oxm:oxm-container/oxm:match-entries" {
\r
126 ext:augment-identifier "ipv6-address-match-entry";
\r
127 leaf ipv6-address {
\r
128 type inet:ipv6-address;
\r
131 augment "/oxm:oxm-container/oxm:match-entries" {
\r
132 ext:augment-identifier "ipv4-address-match-entry";
\r
133 leaf ipv4-address {
\r
134 type inet:ipv4-address;
\r
137 augment "/oxm:oxm-container/oxm:match-entries" {
\r
138 ext:augment-identifier "mpls-label-match-entry";
\r
143 augment "/oxm:oxm-container/oxm:match-entries" {
\r
144 ext:augment-identifier "tc-match-entry";
\r
149 augment "/oxm:oxm-container/oxm:match-entries" {
\r
150 ext:augment-identifier "bos-match-entry";
\r
155 augment "/oxm:oxm-container/oxm:match-entries" {
\r
156 ext:augment-identifier "isid-match-entry";
\r
161 augment "/oxm:oxm-container/oxm:match-entries" {
\r
162 ext:augment-identifier "pseudo-field-match-entry";
\r
163 leaf pseudo-field {
\r
166 description "<No next header> encountered.";
\r
170 description "Encrypted Sec Payload header present.";
\r
174 description "Authentication header present.";
\r
178 description "1 or 2 dest headers present.";
\r
182 description "Fragment header present.";
\r
186 description "Router header present.";
\r
190 description "Hop-by-hop header present.";
\r
194 description "Unexpected repeats encountered.";
\r
198 description "Unexpected sequencing encountered.";
\r
205 // OFP_ACTION AUGMENTS
\r
206 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
207 ext:augment-identifier "port-action";
\r
209 type oft:port-number;
\r
212 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
213 ext:augment-identifier "max-length-action";
\r
218 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
219 ext:augment-identifier "mpls-ttl-action";
\r
224 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
225 ext:augment-identifier "ethertype-action";
\r
227 type oft:ether-type;
\r
230 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
231 ext:augment-identifier "queue-id-action";
\r
236 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
237 ext:augment-identifier "group-id-action";
\r
242 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
243 ext:augment-identifier "nw-ttl-action";
\r
248 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
249 ext:augment-identifier "oxm-fields-action";
\r
250 uses oxm:oxm-fields;
\r
252 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
253 ext:augment-identifier "experimenter-action";
\r
254 leaf experimenter {
\r
258 // OF1.0 structures
\r
259 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
260 ext:augment-identifier "vlan-vid-action";
\r
265 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
266 ext:augment-identifier "vlan-pcp-action";
\r
271 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
272 ext:augment-identifier "dl-address-action";
\r
274 type yang:mac-address;
\r
277 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
278 ext:augment-identifier "nw-tos-action";
\r
283 augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {
\r
284 ext:augment-identifier "ip-address-action";
\r
286 type inet:ipv4-address;
\r
290 // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS
\r
291 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
292 ext:augment-identifier "instruction-related-table-feature-property";
\r
293 uses ofinstruction:instructions;
\r
295 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
296 ext:augment-identifier "next-table-related-table-feature-property";
\r
297 list next-table-ids {
\r
304 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
305 ext:augment-identifier "action-related-table-feature-property";
\r
306 uses ofaction:actions;
\r
308 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
309 ext:augment-identifier "oxm-related-table-feature-property";
\r
310 uses oxm:oxm-fields;
\r
312 augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {
\r
313 ext:augment-identifier "experimenter-related-table-feature-property";
\r
314 leaf experimenter {
\r
325 // OFP_INSTRUCTION AUGMENTS
\r
326 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
327 ext:augment-identifier "table-id-instruction";
\r
332 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
333 ext:augment-identifier "metadata-instruction";
\r
337 leaf metadata-mask {
\r
341 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
342 ext:augment-identifier "actions-instruction";
\r
343 uses ofaction:actions;
\r
345 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
346 ext:augment-identifier "meter-id-instruction";
\r
351 augment "/ofinstruction:instruction-container/ofinstruction:instructions" {
\r
352 ext:augment-identifier "experimenter-instruction";
\r
353 leaf experimenter {
\r
361 // OFP_QUEUE_PROP AUGMENTS
\r
362 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
\r
363 ext:augment-identifier "rate-queue-property";
\r
368 augment "/ofproto:queue-prop-container/ofproto:queue-property" {
\r
369 ext:augment-identifier "experimenter-queue-property";
\r
370 leaf experimenter {
\r
378 // OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3)
\r
379 augment "/ofproto:error-message" {
\r
380 ext:augment-identifier "experimenter-error";
\r
384 leaf experimenter {
\r