1 module opendaylight-table-types {
2 namespace "urn:opendaylight:table:types";
5 import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
6 import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
7 import opendaylight-flow-types {prefix flow;revision-date "2013-10-26";}
8 import opendaylight-action-types {prefix action;}
10 revision "2013-10-26" {
11 description "Initial revision of table service";
15 type instance-identifier;
18 typedef table-config {
25 identity match-field {
26 description "Base identity for match Fields";
31 description "Match for Switch input port.";
33 identity in_phy_port {
35 description "Match for Switch physical input port.";
39 description "Match for Metadata passed between tables.";
43 description "Match for Ethernet destination address.";
47 description "Match for Ethernet source address.";
51 description "Match for Ethernet frame type.";
55 description "Match for VLAN id.";
59 description "Match for VLAN priority.";
63 description "Match for IP DSCP (6 bits in ToS field).";
67 description "Match for IP ECN (2 bits in ToS field).";
71 description "Match for IP protocol.";
75 description "Match for IPv4 source address.";
79 description "Match for IPv4 destination address.";
83 description "Match for TCP source port.";
87 description "Match for TCP destination port.";
91 description "Match for UDP source port.";
95 description "Match for UDP destination port.";
99 description "Match for SCTP source port.";
103 description "Match for SCTP destination port.";
105 identity icmpv4_type {
107 description "Match for ICMP type.";
109 identity icmpv4_code {
111 description "Match for ICMP code.";
115 description "Match for ARP opcode.";
119 description "Match for ARP source IPv4 address.";
123 description "Match for ARP target IPv4 address.";
127 description "Match for ARP source hardware address.";
131 description "Match for ARP target hardware address.";
135 description "Match for IPv6 source address.";
139 description "Match for IPv6 destination address.";
141 identity ipv6_flabel {
143 description "Match for IPv6 Flow Label";
145 identity icmpv6_type {
147 description "Match for ICMPv6 type.";
149 identity icmpv6_code {
151 description "Match for ICMPv6 code.";
153 identity ipv6_nd_target {
155 description "Match for Target address for ND.";
157 identity ipv6_nd_sll {
159 description "Match for Source link-layer for ND.";
161 identity ipv6_nd_tll {
163 description "Match for Target link-layer for ND.";
165 identity mpls_label {
167 description "Match for MPLS label.";
171 description "Match for MPLS TC.";
175 description "Match for MPLS BoS bit.";
179 description "Match for PBB I-SID.";
183 description "Match for Logical Port Metadata";
185 identity ipv6_exthdr {
187 description "Match for IPv6 Extension Header pseudo-field";
190 grouping set-field-match {
191 list set-field-match {
203 grouping table-feature-prop-type {
204 choice table-feature-prop-type {
206 container instructions {
207 uses flow:instruction-list;
211 case instructions-miss {
212 container instructions-miss {
213 uses flow:instruction-list;
219 leaf-list table-ids {
225 case next-table-miss {
227 leaf-list table-ids {
234 container write-actions {
235 uses action:action-list;
239 case write-actions-miss {
240 container write-actions-miss {
241 uses action:action-list;
246 container apply-actions {
247 uses action:action-list;
251 case apply-actions-miss {
252 container apply-actions-miss {
253 uses action:action-list;
258 uses set-field-match;
262 uses set-field-match;
265 case write-setfield {
266 uses set-field-match;
269 case write-setfield-miss {
270 uses set-field-match;
273 case apply-setfield {
274 uses set-field-match;
277 case apply-setfield-miss {
278 uses set-field-match;
283 grouping table-features {
284 list table-features {
292 description "Name of the table";
296 leaf metadata-match {
297 description "Bits of metadata table can match";
301 leaf metadata-write {
302 description "Bits of metadata table can write";
307 description "Max number of entries supported";
312 description "Bitmap of OFPTC_ values";
316 container table-properties {
317 list table-feature-properties {
322 uses table-feature-prop-type;