Introducing Openflow NX Extension infrastructure and NX_RESUBMIT action in ovsdb...
[ovsdb.git] / of-extension / nx-sal / src / main / yang / ovs-nx-sal-action.yang
1 module ovs-nx-sal-action {
2     yang-version 1;
3
4     namespace "urn:opendaylight:ovs:nx:sal:action";
5     prefix "ovs-nx-sal-action";
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 sal-group {prefix sal-group;revision-date "2013-09-18";}
12     import packet-processing {prefix sal-packet;revision-date "2013-07-09";}
13     import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";}
14     import opendaylight-group-statistics {prefix odl-group-stats;revision-date "2013-11-11";}
15     import nicira-match {prefix nicira-match;revision-date "2014-04-21";}
16     import openflowplugin-extension-general {prefix ext-gen;revision-date "2014-07-14";}
17     import openflow-action {prefix ofaction;revision-date "2013-07-31";}
18
19     description
20         "Nicira openflow action extensions.";
21
22     revision "2014-07-14" {
23         description "Initial revision";
24     }
25     grouping nx-action-resubmit-grouping {
26         container nx-resubmit {
27             description "Re-searches OpenFlow flow table (or the table whose number is specified by table) 
28             with the in-port field replaced  by port (if port is specified) and executes the actions found";
29             leaf in-port {
30                 type uint16;
31                 default 0xfff8; // OFPP_INPORT
32             }
33             leaf table {
34                 type uint8 {
35                     range "0 .. 255";
36                 }
37                 default 255; // Current Table
38             }
39         }
40     }
41
42     // ACTION augmentations
43
44     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
45         case nx-action-resubmit-rpc-add-flow-write-actions-case {
46             uses nx-action-resubmit-grouping;
47         }
48     }
49
50     augment "/sal-flow:add-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
51         case nx-action-resubmit-rpc-add-flow-apply-actions-case {
52             uses nx-action-resubmit-grouping;
53         }
54     }
55     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
56         case "nx-action-resubmit-rpc-remove-flow-write-actions-case" {
57             uses nx-action-resubmit-grouping;
58         }
59     }
60     augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
61         case "nx-action-resubmit-rpc-remove-flow-apply-actions-case" {
62             uses nx-action-resubmit-grouping;
63         }
64     }
65     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
66         case "nx-action-resubmit-rpc-update-flow-original-write-actions-case" {
67             uses nx-action-resubmit-grouping;
68         }
69     }
70
71     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
72         case "nx-action-resubmit-rpc-update-flow-original-apply-actions-case" {
73             uses nx-action-resubmit-grouping;
74         }
75     }
76
77     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:write-actions-case/sal-flow:write-actions/sal-flow:action/sal-flow:action" {
78         case "nx-action-resubmit-rpc-update-flow-updated-write-actions-case" {
79             uses nx-action-resubmit-grouping;
80         }
81     }
82     augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:instructions/sal-flow:instruction/sal-flow:instruction/sal-flow:apply-actions-case/sal-flow:apply-actions/sal-flow:action/sal-flow:action" {
83         case "nx-action-resubmit-rpc-update-flow-updated-apply-actions-case" {
84             uses nx-action-resubmit-grouping;
85         }
86     }
87     augment "/sal-group:add-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
88         case "nx-action-resubmit-rpc-add-group-case" {
89             uses nx-action-resubmit-grouping;
90         }
91     }
92     augment "/sal-group:remove-group/sal-group:input/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
93         case "nx-action-resubmit-rpc-remove-group-case" {
94             uses nx-action-resubmit-grouping;
95         }
96     }
97     augment "/sal-group:update-group/sal-group:input/sal-group:original-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
98         case "nx-action-resubmit-rpc-update-group-original-case" {
99             uses nx-action-resubmit-grouping;
100         }
101     }
102     augment "/sal-group:update-group/sal-group:input/sal-group:updated-group/sal-group:buckets/sal-group:bucket/sal-group:action/sal-group:action" {
103         case "nx-action-resubmit-rpc-update-group-updated-case" {
104             uses nx-action-resubmit-grouping;
105         }
106     }
107     augment "/sal-packet:transmit-packet/sal-packet:input/sal-packet:action/sal-packet:action" {
108         case "nx-action-resubmit-rpc-transmit-packet-case" {
109             uses nx-action-resubmit-grouping;
110         }
111     }
112     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:write-actions-case/fni:write-actions/fni:action/fni:action" {
113         case "nx-action-resubmit-nodes-node-table-flow-write-actions-case" {
114             uses nx-action-resubmit-grouping;
115         }
116     }
117     augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:instructions/fni:instruction/fni:instruction/fni:apply-actions-case/fni:apply-actions/fni:action/fni:action" {
118         case "nx-action-resubmit-nodes-node-table-flow-apply-actions-case" {
119             uses nx-action-resubmit-grouping;
120         }
121     }
122     augment "/inv:nodes/inv:node/fni:group/fni:buckets/fni:bucket/fni:action/fni:action" {
123         case "nx-action-resubmit-nodes-node-group-buckets-bucket-actions-case" {
124             uses nx-action-resubmit-grouping;
125         }
126     }
127     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:write-actions-case/odl-flow-stats:write-actions/odl-flow-stats:action/odl-flow-stats:action" {
128         case "nx-action-resubmit-notif-flows-statistics-update-write-actions-case" {
129             uses nx-action-resubmit-grouping;
130         }
131     }
132     augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:instructions/odl-flow-stats:instruction/odl-flow-stats:instruction/odl-flow-stats:apply-actions-case/odl-flow-stats:apply-actions/odl-flow-stats:action/odl-flow-stats:action" {
133         case "nx-action-resubmit-notif-flows-statistics-update-apply-actions-case" {
134             uses nx-action-resubmit-grouping;
135         }
136     }
137     augment "/odl-group-stats:group-desc-stats-updated/odl-group-stats:group-desc-stats/odl-group-stats:buckets/odl-group-stats:bucket/odl-group-stats:action/odl-group-stats:action" {
138         case "nx-action-resubmit-notif-group-desc-stats-updated-case" {
139             uses nx-action-resubmit-grouping;
140         }
141     }
142 }