1 module opendaylight-table-types {
2 namespace "urn:opendaylight:table:types";
5 import opendaylight-flow-types {prefix flow;revision-date "2013-10-26";}
6 import opendaylight-action-types {prefix action;}
8 revision "2013-10-26" {
9 description "Initial revision of table service";
17 type instance-identifier;
20 typedef table-config {
27 identity match-field {
28 description "Base identity for match Fields";
33 description "Match for Switch input port.";
35 identity in_phy_port {
37 description "Match for Switch physical input port.";
41 description "Match for Metadata passed between tables.";
45 description "Match for Ethernet destination address.";
49 description "Match for Ethernet source address.";
53 description "Match for Ethernet frame type.";
57 description "Match for VLAN id.";
61 description "Match for VLAN priority.";
65 description "Match for IP DSCP (6 bits in ToS field).";
69 description "Match for IP ECN (2 bits in ToS field).";
73 description "Match for IP protocol.";
77 description "Match for IPv4 source address.";
81 description "Match for IPv4 destination address.";
85 description "Match for TCP source port.";
89 description "Match for TCP destination port.";
93 description "Match for UDP source port.";
97 description "Match for UDP destination port.";
101 description "Match for SCTP source port.";
105 description "Match for SCTP destination port.";
107 identity icmpv4_type {
109 description "Match for ICMP type.";
111 identity icmpv4_code {
113 description "Match for ICMP code.";
117 description "Match for ARP opcode.";
121 description "Match for ARP source IPv4 address.";
125 description "Match for ARP target IPv4 address.";
129 description "Match for ARP source hardware address.";
133 description "Match for ARP target hardware address.";
137 description "Match for IPv6 source address.";
141 description "Match for IPv6 destination address.";
143 identity ipv6_flabel {
145 description "Match for IPv6 Flow Label";
147 identity icmpv6_type {
149 description "Match for ICMPv6 type.";
151 identity icmpv6_code {
153 description "Match for ICMPv6 code.";
155 identity ipv6_nd_target {
157 description "Match for Target address for ND.";
159 identity ipv6_nd_sll {
161 description "Match for Source link-layer for ND.";
163 identity ipv6_nd_tll {
165 description "Match for Target link-layer for ND.";
167 identity mpls_label {
169 description "Match for MPLS label.";
173 description "Match for MPLS TC.";
177 description "Match for MPLS BoS bit.";
181 description "Match for PBB I-SID.";
185 description "Match for Logical Port Metadata";
187 identity ipv6_exthdr {
189 description "Match for IPv6 Extension Header pseudo-field";
192 grouping set-field-match {
193 list set-field-match {
205 grouping table-feature-prop-type {
206 choice table-feature-prop-type {
208 container instructions {
209 uses flow:instruction-list;
213 case instructions-miss {
214 container instructions-miss {
215 uses flow:instruction-list;
221 leaf-list table-ids {
227 case next-table-miss {
228 container tables-miss {
229 leaf-list table-ids {
236 container write-actions {
237 uses action:action-list;
241 case write-actions-miss {
242 container write-actions-miss {
243 uses action:action-list;
248 container apply-actions {
249 uses action:action-list;
253 case apply-actions-miss {
254 container apply-actions-miss {
255 uses action:action-list;
260 container match-setfield {
261 uses set-field-match;
266 container wildcard-setfield {
267 uses set-field-match;
271 case write-setfield {
272 container write-setfield {
273 uses set-field-match;
277 case write-setfield-miss {
278 container write-setfield-miss {
279 uses set-field-match;
283 case apply-setfield {
284 container apply-setfield {
285 uses set-field-match;
289 case apply-setfield-miss {
290 container apply-setfield-miss {
291 uses set-field-match;
297 grouping table-features {
298 list table-features {
306 description "Name of the table";
310 leaf metadata-match {
311 description "Bits of metadata table can match";
315 leaf metadata-write {
316 description "Bits of metadata table can write";
321 description "Max number of entries supported";
326 description "Bitmap of OFPTC_ values";
330 container table-properties {
331 list table-feature-properties {
336 uses table-feature-prop-type;