Binary masks in match types yang model changed to numbers. 35/4635/3
authorEd Warnicke <eaw@cisco.com>
Thu, 23 Jan 2014 12:35:04 +0000 (18:05 +0530)
committerEd Warnicke <eaw@cisco.com>
Fri, 24 Jan 2014 01:38:20 +0000 (19:38 -0600)
Plugin code review corresponding to this change: https://git.opendaylight.org/gerrit/#/c/4638/

Patch3: Fixed masks to use the same type as values (MacAddress for MacAddress and
IPv6FlowLabel for IPv6FlowLabel) rather than arbitrary uint* values.

Signed-off-by: Deepthi V V <deepthi.v.v@ericsson.com>
Change-Id: Icbc84312c0a2f26738ab9d84f6af34783c4aad5d
Signed-off-by: Ed Warnicke <eaw@cisco.com>
opendaylight/md-sal/model/model-flow-base/src/main/yang/opendaylight-match-types.yang

index 31736d2737dbcd7358ef264587de0910153afb63..321e0540974e3ccc5838e1638e251d6e47fd4b26 100644 (file)
@@ -10,24 +10,24 @@ module opendaylight-match-types {
     revision "2013-10-26" {
         description "Initial revision of macth types";
     }
-    
+
     grouping "mac-address-filter" {
         leaf address {
             mandatory true;
             type yang:mac-address;
         }
         leaf mask {
-            type binary;
+            type yang:mac-address;
         }
     }
-    
+
     grouping "of-metadata" {
         leaf metadata {
             type uint64;
         }
-        
+
         leaf metadata-mask {
-            type binary;
+            type uint64;
         }
     }
 
@@ -46,15 +46,11 @@ module opendaylight-match-types {
         container ethernet-type {
             description "Ethernet frame type.";
             presence "Match field is active and set";
-            
+
             leaf type {
                 mandatory true;
                 type l2t:ether-type; // Needs to define that as general model
             }
-
-            leaf mask {
-                type binary;
-            }
         }
     }
 
@@ -66,9 +62,9 @@ module opendaylight-match-types {
             leaf vlan-id-present {
                 type boolean;
             }
-                        
+
             leaf vlan-id {
-                type l2t:vlan-id; 
+                type l2t:vlan-id;
             }
         }
         leaf vlan-pcp {
@@ -80,82 +76,84 @@ module opendaylight-match-types {
     grouping "ip-match-fields" {
         leaf ip-protocol {
                 description "IP protocol.";
-                type uint8; 
+                type uint8;
         }
 
         leaf ip-dscp {
             description "IP DSCP (6 bits in ToS field).";
-            type inet:dscp; 
+            type inet:dscp;
         }
-        
+
         leaf ip-ecn {
             description "IP ECN (2 bits in ToS field).";
-            type uint8; 
+            type uint8;
         }
-        
-        leaf ip-proto {                
-           description "IP Proto (IPv4 or IPv6 Protocol Number).";             
-              type inet:ip-version;            
+
+        leaf ip-proto {
+           description "IP Proto (IPv4 or IPv6 Protocol Number).";
+              type inet:ip-version;
                }
-    } 
-    
+    }
+
     grouping "ipv4-match-fields" {
         leaf ipv4-source {
             description "IPv4 source address.";
             type inet:ipv4-prefix;
         }
-        
+
         leaf ipv4-destination {
             description "IPv4 destination address.";
             type inet:ipv4-prefix;
         }
-        
+
     }
-    
+
     grouping "ipv6-match-fields" {
         leaf ipv6-source {
             description "IPv6 source address.";
             type inet:ipv6-prefix;
         }
-    
+
         leaf ipv6-destination {
             description "IPv6 destination address.";
             type inet:ipv6-prefix;
         }
-        
+
         leaf ipv6-nd-target {
             description "IPv6 target address for neighbour discovery message";
             type inet:ipv6-address;
         }
-        
+
         container "ipv6-label" {
             leaf ipv6-flabel {
                 type inet:ipv6-flow-label;
             }
-            
+
             leaf flabel-mask {
-                type binary;
+                type inet:ipv6-flow-label;
             }
         }
-        
+
         leaf ipv6-nd-sll {
             description "Link layer source address for neighbour discovery message";
             type yang:mac-address;
         }
-        
+
         leaf ipv6-nd-tll {
             description "Link layer target address for neighbour discovery message";
             type yang:mac-address;
         }
-        
-        container "ipv6-ext-header" {    
+
+        container "ipv6-ext-header" {
             leaf ipv6-exthdr {
                 description "IPv6 Extension Header field";
                 type uint16;
             }
 
             leaf ipv6-exthdr-mask {
-                type binary;
+                type uint16 {
+                  range "0..512";
+                }
             }
         }
     }
@@ -176,29 +174,31 @@ module opendaylight-match-types {
             description "Label in the first MPLS shim header";
             type uint32;
         }
-        
+
         leaf mpls-tc {
             description "TC in the first MPLS shim header";
             type uint8;
         }
-        
+
         leaf mpls-bos {
             description "BoS bit in the first MPLS shim header";
             type uint8;
         }
-        
+
         container "pbb" {
             leaf pbb-isid {
                 description "I-SID in the first PBB service instance tag";
                 type uint32;
-            }  
+            }
 
             leaf pbb-mask {
-                type binary;
+                type uint32 {
+                  range "0..16777216";
+                }
             }
         }
     }
-    
+
     grouping "tcp-match-fields" {
         leaf tcp-source-port {
             description "TCP source port.";
@@ -231,7 +231,7 @@ module opendaylight-match-types {
             type uint8; // Define ICMP Code
         }
     }
-    
+
     grouping "icmpv6-match-fields" {
         leaf icmpv6-type {
         description "ICMP type.";
@@ -247,12 +247,12 @@ module opendaylight-match-types {
         leaf arp-op {
             type uint16;
         }
-        
+
         leaf arp-source-transport-address {
             description "ARP source IPv4 address.";
             type inet:ipv4-prefix;
         }
-    
+
         leaf arp-target-transport-address {
             description "ARP target IPv4 address.";
             type inet:ipv4-prefix;
@@ -268,43 +268,43 @@ module opendaylight-match-types {
             uses mac-address-filter;
         }
     }
-    
+
     grouping match {
         leaf in-port {
             type inv:node-connector-id;
         }
-        
+
         leaf in-phy-port {
             type inv:node-connector-id;
         }
-        
+
         container "metadata" {
             uses of-metadata;
         }
-        
+
         container "tunnel" {
             leaf tunnel-id {
                 description "Metadata associated in the logical port";
                 type uint64;
             }
-            
+
             leaf tunnel-mask {
-                type binary;
+                type uint64;
             }
         }
-        
+
         container "ethernet-match" {
             uses "ethernet-match-fields";
         }
-        
+
         container "vlan-match" {
             uses "vlan-match-fields";
         }
-        
+
         container "ip-match" {
             uses "ip-match-fields";
         }
-        
+
         choice layer-3-match {
             case "ipv4-match" {
                 uses "ipv4-match-fields";
@@ -316,7 +316,7 @@ module opendaylight-match-types {
                 uses "arp-match-fields";
             }
         }
-        
+
         choice layer-4-match {
             case "udp-match" {
                 uses "udp-match-fields";
@@ -328,15 +328,15 @@ module opendaylight-match-types {
                 uses "sctp-match-fields";
             }
         }
-        
+
         container "icmpv4-match" {
             uses "icmpv4-match-fields";
         }
-        
+
         container "icmpv6-match" {
             uses "icmpv6-match-fields";
         }
-        
+
         container "protocol-match-fields" {
             uses "protocol-match-fields";
         }