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 {
206 grouping table-feature-prop-type {
207 choice table-feature-prop-type {
209 container instructions {
210 uses flow:instruction-list;
214 case instructions-miss {
215 container instructions-miss {
216 uses flow:instruction-list;
222 leaf-list table-ids {
228 case next-table-miss {
229 container tables-miss {
230 leaf-list table-ids {
237 container write-actions {
238 uses action:action-list;
242 case write-actions-miss {
243 container write-actions-miss {
244 uses action:action-list;
249 container apply-actions {
250 uses action:action-list;
254 case apply-actions-miss {
255 container apply-actions-miss {
256 uses action:action-list;
261 container match-setfield {
262 uses set-field-match;
267 container wildcard-setfield {
268 uses set-field-match;
272 case write-setfield {
273 container write-setfield {
274 uses set-field-match;
278 case write-setfield-miss {
279 container write-setfield-miss {
280 uses set-field-match;
284 case apply-setfield {
285 container apply-setfield {
286 uses set-field-match;
290 case apply-setfield-miss {
291 container apply-setfield-miss {
292 uses set-field-match;
298 grouping table-features {
299 list table-features {
307 description "Name of the table";
311 leaf metadata-match {
312 description "Bits of metadata table can match";
316 leaf metadata-write {
317 description "Bits of metadata table can write";
322 description "Max number of entries supported";
327 description "Bitmap of OFPTC_ values";
331 container table-properties {
332 list table-feature-properties {
337 uses table-feature-prop-type;