hwvtep yang changes for 1.4.1 71/40771/3
authorVishal Thapar <vishal.thapar@ericsson.com>
Thu, 23 Jun 2016 13:20:14 +0000 (18:50 +0530)
committerVishal Thapar <vishal.thapar@ericsson.com>
Wed, 29 Jun 2016 08:48:22 +0000 (14:18 +0530)
This adds following to yang:

1. Logical_Router
2. Arp_sources local and remote
3. ACL and ACL Entries
4. Logical_Binding_Stats
5. Fault status for switch and port

Change-Id: If5089785aceb035101b630ce009bb6523c37b3b8
Signed-off-by: Vishal Thapar <vishal.thapar@ericsson.com>
hwvtepsouthbound/hwvtepsouthbound-api/src/main/yang/hwvtep.yang

index 927a9b02ac8b4e4f5500f39d76fdfce57920c140..d0a9fb47e842f15c4b2320a516a369a26be97b3c 100644 (file)
@@ -37,6 +37,21 @@ module hwvtep {
         type string;
     }
 
+    typedef ietf-acl-entry-ref {
+        description "A reference to an ietf-acl-entry";
+        type instance-identifier;
+    }
+
+    typedef hwvtep-acl-ref {
+        description "A reference to an acl";
+        type instance-identifier;
+    }
+
+    typedef hwvtep-logical-binding-stats-ref {
+        description "A reference to a logical-binding-stats";
+        type instance-identifier;
+    }
+
     grouping hwvtep-node-identification {
         leaf hwvtep-node-name {
             description "The name of the node";
@@ -180,6 +195,18 @@ module hwvtep {
             key "local-locator-ref remote-locator-ref";
             uses hwvtep-tunnel-attributes ;
         }
+        list switch-fault-status {
+            config false;
+            key "switch-fault-status-key";
+            leaf switch-fault-status-key {
+                description "switch-fault-status name/key";
+                type string;
+            }
+            leaf switch-fault-status-value {
+                description "switch-fault-status value";
+                type string;
+            }
+        }
     }
 
     grouping hwvtep-connection-info-attributes {
@@ -266,6 +293,27 @@ module hwvtep {
             uses hwvtep-mac-table-generic-attributes;
             uses hwvtep-mcast-mac-table-attributes;
         }
+        list logical-routers {
+            key "hwvtep-node-name";
+            uses hwvtep-logical-router-attributes;
+        }
+        list local-arp-sources {
+            key "src-mac";
+            uses hwvtep-arp-sources-attributes;
+        }
+        list remote-arp-sources {
+            key "src-mac";
+            uses hwvtep-arp-sources-attributes;
+        }
+        list acls {
+            key "acl-name";
+            uses hwvtep-acl-attributes;
+        }
+        list logical-binding-stats {
+            config false;
+            key "logical-binding-stats-uuid";
+            uses hwvtep-logical-binding-stats-attributes;
+        }
     }
 
     identity encapsulation-type-base {
@@ -337,6 +385,189 @@ module hwvtep {
                 type hwvtep-logical-switch-ref;
             }
         }
+        list acl-bindings {
+            key "acl-binding-vlan-id";
+            leaf acl-binding-vlan-id {
+                description "vlan ids in the range 0 - 4095";
+                type ethertype:vlan-id;
+            }
+            leaf acl-ref {
+                description "reference to ACL to be applied to this port";
+                type hwvtep-acl-ref;
+            }
+        }
+        list vlan-stats {
+            key "vlan-stats-key";
+            leaf vlan-stats-key {
+                description "vlan ids in the range 0 - 4095";
+                type ethertype:vlan-id;
+            }
+            leaf vlan-stats-ref {
+                description "reference to logical binding stats for this port";
+                type hwvtep-logical-binding-stats-ref;
+            }
+        }
+        list port-fault-status {
+            config false;
+            key "port-fault-status-key";
+            leaf port-fault-status-key {
+                description "port-fault-status name/key";
+                type string;
+            }
+            leaf port-fault-status-value {
+                description "port-fault-status value";
+                type string;
+            }
+        }
+    }
+
+    grouping hwvtep-logical-router-attributes {
+        uses hwvtep-node-identification;
+        leaf logical-router-uuid {
+            description "A unique identifier of the logical router";
+            type yang:uuid;
+        }
+        list switch-bindings {
+            description "A map of IPv4 or IPv6 address prefix in CIDR
+                         notation to logical switch. Multiple prefixes
+                         may map to the same switch. By writing a 32-bit
+                         (or 128-bit for v6) address with a /N prefix
+                         length, both the router's interface address and the
+                         subnet  prefix  can be configured. For example,
+                         192.68.1.1/24 creates a /24 subnet for the logical
+                         switch  attached to the interface and assigns the
+                         address 192.68.1.1 to the router interface.";
+            leaf destination-address {
+                description "IPv4 or IPv6 address prefix in CIDR notation";
+                type inet:ip-prefix;
+            }
+            leaf logical-switch-ref {
+                description "reference to logical switch";
+                type hwvtep-logical-switch-ref;
+            }
+        }
+        list static-routes {
+            description "map of string-string pairs. One or more static routes,
+                         mapping IP prefixes to next hop IP addresses.";
+            leaf destination-address {
+                description "IPv4 or IPv6 address prefix in CIDR notation";
+                type inet:ip-prefix;
+            }
+            leaf nexthop-address {
+                description "IP address of next hop";
+                type inet:ip-address;
+            }
+        }
+        list acl-bindings {
+            description "map of string-ACL pairs. Maps ACLs to logical router
+                         interfaces. The router interfaces are indicated
+                         using IP address notation, and must be the same
+                         interfaces created in the switch_binding column.
+                         For example, an ACL could be associated with the
+                         logical router interface with an address of
+                         192.68.1.1 as defined in the example above.";
+            key "router-interface";
+            leaf router-interface {
+                description "IPv4 or IPv6 address prefix in CIDR notation";
+                type inet:ip-prefix;
+            }
+            leaf acl-ref {
+                description "reference to ACL to be applied to this router";
+                type hwvtep-acl-ref;
+            }
+        }
+    }
+
+    grouping hwvtep-arp-sources-attributes {
+        description "AP Sources table attributes";
+        leaf arp-sources-uuid {
+            description "The unique identifier of the arp-source";
+            type yang:uuid;
+        }
+        leaf src-mac {
+            description "Source mac to be used by given tep";
+            type inet:ip-address;
+        }
+        uses hwvtep-physical-locator-attributes;
+    }
+
+    grouping hwvtep-acl-entry-attributes {
+        description "ACL Entry attributes";
+        leaf sequence {
+            description "integer. Sequence number for ACL entry";
+            type uint32 {
+                range "0..max";
+            }
+        }
+        leaf acl-entry-uuid {
+            description "The unique identifier of the acl-entry";
+            type yang:uuid;
+        }
+        leaf acl-entry-ref {
+            type ietf-acl-entry-ref;
+        }
+        list acle-fault-status {
+            config false;
+            key "acle-fault-status-key";
+            leaf acle-fault-status-key {
+                description "acle-fault-status name/key";
+                type string;
+            }
+            leaf acle-fault-status-value {
+                description "acle-fault-status value: can be empty/None";
+                type string;
+            }
+        }
+    }
+
+    grouping hwvtep-acl-attributes {
+        description "ACL attributes";
+        leaf acl-name {
+            description "Name of the ACL";
+            type string;
+        }
+        leaf acl-uuid {
+            description "The unique identifier of the acl";
+            type yang:uuid;
+        }
+        list acl-entries {
+            uses hwvtep-acl-entry-attributes;
+        }
+        list acl-fault-status {
+            config false;
+            key "acl-fault-status-key";
+            leaf acl-fault-status-key {
+                description "acl-fault-status name/key";
+                type string;
+            }
+            leaf acl-fault-status-value {
+                description "acl-fault-status value: can be empty/None";
+                type hwvtep-acl-ref;
+            }
+        }
+    }
+
+    grouping hwvtep-logical-binding-stats-attributes {
+        leaf logical-binding-stats-uuid {
+            description "A unique identifier of the logical binding stats";
+            type yang:uuid;
+        }
+        leaf packets-from-local {
+            description "integer";
+            type uint32;
+        }
+        leaf bytes-from-local {
+            description "integer";
+            type uint32;
+        }
+        leaf packets-to-local {
+            description "integer";
+            type uint32;
+        }
+        leaf bytes-to-local {
+            description "integer";
+            type uint32;
+        }
     }
 
     augment "/topo:network-topology/topo:topology/topo:node" {