BUG-4132 add ip src,dst and icmp type match attrs
[openflowplugin.git] / extension / openflowjava-extension-nicira / src / main / yang / nicira-match.yang
index d4233f807934509e5e021f4cb0357d1785e044c3..043c84dfa3f4f7f4d0d52870eab2d6bcb22f497f 100644 (file)
@@ -3,13 +3,14 @@ module nicira-match {
 
     namespace "urn:opendaylight:openflowjava:nx:match";
     prefix "nicira-match";
-    
+
     import openflow-extensible-match {prefix ofoxm;}
     import openflow-types {prefix oft;}
     import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
     import yang-ext {prefix ext; revision-date "2013-07-09";}
+    import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
 
-    description 
+    description
         "Nicira openflow extensions of match.";
 
     revision "2014-04-21" {
@@ -83,6 +84,45 @@ module nicira-match {
     identity nxm-nx-nsi {
         base ofoxm:match-field;
     }
+    identity nxm-nx-nshc-1 {
+        base ofoxm:match-field;
+    }
+    identity nxm-nx-nshc-2 {
+        base ofoxm:match-field;
+    }
+    identity nxm-nx-nshc-3 {
+        base ofoxm:match-field;
+    }
+    identity nxm-nx-nshc-4 {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-tcp-src {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-tcp-dst {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-udp-src {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-udp-dst {
+        base ofoxm:match-field;
+    }
+    identity nxm-nx-ct-state {
+        base ofoxm:match-field;
+    }
+    identity nxm-nx-ct-zone {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-ip-dst {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-ip-src {
+        base ofoxm:match-field;
+    }
+    identity nxm-of-icmp-type {
+        base ofoxm:match-field;
+    }
 
     grouping ofj-nxm-nx-match-reg-grouping {
         container reg-values {
@@ -185,22 +225,196 @@ module nicira-match {
         }
     }
 
-    augment "/ofoxm:oxm-container/ofoxm:match-entries" {
-        ext:augment-identifier "ofj-aug_nx_match";
-        uses ofj-nxm-nx-match-reg-grouping;
-        uses ofj-nxm-nx-match-tun-id-grouping;
-        uses ofj-nxm-nx-match-arp-sha-grouping;
-        uses ofj-nxm-nx-match-arp-tha-grouping;
-        uses ofj-nxm-of-match-arp-op-grouping;
-        uses ofj-nxm-of-match-arp-spa-grouping;
-        uses ofj-nxm-of-match-arp-tpa-grouping;
-        uses ofj-nxm-nx-match-tun-ipv4-dst-grouping;
-        uses ofj-nxm-nx-match-tun-ipv4-src-grouping;
-        uses ofj-nxm-of-match-eth-src-grouping;
-        uses ofj-nxm-of-match-eth-dst-grouping;
-        uses ofj-nxm-of-match-eth-type-grouping;
-        uses ofj-nxm-nx-match-nsp-grouping;
-        uses ofj-nxm-nx-match-nsi-grouping;
+    grouping ofj-nxm-nx-match-nshc-grouping {
+        leaf nshc {
+            type uint32;
+        }
+    }
+
+    grouping ofj-nxm-nx-match-nshc-1-grouping {
+        container nshc-1-values {
+            uses ofj-nxm-nx-match-nshc-grouping;
+        }
+    }
+    grouping ofj-nxm-nx-match-nshc-2-grouping {
+        container nshc-2-values {
+            uses ofj-nxm-nx-match-nshc-grouping;
+        }
+    }
+    grouping ofj-nxm-nx-match-nshc-3-grouping {
+        container nshc-3-values {
+            uses ofj-nxm-nx-match-nshc-grouping;
+        }
+    }
+    grouping ofj-nxm-nx-match-nshc-4-grouping {
+        container nshc-4-values {
+            uses ofj-nxm-nx-match-nshc-grouping;
+        }
+    }
+    grouping ofj-nxm-of-match-tcp-src-grouping {
+        container tcp-src-values {
+            leaf port {
+               type inet:port-number;
+            }
+            leaf mask {
+               type uint16;
+            }
+        }
+    }
+    grouping ofj-nxm-of-match-tcp-dst-grouping {
+        container tcp-dst-values {
+            leaf port {
+               type inet:port-number;
+            }
+            leaf mask {
+               type uint16;
+            }
+        }
+    }
+     grouping ofj-nxm-of-match-udp-src-grouping {
+        container udp-src-values {
+            leaf port {
+               type inet:port-number;
+            }
+            leaf mask {
+               type uint16;
+            }
+        }
+    }
+    grouping ofj-nxm-of-match-udp-dst-grouping {
+        container udp-dst-values {
+            leaf port {
+               type inet:port-number;
+            }
+            leaf mask {
+               type uint16;
+            }
+        }
+    }
+    grouping ofj-nxm-nx-match-ct-state-grouping{
+         container ct-state-values {
+            leaf ct-state {
+               type uint32;
+            }
+             leaf mask {
+               type uint32;
+            }
+        }
+    }
+    grouping ofj-nxm-nx-match-ct-zone-grouping{
+         container ct-zone-values {
+            leaf ct-zone {
+               type uint16;
+            }
+        }
+    }
+    grouping ofj-nxm-of-match-ip-dst-grouping {
+        container ip-dst-values {
+            leaf value {
+                type uint32;
+            }
+        }
+    }
+    grouping ofj-nxm-of-match-ip-src-grouping {
+        container ip-src-values {
+            leaf value {
+                type uint32;
+            }
+        }
+    }
+    grouping ofj-nxm-of-match-icmp-type-grouping {
+        container icmp-type-values {
+            leaf value {
+                type uint8;
+            }
+        }
+    }
+
+    augment "/ofoxm:oxm-container/ofoxm:match-entry-value" {
+        ext:augment-identifier "ofj-aug-nx-match";
+        case reg-case-value {
+            uses ofj-nxm-nx-match-reg-grouping;
+        }
+        case tun-id-case-value {
+            uses ofj-nxm-nx-match-tun-id-grouping;
+        }
+        case arp-sha-case-value {
+            uses ofj-nxm-nx-match-arp-sha-grouping;
+        }
+        case arp-tha-case-value {
+            uses ofj-nxm-nx-match-arp-tha-grouping;
+        }
+        case arp-op-case-value {
+            uses ofj-nxm-of-match-arp-op-grouping;
+        }
+        case arp-spa-case-value {
+            uses ofj-nxm-of-match-arp-spa-grouping;
+        }
+        case arp-tpa-case-value {
+            uses ofj-nxm-of-match-arp-tpa-grouping;
+        }
+        case tun-ipv4-dst-case-value {
+            uses ofj-nxm-nx-match-tun-ipv4-dst-grouping;
+        }
+        case tun-ipv4-src-case-value {
+            uses ofj-nxm-nx-match-tun-ipv4-src-grouping;
+        }
+        case eth-src-case-value {
+            uses ofj-nxm-of-match-eth-src-grouping;
+        }
+        case eth-dst-case-value {
+            uses ofj-nxm-of-match-eth-dst-grouping;
+        }
+
+        case eth-type-case-value {
+            uses ofj-nxm-of-match-eth-type-grouping;
+        }
+        case nsp-case-value {
+            uses ofj-nxm-nx-match-nsp-grouping;
+        }
+        case nsi-case-value {
+            uses ofj-nxm-nx-match-nsi-grouping;
+        }
+        case nshc-1-case-value {
+            uses ofj-nxm-nx-match-nshc-1-grouping;
+        }
+        case nshc-2-case-value {
+            uses ofj-nxm-nx-match-nshc-2-grouping;
+        }
+        case nshc-3-case-value {
+            uses ofj-nxm-nx-match-nshc-3-grouping;
+        }
+        case nshc-4-case-value {
+            uses ofj-nxm-nx-match-nshc-4-grouping;
+        }
+        case tcp-src-case-value {
+            uses ofj-nxm-of-match-tcp-src-grouping;
+        }
+        case tcp-dst-case-value {
+            uses ofj-nxm-of-match-tcp-dst-grouping;
+        }
+        case udp-src-case-value {
+            uses ofj-nxm-of-match-udp-src-grouping;
+        }
+        case udp-dst-case-value {
+            uses ofj-nxm-of-match-udp-dst-grouping;
+        }
+        case ct-state-case-value {
+            uses ofj-nxm-nx-match-ct-state-grouping;
+        }
+        case ct-zone-case-value {
+            uses ofj-nxm-nx-match-ct-zone-grouping;
+        }
+        case ip-dst-case-value {
+            uses ofj-nxm-of-match-ip-dst-grouping;
+        }
+        case ip-src-case-value {
+            uses ofj-nxm-of-match-ip-src-grouping;
+        }
+        case icmp-type-case-value {
+            uses ofj-nxm-of-match-icmp-type-grouping;
+        }
+
     }
 
 }