1 module openflow-extensible-match {
2 namespace "urn:opendaylight:openflow:oxm";
5 import ietf-yang-types {prefix yang;}
6 import ietf-inet-types {prefix inet;}
7 import openflow-types {prefix oft;}
9 revision "2013-07-31" {
10 description "OpenFlow 1.3 - match model";
13 identity oxm-match-type {
15 "The OpenFlow Extensible Match type must be supported by all OpenFlow
17 base oft:match-type-base;
22 description "Base identity for OXM classes";
25 identity nxm-0-class {
26 description "Backward compatibility with NXM";
29 identity nxm-1-class {
30 description "Backward compatibility with NXM";
33 identity openflow-basic-class {
34 description "Basic class for OpenFlow";
37 identity experimenter-class {
39 "Marks Experimenter match type class.
40 All experimenter match classes MUST use this class as a base.";
45 identity match-field {
46 description "Base identity for OXM Fields";
51 description "Match for Switch input port.";
53 identity in_phy_port {
55 description "Match for Switch physical input port.";
59 description "Match for Metadata passed between tables.";
63 description "Match for Ethernet destination address.";
67 description "Match for Ethernet source address.";
71 description "Match for Ethernet frame type.";
75 description "Match for VLAN id.";
79 description "Match for VLAN priority.";
83 description "Match for IP DSCP (6 bits in ToS field).";
87 description "Match for IP ECN (2 bits in ToS field).";
91 description "Match for IP protocol.";
95 description "Match for IPv4 source address.";
99 description "Match for IPv4 destination address.";
103 description "Match for TCP source port.";
107 description "Match for TCP destination port.";
111 description "Match for UDP source port.";
115 description "Match for UDP destination port.";
119 description "Match for SCTP source port.";
123 description "Match for SCTP destination port.";
125 identity icmpv4_type {
127 description "Match for ICMP type.";
129 identity icmpv4_code {
131 description "Match for ICMP code.";
135 description "Match for ARP opcode.";
139 description "Match for ARP source IPv4 address.";
143 description "Match for ARP target IPv4 address.";
147 description "Match for ARP source hardware address.";
151 description "Match for ARP target hardware address.";
155 description "Match for IPv6 source address.";
159 description "Match for IPv6 destination address.";
161 identity ipv6_flabel {
163 description "Match for IPv6 Flow Label";
165 identity icmpv6_type {
167 description "Match for ICMPv6 type.";
169 identity icmpv6_code {
171 description "Match for ICMPv6 code.";
173 identity ipv6_nd_target {
175 description "Match for Target address for ND.";
177 identity ipv6_nd_sll {
179 description "Match for Source link-layer for ND.";
181 identity ipv6_nd_tll {
183 description "Match for Target link-layer for ND.";
185 identity mpls_label {
187 description "Match for MPLS label.";
191 description "Match for MPLS TC.";
195 description "Match for MPLS BoS bit.";
199 description "Match for PBB I-SID.";
203 description "Match for Logical Port Metadata";
205 identity ipv6_exthdr {
207 description "Match for IPv6 Extension Header pseudo-field";
210 container oxm-container {
214 grouping oxm-fields {
216 key "oxm-class oxm-match-field has-mask";
222 leaf oxm-match-field {
234 grouping match-v10-grouping {
235 container match-v10 {
237 type oft:flow-wildcards-v10;
249 type yang:mac-address;
252 type yang:mac-address;
270 type inet:ipv4-address;
273 type inet:ipv4-address;