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";
193 description "TCP Flag Match";
196 grouping set-field-match {
197 list set-field-match {
210 grouping table-feature-prop-type {
211 choice table-feature-prop-type {
213 container instructions {
214 uses flow:instruction-list;
218 case instructions-miss {
219 container instructions-miss {
220 uses flow:instruction-list;
226 leaf-list table-ids {
232 case next-table-miss {
233 container tables-miss {
234 leaf-list table-ids {
241 container write-actions {
242 uses action:action-list;
246 case write-actions-miss {
247 container write-actions-miss {
248 uses action:action-list;
253 container apply-actions {
254 uses action:action-list;
258 case apply-actions-miss {
259 container apply-actions-miss {
260 uses action:action-list;
265 container match-setfield {
266 uses set-field-match;
271 container wildcard-setfield {
272 uses set-field-match;
276 case write-setfield {
277 container write-setfield {
278 uses set-field-match;
282 case write-setfield-miss {
283 container write-setfield-miss {
284 uses set-field-match;
288 case apply-setfield {
289 container apply-setfield {
290 uses set-field-match;
294 case apply-setfield-miss {
295 container apply-setfield-miss {
296 uses set-field-match;
302 grouping table-features {
303 list table-features {
311 description "Name of the table";
315 leaf metadata-match {
316 description "Bits of metadata table can match";
320 leaf metadata-write {
321 description "Bits of metadata table can write";
326 description "Max number of entries supported";
331 description "Bitmap of OFPTC_ values";
335 container table-properties {
336 list table-feature-properties {
341 uses table-feature-prop-type;