ARP Responder stale flow after undeployment
[netvirt.git] / vpnmanager / api / src / main / yang / odl-l3vpn.yang
index d8757c6862f5f998dae9909d467c94ca93a62dd9..7cfe0151851c6fa3700a48ade06546a9ec77fb2c 100644 (file)
@@ -41,16 +41,26 @@ module odl-l3vpn {
                 }
                 default "extra-route";
             }
-            leaf label { type uint32; config "false"; } /* optional */
             leaf mac_address {type string;} /* optional */
             leaf subnet_id {type yang:uuid;} /* optional */
-            leaf subnet_gateway_mac_address {type string; config "false";} /* optional */
-            leaf vrf-id { type string; config "false"; }
+            leaf subnet_gateway_ip {type string;}  /* optional */
             leaf phys-network-func {
                 type boolean;
                 default false;
                 description "Value of True indicates this is an adjacency of a device in a provider network";
             }
+            uses adjacency-op-data;
+        }
+    }
+
+    grouping adjacency-op-data{
+        leaf label { type uint32; config "false"; } /* optional */
+        leaf subnet_gateway_mac_address {type string; config "false";} /* optional */
+        leaf vrf-id { type string; config "false"; }
+        leaf marked_for_deletion {
+            config "false";
+            type boolean;
+            description "This flag if true suggest this adjancency has been marked for deletion";
         }
     }
 
@@ -65,11 +75,6 @@ module odl-l3vpn {
         uses adjacency-list;
     }
 
-    augment "/l3vpn:vpn-interfaces/l3vpn:vpn-interface" {
-        ext:augment-identifier "opState";
-        leaf stateUp {type boolean; config false;}
-    }
-
     /* Operational DS containers for reverse lookups*/
     container prefix-to-interface {
         config false;
@@ -85,9 +90,7 @@ module odl-l3vpn {
               leaf vpn-interface-name {
                   type string;
               }
-              leaf subnet-id {
-                  type yang:uuid;
-              }
+              uses nvpn:network-attributes;
               leaf prefix-cue {
                   type enumeration {
                       enum none {
@@ -214,15 +217,15 @@ module odl-l3vpn {
             leaf dpn-id {
               type uint64;
             }
-            leaf scheduled-for-remove {
-              type boolean;
-            }
             leaf router-interface {
                 type boolean;
             }
             leaf gateway-mac-address {
                 type string;
             }
+            leaf gateway-ip-address {
+                type string;
+            }
             leaf lport-tag {
                 type uint32;
             }
@@ -688,13 +691,72 @@ module odl-l3vpn {
         }
     }
 
-    container dpid-l3vpn-lb-nexthops {
+    container l3vpn-dc-gws {
         config false;
-        list dpn-lb-nexthops {
-            key "src-dp-id dst-device-id";
-            leaf src-dp-id { type uint64; }
-            leaf dst-device-id { type string; } //dpId or ip-address
-            leaf-list nexthop-key { type string; }
+        list dc-gateway {
+            key "ip-address";
+            leaf ip-address {
+                type string;
+            }
+        }
+    }
+
+    typedef learnt-vpn-vip-to-port-event-action {
+         type enumeration {
+             enum add {
+                 value "0";
+                 description
+                 "Event to add a learnt vip to CSC FIB";
+             }
+             enum delete {
+                 value "1";
+                 description
+                 "Event to remove a learnt vip from CSC FIB";
+             }
+         }
+         description
+          "This value represents the action of an event on learnt-vpn-vip-to-port.
+           The possible actions supported are only ADD, DELETE";
+    }
+
+    container learnt-vpn-vip-to-port-event-data {
+        config false;
+        list learnt-vpn-vip-to-port-event {
+            key "learnt-vpn-vip-event-id";
+            leaf vpn-name { type string; }
+            leaf src-fixedip { type string; }
+            leaf dest-fixedip { type string; }
+            leaf port-name { type string; }
+            leaf mac-address { type string; }
+            leaf event-action { type learnt-vpn-vip-to-port-event-action; }
+            leaf learnt-vpn-vip-event-id { type string; }
+        }
+    }
+
+    /* rt to subnets map */
+    container subnets-associated-to-route-targets {
+        config false;
+        list route-target {
+            key "rt rt-type";
+            leaf rt { type string; }
+            leaf rt-type {
+                type enumeration {
+                    enum iRT {
+                        value "0";
+                    }
+                    enum eRT {
+                        value "1";
+                    }
+                }
+            }
+            list associated-subnet {
+                key cidr;
+                leaf cidr { type string; }
+                list associated-vpn {
+                    key "name";
+                    leaf name  { type string; }
+                }
+            }
         }
     }
 }