NXM_NX_NSP openflow extended match support.
[ovsdb.git] / of-extension / nx-sal / src / main / yang / ovs-nx-sal-match.yang
1 module ovs-nx-sal-match {
2     yang-version 1;
3
4     namespace "urn:opendaylight:ovs:nx:sal:match";
5     prefix "ovs-nx-sal-match";
6
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 nicira-match {prefix nicira-match;revision-date "2014-04-21";}
15     import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
16     import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
17
18     description
19         "OVS Openflow NX match extensions.";
20
21     revision "2014-07-14" {
22         description "Initial revision";
23     }
24
25     identity nxm-nx-nsp-key {
26         base ext-gen:extension-key;
27     }
28
29     grouping nxm-nx-nsp-grouping {
30         container nxm-nx-nsp {
31             leaf value {
32                 type uint32;
33             }
34         }
35     }
36
37     grouping all-matches-grouping {
38         uses nxm-nx-nsp-grouping;
39     }
40
41     // MATCH augmentations
42     // RPCS
43     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
44         ext:augment-identifier "nx-aug-match-rpc-add-flow";
45         uses all-matches-grouping;
46     }
47     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
48         ext:augment-identifier "nx-aug-match-rpc-remove-flow";
49         uses all-matches-grouping;
50     }
51     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
52         ext:augment-identifier "nx-aug-match-rpc-update-flow-original";
53         uses all-matches-grouping;
54     }
55     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
56         ext:augment-identifier "nx-aug-match-rpc-update-flow-updated";
57         uses all-matches-grouping;
58     }
59
60     // DATA
61     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match/ext-gen:extension-list/ext-gen:extension" {
62         ext:augment-identifier "nx-aug-match-nodes-node-table-flow";
63         uses all-matches-grouping;
64     }
65
66     // NOTIFICATIONS
67     augment "/sal-flow:switch-flow-removed/sal-flow:match/ext-gen:extension-list/ext-gen:extension" {
68         ext:augment-identifier "nx-aug-match-notif-switch-flow-removed";
69         uses all-matches-grouping;
70     }
71     augment "/sal-packet:packet-received/sal-packet:match/ext-gen:extension-list/ext-gen:extension" {
72         ext:augment-identifier "nx-aug-match-notif-packet-in";
73         uses all-matches-grouping;
74     }
75     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" {
76         ext:augment-identifier "nx-aug-match-notif-update-flow-stats";
77         uses all-matches-grouping;
78     }
79 }