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";
19 type instance-identifier;
22 typedef table-config {
29 identity match-field {
30 description "Base identity for match Fields";
35 description "Match for Switch input port.";
37 identity in_phy_port {
39 description "Match for Switch physical input port.";
43 description "Match for Metadata passed between tables.";
47 description "Match for Ethernet destination address.";
51 description "Match for Ethernet source address.";
55 description "Match for Ethernet frame type.";
59 description "Match for VLAN id.";
63 description "Match for VLAN priority.";
67 description "Match for IP DSCP (6 bits in ToS field).";
71 description "Match for IP ECN (2 bits in ToS field).";
75 description "Match for IP protocol.";
79 description "Match for IPv4 source address.";
83 description "Match for IPv4 destination address.";
87 description "Match for TCP source port.";
91 description "Match for TCP destination port.";
95 description "Match for UDP source port.";
99 description "Match for UDP destination port.";
103 description "Match for SCTP source port.";
107 description "Match for SCTP destination port.";
109 identity icmpv4_type {
111 description "Match for ICMP type.";
113 identity icmpv4_code {
115 description "Match for ICMP code.";
119 description "Match for ARP opcode.";
123 description "Match for ARP source IPv4 address.";
127 description "Match for ARP target IPv4 address.";
131 description "Match for ARP source hardware address.";
135 description "Match for ARP target hardware address.";
139 description "Match for IPv6 source address.";
143 description "Match for IPv6 destination address.";
145 identity ipv6_flabel {
147 description "Match for IPv6 Flow Label";
149 identity icmpv6_type {
151 description "Match for ICMPv6 type.";
153 identity icmpv6_code {
155 description "Match for ICMPv6 code.";
157 identity ipv6_nd_target {
159 description "Match for Target address for ND.";
161 identity ipv6_nd_sll {
163 description "Match for Source link-layer for ND.";
165 identity ipv6_nd_tll {
167 description "Match for Target link-layer for ND.";
169 identity mpls_label {
171 description "Match for MPLS label.";
175 description "Match for MPLS TC.";
179 description "Match for MPLS BoS bit.";
183 description "Match for PBB I-SID.";
187 description "Match for Logical Port Metadata";
189 identity ipv6_exthdr {
191 description "Match for IPv6 Extension Header pseudo-field";
194 grouping set-field-match {
195 list set-field-match {
207 grouping table-feature-prop-type {
208 choice table-feature-prop-type {
210 container instructions {
211 uses flow:instruction-list;
215 case instructions-miss {
216 container instructions-miss {
217 uses flow:instruction-list;
223 leaf-list table-ids {
229 case next-table-miss {
231 leaf-list table-ids {
238 container write-actions {
239 uses action:action-list;
243 case write-actions-miss {
244 container write-actions-miss {
245 uses action:action-list;
250 container apply-actions {
251 uses action:action-list;
255 case apply-actions-miss {
256 container apply-actions-miss {
257 uses action:action-list;
262 uses set-field-match;
266 uses set-field-match;
269 case write-setfield {
270 uses set-field-match;
273 case write-setfield-miss {
274 uses set-field-match;
277 case apply-setfield {
278 uses set-field-match;
281 case apply-setfield-miss {
282 uses set-field-match;
287 grouping table-features {
288 list table-features {
296 description "Name of the table";
300 leaf metadata-match {
301 description "Bits of metadata table can match";
305 leaf metadata-write {
306 description "Bits of metadata table can write";
311 description "Max number of entries supported";
316 description "Bitmap of OFPTC_ values";
320 container table-properties {
321 list table-feature-properties {
326 uses table-feature-prop-type;