2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 module openflow-extensible-match {
10 namespace "urn:opendaylight:openflow:oxm";
13 import ietf-yang-types {prefix yang;}
14 import ietf-inet-types {prefix inet;}
15 import openflow-types {prefix oft;}
17 revision "2013-07-31" {
18 description "OpenFlow 1.3 - match model";
21 identity oxm-match-type {
23 "The OpenFlow Extensible Match type must be supported by all OpenFlow
25 base oft:match-type-base;
30 description "Base identity for OXM classes";
33 identity nxm-0-class {
34 description "Backward compatibility with NXM";
37 identity nxm-1-class {
38 description "Backward compatibility with NXM";
41 identity openflow-basic-class {
42 description "Basic class for OpenFlow";
45 identity experimenter-class {
47 "Marks Experimenter match type class.
48 All experimenter match classes MUST use this class as a base.";
53 identity match-field {
54 description "Base identity for OXM Fields";
59 description "Match for Switch input port.";
61 identity in_phy_port {
63 description "Match for Switch physical input port.";
67 description "Match for Metadata passed between tables.";
71 description "Match for Ethernet destination address.";
75 description "Match for Ethernet source address.";
79 description "Match for Ethernet frame type.";
83 description "Match for VLAN id.";
87 description "Match for VLAN priority.";
91 description "Match for IP DSCP (6 bits in ToS field).";
95 description "Match for IP ECN (2 bits in ToS field).";
99 description "Match for IP protocol.";
103 description "Match for IPv4 source address.";
107 description "Match for IPv4 destination address.";
111 description "Match for TCP source port.";
115 description "Match for TCP destination port.";
119 description "Match for UDP source port.";
123 description "Match for UDP destination port.";
127 description "Match for SCTP source port.";
131 description "Match for SCTP destination port.";
133 identity icmpv4_type {
135 description "Match for ICMP type.";
137 identity icmpv4_code {
139 description "Match for ICMP code.";
143 description "Match for ARP opcode.";
147 description "Match for ARP source IPv4 address.";
151 description "Match for ARP target IPv4 address.";
155 description "Match for ARP source hardware address.";
159 description "Match for ARP target hardware address.";
163 description "Match for IPv6 source address.";
167 description "Match for IPv6 destination address.";
169 identity ipv6_flabel {
171 description "Match for IPv6 Flow Label";
173 identity icmpv6_type {
175 description "Match for ICMPv6 type.";
177 identity icmpv6_code {
179 description "Match for ICMPv6 code.";
181 identity ipv6_nd_target {
183 description "Match for Target address for ND.";
185 identity ipv6_nd_sll {
187 description "Match for Source link-layer for ND.";
189 identity ipv6_nd_tll {
191 description "Match for Target link-layer for ND.";
193 identity mpls_label {
195 description "Match for MPLS label.";
199 description "Match for MPLS TC.";
203 description "Match for MPLS BoS bit.";
207 description "Match for PBB I-SID.";
211 description "Match for Logical Port Metadata";
213 identity ipv6_exthdr {
215 description "Match for IPv6 Extension Header pseudo-field";
218 container oxm-container {
222 grouping oxm-fields {
224 key "oxm-class oxm-match-field has-mask";
230 leaf oxm-match-field {
242 grouping match-v10-grouping {
243 container match-v10 {
245 type oft:flow-wildcards-v10;
257 type yang:mac-address;
260 type yang:mac-address;
278 type inet:ipv4-address;
281 type inet:ipv4-address;