1 module openflowplugin-extension-nicira-match {
4 namespace "urn:opendaylight:openflowplugin:extension:nicira:match";
5 prefix "openflowplugin-nicira-match";
7 import yang-ext {prefix ext; revision-date "2013-07-09";}
8 import flow-node-inventory {prefix fni; revision-date 2013-08-19; }
9 import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
10 import sal-flow {prefix sal-flow;revision-date "2013-08-19";}
11 import packet-processing {prefix sal-packet;revision-date "2013-07-09";}
12 import openflowplugin-extension-general {prefix ext-gen;revision-date "2014-07-14";}
13 import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";}
14 import opendaylight-direct-statistics {prefix odl-direct-stats;revision-date "2016-05-11";}
15 import nicira-match {prefix nicira-match;revision-date "2014-04-21";}
16 import ietf-inet-types {prefix inet; revision-date "2013-07-15";}
17 import ietf-yang-types {prefix yang; revision-date "2013-07-15";}
20 "Nicira openflow match extensions.";
22 revision "2014-07-14" {
23 description "Initial revision";
26 identity nxm-nx-reg0-key {
27 base ext-gen:extension-key;
29 identity nxm-nx-reg1-key {
30 base ext-gen:extension-key;
32 identity nxm-nx-reg2-key {
33 base ext-gen:extension-key;
35 identity nxm-nx-reg3-key {
36 base ext-gen:extension-key;
38 identity nxm-nx-reg4-key {
39 base ext-gen:extension-key;
41 identity nxm-nx-reg5-key {
42 base ext-gen:extension-key;
44 identity nxm-nx-reg6-key {
45 base ext-gen:extension-key;
47 identity nxm-nx-reg7-key {
48 base ext-gen:extension-key;
50 identity nxm-nx-tun-id-key {
51 base ext-gen:extension-key;
53 identity nxm-nx-arp-sha-key {
54 base ext-gen:extension-key;
56 identity nxm-nx-arp-tha-key {
57 base ext-gen:extension-key;
59 identity nxm-of-arp-op-key {
60 base ext-gen:extension-key;
62 identity nxm-of-arp-spa-key {
63 base ext-gen:extension-key;
65 identity nxm-of-arp-tpa-key {
66 base ext-gen:extension-key;
68 identity nxm-of-in-port-key {
69 base ext-gen:extension-key;
71 identity nxm-nx-tun-ipv4-dst-key {
72 base ext-gen:extension-key;
74 identity nxm-nx-tun-ipv4-src-key {
75 base ext-gen:extension-key;
77 identity nxm-of-eth-src-key {
78 base ext-gen:extension-key;
80 identity nxm-of-eth-dst-key {
81 base ext-gen:extension-key;
83 identity nxm-of-eth-type-key {
84 base ext-gen:extension-key;
86 identity nxm-nx-nsp-key {
87 base ext-gen:extension-key;
89 identity nxm-nx-nsi-key {
90 base ext-gen:extension-key;
92 identity nxm-nx-nshc-1-key {
93 base ext-gen:extension-key;
95 identity nxm-nx-nshc-2-key {
96 base ext-gen:extension-key;
98 identity nxm-nx-nshc-3-key {
99 base ext-gen:extension-key;
101 identity nxm-nx-nshc-4-key {
102 base ext-gen:extension-key;
104 identity nxm-of-tcp-src-key {
105 base ext-gen:extension-key;
107 identity nxm-of-tcp-dst-key {
108 base ext-gen:extension-key;
110 identity nxm-of-udp-src-key {
111 base ext-gen:extension-key;
113 identity nxm-of-udp-dst-key {
114 base ext-gen:extension-key;
116 identity nxm-nx-ct-mark-key {
117 base ext-gen:extension-key;
119 identity nxm-nx-ct-state-key {
120 base ext-gen:extension-key;
122 identity nxm-nx-ct-zone-key {
123 base ext-gen:extension-key;
125 identity nxm-nx-ct-tp-src-key {
126 base ext-gen:extension-key;
128 identity nxm-nx-ct-tp-dst-key {
129 base ext-gen:extension-key;
131 identity nxm-nx-pkt-mark-key {
132 base ext-gen:extension-key;
134 identity nxm-of-ip-dst-key {
135 base ext-gen:extension-key;
137 identity nxm-of-ip-src-key {
138 base ext-gen:extension-key;
140 identity nxm-of-icmp-type-key {
141 base ext-gen:extension-key;
143 identity nxm-nx-nsh-flags-key {
144 base ext-gen:extension-key;
146 identity nxm-nx-nsh-mdtype-key {
147 base ext-gen:extension-key;
149 identity nxm-nx-nsh-np-key {
150 base ext-gen:extension-key;
152 identity nxm-nx-nsh-ttl-key {
153 base ext-gen:extension-key;
155 grouping ipv4-address-grouping {
157 type inet:ipv4-address;
160 grouping mac-address-grouping {
162 type yang:mac-address;
166 grouping nxm-nx-reg-grouping {
167 container nxm-nx-reg {
170 base nicira-match:nxm-nx-reg;
181 grouping nxm-nx-tun-id-grouping {
182 container nxm-nx-tun-id {
188 grouping nxm-nx-arp-sha-grouping {
189 container nxm-nx-arp-sha {
190 uses mac-address-grouping;
193 grouping nxm-nx-arp-tha-grouping {
194 container nxm-nx-arp-tha {
195 uses mac-address-grouping;
198 grouping nxm-of-arp-op-grouping {
199 container nxm-of-arp-op {
200 description "Prereqs: NXM_OF_ETH_TYPE must match either 0x0806 or 0x8035.";
206 grouping nxm-of-arp-spa-grouping {
207 container nxm-of-arp-spa {
208 description "Prereqs: NXM_OF_ETH_TYPE must match either 0x0806 or 0x8035.";
209 uses ipv4-address-grouping;
212 grouping nxm-of-in-port-grouping {
213 container of-in-port {
219 grouping nxm-of-tcp-src-grouping {
220 container nxm-of-tcp-src {
222 type inet:port-number;
229 grouping nxm-of-tcp-dst-grouping {
230 container nxm-of-tcp-dst {
232 type inet:port-number;
239 grouping nxm-of-udp-src-grouping {
240 container nxm-of-udp-src {
242 type inet:port-number;
249 grouping nxm-of-udp-dst-grouping {
250 container nxm-of-udp-dst {
252 type inet:port-number;
259 grouping nxm-of-arp-tpa-grouping {
260 container nxm-of-arp-tpa {
261 description "Prereqs: NXM_OF_ETH_TYPE must match either 0x0806 or 0x8035.";
262 uses ipv4-address-grouping;
265 grouping nxm-nx-tun-ipv4-dst-grouping {
266 container nxm-nx-tun-ipv4-dst {
267 uses ipv4-address-grouping;
270 grouping nxm-nx-tun-ipv4-src-grouping {
271 container nxm-nx-tun-ipv4-src {
272 uses ipv4-address-grouping;
275 grouping nxm-of-eth-src-grouping {
276 container nxm-of-eth-src {
277 uses mac-address-grouping;
280 grouping nxm-of-eth-dst-grouping {
281 container nxm-of-eth-dst {
282 uses mac-address-grouping;
285 grouping nxm-of-eth-type-grouping {
286 container nxm-of-eth-type {
292 grouping nxm-nx-nsp-grouping {
293 container nxm-nx-nsp {
299 grouping nxm-nx-nsi-grouping {
300 container nxm-nx-nsi {
306 grouping nxm-nx-nshc-1-grouping {
307 container nxm-nx-nshc-1 {
316 grouping nxm-nx-nshc-2-grouping {
317 container nxm-nx-nshc-2 {
326 grouping nxm-nx-nshc-3-grouping {
327 container nxm-nx-nshc-3 {
336 grouping nxm-nx-nshc-4-grouping {
337 container nxm-nx-nshc-4 {
346 grouping nxm-nx-ct-state-grouping {
347 container nxm-nx-ct-state {
356 grouping nxm-nx-ct-zone-grouping {
357 container nxm-nx-ct-zone {
363 grouping nxm-of-ip-dst-grouping {
364 container nxm-of-ip-dst {
365 uses ipv4-address-grouping;
368 grouping nxm-of-ip-src-grouping {
369 container nxm-of-ip-src {
370 uses ipv4-address-grouping;
373 grouping nxm-of-icmp-type-grouping {
374 container nxm-of-icmp-type {
380 grouping nxm-nx-nsh-flags-grouping {
381 container nxm-nx-nsh-flags {
390 grouping nxm-nx-nsh-mdtype-grouping {
391 container nxm-nx-nsh-mdtype {
397 grouping nxm-nx-nsh-np-grouping {
398 container nxm-nx-nsh-np {
404 grouping nxm-nx-nsh-ttl-grouping {
405 container nxm-nx-nsh-ttl {
411 grouping nxm-nx-ct-mark-grouping {
412 container nxm-nx-ct-mark {
421 grouping nxm-nx-ct-tp-src-grouping {
422 container nxm-nx-ct-tp-src {
431 grouping nxm-nx-ct-tp-dst-grouping {
432 container nxm-nx-ct-tp-dst {
441 grouping nxm-nx-pkt-mark-grouping {
442 container nxm-nx-pkt-mark {
452 grouping all-matches-grouping {
453 uses nxm-nx-reg-grouping;
454 uses nxm-nx-tun-id-grouping;
455 uses nxm-nx-arp-sha-grouping;
456 uses nxm-nx-arp-tha-grouping;
457 uses nxm-of-arp-op-grouping;
458 uses nxm-of-arp-spa-grouping;
459 uses nxm-of-arp-tpa-grouping;
460 uses nxm-of-in-port-grouping;
461 uses nxm-nx-tun-ipv4-dst-grouping;
462 uses nxm-nx-tun-ipv4-src-grouping;
463 uses nxm-of-eth-src-grouping;
464 uses nxm-of-eth-dst-grouping;
465 uses nxm-of-eth-type-grouping;
466 uses nxm-nx-nsp-grouping;
467 uses nxm-nx-nsi-grouping;
468 uses nxm-nx-nshc-1-grouping;
469 uses nxm-nx-nshc-2-grouping;
470 uses nxm-nx-nshc-3-grouping;
471 uses nxm-nx-nshc-4-grouping;
472 uses nxm-nx-nsh-flags-grouping;
473 uses nxm-nx-nsh-mdtype-grouping;
474 uses nxm-nx-nsh-np-grouping;
475 uses nxm-nx-nsh-ttl-grouping;
476 uses nxm-of-tcp-src-grouping;
477 uses nxm-of-tcp-dst-grouping;
478 uses nxm-of-udp-src-grouping;
479 uses nxm-of-udp-dst-grouping;
480 uses nxm-nx-ct-state-grouping;
481 uses nxm-nx-ct-zone-grouping;
482 uses nxm-of-ip-dst-grouping;
483 uses nxm-of-ip-src-grouping;
484 uses nxm-of-icmp-type-grouping;
485 uses nxm-nx-ct-mark-grouping;
486 uses nxm-nx-ct-tp-src-grouping;
487 uses nxm-nx-ct-tp-dst-grouping;
488 uses nxm-nx-pkt-mark-grouping;
491 // MATCH augmentations
493 augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
494 ext:augment-identifier "nx-aug-match-rpc-add-flow";
495 uses all-matches-grouping;
497 augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
498 ext:augment-identifier "nx-aug-match-rpc-remove-flow";
499 uses all-matches-grouping;
501 augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
502 ext:augment-identifier "nx-aug-match-rpc-update-flow-original";
503 uses all-matches-grouping;
505 augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
506 ext:augment-identifier "nx-aug-match-rpc-update-flow-updated";
507 uses all-matches-grouping;
511 augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match/ext-gen:extension-list/ext-gen:extension" {
512 ext:augment-identifier "nx-aug-match-nodes-node-table-flow";
513 uses all-matches-grouping;
515 augment "/sal-packet:packet-in-message/sal-packet:match/ext-gen:extension-list/ext-gen:extension" {
516 ext:augment-identifier "nx-aug-match-packet-in-message";
517 uses all-matches-grouping;
521 augment "/sal-flow:switch-flow-removed/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
522 ext:augment-identifier "nx-aug-match-notif-switch-flow-removed";
523 uses all-matches-grouping;
525 augment "/sal-packet:packet-received/sal-packet:match/ext-gen:extension-list/ext-gen:extension" {
526 ext:augment-identifier "nx-aug-match-notif-packet-in";
527 uses all-matches-grouping;
529 augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:match/ext-gen:extension-list/ext-gen:extension" {
530 ext:augment-identifier "nx-aug-match-notif-update-flow-stats";
531 uses all-matches-grouping;
533 augment "/odl-direct-stats:get-flow-statistics/odl-direct-stats:output/odl-direct-stats:flow-and-statistics-map-list/odl-direct-stats:match/ext-gen:extension-list/ext-gen:extension" {
534 ext:augment-identifier "nx-aug-match-rpc-get-flow-stats";
535 uses all-matches-grouping;