Remove trailing whitespace
[openflowjava.git] / openflow-protocol-api / src / main / yang / openflow-extensible-match.yang
index a0761a703aaa5cd9785f997b9d994c919e295b87..e1f5514faf74c001962da2aa9856061a62fc3a53 100644 (file)
@@ -1,4 +1,12 @@
-module openflow-extensible-match {
+/*
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+ module openflow-extensible-match {
     namespace "urn:opendaylight:openflow:oxm";
     prefix "oxm";
 
@@ -11,34 +19,34 @@ module openflow-extensible-match {
     }
 
     identity oxm-match-type {
-        description 
+        description
            "The OpenFlow Extensible Match type must be supported by all OpenFlow
             switches.";
         base oft:match-type-base;
     }
-    
+
     // oxm classes
-        identity clazz {
+        identity oxm-class-base {
             description "Base identity for OXM classes";
         }
 
         identity nxm-0-class {
-            description "Backward compatibility with NXM";
-            base clazz;
+            description "Match class for backward compatibility with NXM";
+            base oxm-class-base;
         }
         identity nxm-1-class {
-            description "Backward compatibility with NXM";
-            base clazz;
+            description "Match class for backward compatibility with NXM";
+            base oxm-class-base;
         }
         identity openflow-basic-class {
             description "Basic class for OpenFlow";
-            base clazz;
+            base oxm-class-base;
         }
         identity experimenter-class {
-            description 
+            description
                 "Marks Experimenter match type class.
                 All experimenter match classes MUST use this class as a base.";
-            base clazz;
+            base oxm-class-base;
         }
 
     // field types
@@ -48,174 +56,187 @@ module openflow-extensible-match {
 
         identity in_port {
             base match-field;
-            description "Match for Switch input port.";
+            description "OXM field for Switch input port.";
         }
         identity in_phy_port {
             base match-field;
-            description "Match for Switch physical input port.";
+            description "OXM field for Switch physical input port.";
         }
         identity metadata {
             base match-field;
-            description "Match for Metadata passed between tables.";
+            description "OXM field for Metadata passed between tables.";
         }
         identity eth_dst {
             base match-field;
-            description "Match for Ethernet destination address.";
+            description "OXM field for Ethernet destination address.";
         }
         identity eth_src {
             base match-field;
-            description "Match for Ethernet source address.";
+            description "OXM field for Ethernet source address.";
         }
         identity eth_type {
             base match-field;
-            description "Match for Ethernet frame type.";
+            description "OXM field for Ethernet frame type.";
         }
         identity vlan_vid {
             base match-field;
-            description "Match for VLAN id.";
+            description "OXM field for VLAN id.";
         }
         identity vlan_pcp {
             base match-field;
-            description "Match for VLAN priority.";
+            description "OXM field for VLAN priority.";
         }
         identity ip_dscp {
             base match-field;
-            description "Match for IP DSCP (6 bits in ToS field).";
+            description "OXM field for IP DSCP (6 bits in ToS field).";
         }
         identity ip_ecn {
             base match-field;
-            description "Match for IP ECN (2 bits in ToS field).";
+            description "OXM field for IP ECN (2 bits in ToS field).";
         }
         identity ip_proto {
             base match-field;
-            description "Match for IP protocol.";
+            description "OXM field for IP protocol.";
         }
         identity ipv4_src {
             base match-field;
-            description "Match for IPv4 source address.";
+            description "OXM field for IPv4 source address.";
         }
         identity ipv4_dst {
             base match-field;
-            description "Match for IPv4 destination address.";
+            description "OXM field for IPv4 destination address.";
         }
         identity tcp_src {
             base match-field;
-            description "Match for TCP source port.";
+            description "OXM field for TCP source port.";
         }
         identity tcp_dst {
             base match-field;
-            description "Match for TCP destination port.";
+            description "OXM field for TCP destination port.";
         }
         identity udp_src {
             base match-field;
-            description "Match for UDP source port.";
+            description "OXM field for UDP source port.";
         }
         identity udp_dst {
             base match-field;
-            description "Match for UDP destination port.";
+            description "OXM field for UDP destination port.";
         }
         identity sctp_src {
             base match-field;
-            description "Match for SCTP source port.";
+            description "OXM field for SCTP source port.";
         }
         identity sctp_dst {
             base match-field;
-            description "Match for SCTP destination port.";
+            description "OXM field for SCTP destination port.";
         }
         identity icmpv4_type {
             base match-field;
-            description "Match for ICMP type.";
+            description "OXM field for ICMP type.";
         }
         identity icmpv4_code {
             base match-field;
-            description "Match for ICMP code.";
+            description "OXM field for ICMP code.";
         }
         identity arp_op {
             base match-field;
-            description "Match for ARP opcode.";
+            description "OXM field for ARP opcode.";
         }
         identity arp_spa {
             base match-field;
-            description "Match for ARP source IPv4 address.";
+            description "OXM field for ARP source IPv4 address.";
         }
         identity arp_tpa {
             base match-field;
-            description "Match for ARP target IPv4 address.";
+            description "OXM field for ARP target IPv4 address.";
         }
         identity arp_sha {
             base match-field;
-            description "Match for ARP source hardware address.";
+            description "OXM field for ARP source hardware address.";
         }
         identity arp_tha {
             base match-field;
-            description "Match for ARP target hardware address.";
+            description "OXM field for ARP target hardware address.";
         }
         identity ipv6_src {
             base match-field;
-            description "Match for IPv6 source address.";
+            description "OXM field for IPv6 source address.";
         }
         identity ipv6_dst {
             base match-field;
-            description "Match for IPv6 destination address.";
+            description "OXM field for IPv6 destination address.";
         }
         identity ipv6_flabel {
             base match-field;
-            description "Match for IPv6 Flow Label";
+            description "OXM field for IPv6 Flow Label";
         }
         identity icmpv6_type {
             base match-field;
-            description "Match for ICMPv6 type.";
+            description "OXM field for ICMPv6 type.";
         }
         identity icmpv6_code {
             base match-field;
-            description "Match for ICMPv6 code.";
+            description "OXM field for ICMPv6 code.";
         }
         identity ipv6_nd_target {
             base match-field;
-            description "Match for Target address for ND.";
+            description "OXM field for Target address for ND.";
         }
         identity ipv6_nd_sll {
             base match-field;
-            description "Match for Source link-layer for ND.";
+            description "OXM field for Source link-layer for ND.";
         }
         identity ipv6_nd_tll {
             base match-field;
-            description "Match for Target link-layer for ND.";
+            description "OXM field for Target link-layer for ND.";
         }
         identity mpls_label {
             base match-field;
-            description "Match for MPLS label.";
+            description "OXM field for MPLS label.";
         }
         identity mpls_tc {
             base match-field;
-            description "Match for MPLS TC.";
+            description "OXM field for MPLS TC.";
         }
         identity mpls_bos {
             base match-field;
-            description "Match for MPLS BoS bit.";
+            description "OXM field for MPLS BoS bit.";
         }
         identity pbb_isid {
             base match-field;
-            description "Match for PBB I-SID.";
+            description "OXM field for PBB I-SID.";
         }
         identity tunnel_id {
             base match-field;
-            description "Match for Logical Port Metadata";
+            description "OXM field for Logical Port Metadata";
         }
         identity ipv6_exthdr {
             base match-field;
-            description "Match for IPv6 Extension Header pseudo-field";
+            description "OXM field for IPv6 Extension Header pseudo-field";
+        }
+        identity tcp_flag {
+            base match-field;
+            description "NXM field for NXM_NX_TCP_FLAGS";
+        }
+        identity tunnel_ipv4_dst {
+            base match-field;
+            description "NXM field for NXM_NX_TUN_IPV4_DST";
+        }
+        identity tunnel_ipv4_src {
+            base match-field;
+            description "NXM field for NXM_NX_TUN_IPV4_SRC";
         }
-
         container oxm-container {
-            uses oxm-fields;
+            uses oxm-fields-grouping;
         }
-        
-        grouping oxm-fields {
+
+        grouping oxm-fields-grouping {
             list match-entries {
+                description "OXM TLV-structures (Type Length Value)";
+                config false;
                 leaf oxm-class {
                     type identityref {
-                        base clazz;
+                        base oxm-class-base;
                     }
                 }
                 leaf oxm-match-field {
@@ -225,59 +246,89 @@ module openflow-extensible-match {
                 }
                 leaf has-mask {
                     type boolean;
-                } 
+                }
             }
         }
-        
+
+        grouping match-grouping {
+            container match {
+                description "Match structure (OF v1.3)";
+                leaf type {
+                    type identityref {
+                        base oft:match-type-base;
+                    }
+                }
+                uses oxm-fields-grouping;
+            }
+        }
+
         // OF1.0 structures
         grouping match-v10-grouping {
             container match-v10 {
+                description "OF v1.0 match structure";
                 leaf wildcards {
+                    description "Wildcard fields (only flags).";
                     type oft:flow-wildcards-v10;
                 }
                 leaf nw-src-mask {
+                    description "IP source address mask (definition differs from OF v1.0.0 spec to ease
+                     understanding, library does the transformation into OF v1.0 spec correct data)";
                     type uint8;
                 }
                 leaf nw-dst-mask {
+                    description "IP destination address mask (definition differs from OF v1.0.0 spec to ease
+                     understanding, library does the transformation into OF v1.0 spec correct data)";
                     type uint8;
                 }
                 leaf in-port {
+                description "Input switch port.";
                     type uint16;
                 }
                 leaf dl-src {
+                    description "Ethernet source address.";
                     type yang:mac-address;
                 }
                 leaf dl-dst {
+                    description "Ethernet destination address.";
                     type yang:mac-address;
                 }
                 leaf dl-vlan {
+                    description "Input VLAN id.";
                     type uint16;
                 }
                 leaf dl-vlan-pcp {
+                    description "Input VLAN priority.";
                     type uint8;
                 }
                 leaf dl-type {
+                    description "Ethernet frame type.";
                     type uint16;
                 }
                 leaf nw-tos {
+                    description "IP ToS (actually DSCP field, 6 bits).";
                     type uint8;
                 }
                 leaf nw-proto {
+                    description "IP protocol or lower 8 bits of ARP opcode.";
                     type uint8;
                 }
                 leaf nw-src {
+                    description "IP source address.";
                     type inet:ipv4-address;
                 }
                 leaf nw-dst {
+                    description "IP destination address.";
                     type inet:ipv4-address;
                 }
                 leaf tp-src {
+                    description "TCP/UDP source port.";
                     type uint16;
                 }
                 leaf tp-dst {
+                    description "TCP/UDP destination port.";
                     type uint16;
                 }
             }
         }
-        
+
 }
\ No newline at end of file