Bug 4043 - remote ip prefix of security group is type of ietf ip-prefix
[neutron.git] / model / src / main / yang / neutron-L3.yang
index 25bca01b2e3c7d03dd51ea66d30f8c4d437de143..65bfa91370038e8fcf77b80e0df37f784e8f1049 100644 (file)
@@ -17,50 +17,45 @@ module neutron-L3 {
     // It requires rfc6991 (revision 2013-07-15), but odl don't have it, so this patch verify build will fail.
     import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; }
     import neutron-attrs { prefix "attrs"; }
-    import neutron-networks { prefix "networks"; }
 
     organization "OpenDaylight Neutron Group";
 
     contact "J. Gregory Hall <ghall@brocade.com>, Kiran Sreenivasa <kkoushik@brocade.com>";
 
     description "This YANG module defines L3 attributes that are used by Openstack
-        Ice House Neutron modules.";
+        Juno House Neutron modules.";
 
     revision "2014-10-02" {
         description
                 "Initial version of L3 attributes used by OpenStack Ice House Neutron
                 models";
     }
-    augment "/networks:networks/networks:network"{
-        description "
-          This module augments the networks container in the neutron-networks
-          module with router information.
-          ";
-        leaf external {
-            description "If true, it indicates that the router is externally accessible.";
+
+    grouping L3-attributes {
+        leaf distributed {
+            description "whether this router is distributed or not.";
             type boolean;
             default "false";
         }
-    }
-    grouping L3-attrs {
-
-        leaf-list external_network_id {
-            description "The network_id, for the external gateways. If this is empty, then this
-                network does not have external access";
+        leaf gateway-port-id {
+            description "the port uuid holding the router's gateway address.";
             type yang:uuid;
         }
+        leaf-list routes {
+            description "list of routes for this router.";
+            type string;
+        }
         leaf router-status {
             description "Contains the Router status.";
             type string;
         }
     }
 
-    grouping L3-floatingip-attrs {
+    grouping L3-floatingip-attributes {
         leaf uuid {
             type yang:uuid;
             description "UUID to index this object.";
         }
-
         leaf tenant-id {
             type yang:uuid;
             description "The Tenant ID of this object.";
@@ -92,9 +87,21 @@ module neutron-L3 {
                 to select a specific IP.";
             type inet:ip-address;
         }
+        leaf status {
+            type string;
+            description "The network status.";
+        }
     }
 
-    grouping interface-attrs {
+    grouping interface-attributes {
+        leaf uuid {
+            type yang:uuid;
+            description "UUID to index this object.";
+        }
+        leaf tenant-id {
+            type yang:uuid;
+            description "The Tenant ID of this object.";
+        }
         leaf subnet-id {
             description "Contains the Subnet ID of the interface.";
             type yang:uuid;
@@ -105,32 +112,58 @@ module neutron-L3 {
         }
     }
 
-    container routers {
-        list router {
-
-            description "A logical entity for forwarding packets across internal subnets
-                and NATting them on external networks through an appropriate external
-                gateway.";
-
-            key "uuid";
-            uses attrs:base-attrs;
-            uses attrs:admin-attrs;
-            uses L3-attrs;
-            list interfaces {
-                description "List of interfaces associated with this router object.";
-                uses interface-attrs;
+    grouping routers-attributes {
+        container routers {
+            list router {
+
+                description "A logical entity for forwarding packets across internal subnets
+                    and NATting them on external networks through an appropriate external
+                    gateway.";
+
+                key "uuid";
+                uses attrs:base-attributes;
+                uses attrs:admin-attributes;
+                uses L3-attributes;
+                container external_gateway_info {
+                    leaf external-network-id {
+                        description "The network_id, for the external gateways. If this is empty, then this
+                            network does not have external access";
+                        type yang:uuid;
+                    }
+                    leaf enable-snat {
+                        description "If true, it indicates that the router is performing snat on external access ";
+                        type boolean;
+                        default "true";
+                    }
+                    list external-fixed-ips {
+                        description "external fixed IPs for this router ";
+                        key subnet-id;
+                        leaf subnet-id {
+                            type yang:uuid;
+                        }
+                        leaf ip-address {
+                            type inet:ip-address;
+                        }
+                    }
+                }
+                list interfaces {
+                    description "List of interfaces associated with this router object.";
+                    key "uuid";
+                    uses interface-attributes;
+                }
             }
         }
     }
-    container floatingips {
-        list floatingip {
+    grouping floatingips-attributes {
+        container floatingips {
+            list floatingip {
 
-            description "An external IP address that is mapped to a port that is
-                attached to an internal network.";
+                description "An external IP address that is mapped to a port that is
+                    attached to an internal network.";
 
-            key "uuid";
-            uses L3-floatingip-attrs;
+                key "uuid";
+                uses L3-floatingip-attributes;
+            }
         }
     }
-
 }