Bump versions by 0.1.0 for next dev cycle
[vpnservice.git] / interfacemgr / interfacemgr-api / src / main / yang / odl-interface.yang
index f1483dba2f25bc5b7104cc7c03f8d83158ba4713..9c226141b25b12b8fb7f5658b69287ac4d9608b9 100644 (file)
@@ -1,4 +1,3 @@
-
 module odl-interface {
     namespace "urn:opendaylight:vpnservice:interfacemgr";
 
@@ -18,35 +17,46 @@ module odl-interface {
 
     import ietf-inet-types {
         prefix inet;
+        revision-date "2013-07-15";
     }
 
     import opendaylight-inventory {
-        prefix inv; revision-date "2013-08-19";
+        prefix inv; revision-date 2013-08-19;
+    }
+
+    import opendaylight-l2-types { prefix ethertype; revision-date "2013-08-27";}
+
+    import config {
+        prefix config; revision-date 2013-04-05;
     }
 
     revision "2015-03-31" {
         description "ODL Interface Manager Module";
     }
 
+    identity odl-interface {
+        status deprecated;
+        base "config:service-type";
+        config:java-class "org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager";
+    }
+
     identity stacked-vlan {
         base if:interface-type;
-        reference
-        "Q-in-Q interface";
+        reference "Q-in-Q interface";
     }
 
-    identity l3tunnel {
+    identity mpls {
         base if:interface-type;
-        reference
-        "l3 tunnel interface";
+        reference "MPLS interface";
     }
 
-    identity mpls {
+    /* Tunnel (GRE, VxLAN) logical port */
+    identity l3tunnel {
+        status deprecated;
         base if:interface-type;
-        reference
-        "MPLS interface";
+        reference "l3 tunnel interface";
     }
 
-    /* l3Tunnel (GRE, VxLAN) logical port */
     identity tunnel-type-base {
         description "Base identity for all tunnel-types";
     }
@@ -61,20 +71,44 @@ module odl-interface {
         base tunnel-type-base;
     }
 
+    identity tunnel-type-mpls-over-gre {
+        description "Tunnel type for mpls over gre tunnels";
+        base tunnel-type-base;
+    }
+
     /* base/common properties */
     augment "/if:interfaces/if:interface" {
+        status deprecated;
         ext:augment-identifier "base-ids";
         leaf of-port-id {
             type inv:node-connector-id;
             description "can be a physical switch port or virtual switch port e.g. neutron port";
         }
-        leaf tenant-id {
+    }
+
+    augment "/if:interfaces/if:interface" {
+        ext:augment-identifier "parent-refs";
+        leaf datapath-node-identifier {
+            type uint64;
+            description "can be a physical switch identifier (optional)";
+        }
+
+        leaf parent-interface {
             type string;
-            description "Tenant that owns particular interface";
-        } /* optional */
-        leaf base-interface {
-            type if:interface-ref;
-            description "some interfaces need a reference to parent interface ";
+            description "can be a physical switch port or virtual switch port e.g. neutron port";
+        }
+
+        list node-identifier {
+            key "topology-id";
+            description "an identifier of the dependant underlying configuration protocol";
+            leaf "topology-id" {
+                type string;
+                description "can be ovsdb configuration protocol";
+            }
+            leaf "node-id" {
+                type string;
+                description "can be hwvtep configuration protocol";
+            }
         }
     }
 
@@ -85,34 +119,103 @@ module odl-interface {
         ext:augment-identifier "if-l2vlan";
         when "if:type = 'ianaift:l2vlan'";
         leaf vlan-id {
-            type uint16 {
-                range "1..4094";
-            }
-            must "../base-interface" {
-                description
-                "If a vlan-id is defined, a base-interface must
-                be specified.";
+            type ethertype:vlan-id;
+        }
+
+        leaf l2vlan-mode {
+            description "The VLAN mode of the L2Vlan Interface.";
+            type enumeration {
+                enum "access" {
+                    value 1;
+                    description
+                        "The VLAN mode access.";
+                }
+                enum "native-tagged" {
+                    value 2;
+                    description
+                        "The VLAN mode native-tagged.";
+                }
+                enum "native-untagged" {
+                    value 3;
+                    description
+                        "The VLAN mode native-untagged.";
+                }
+                enum "trunk" {
+                    value 4;
+                    description
+                        "The VLAN mode trunk.";
+                }
+                enum "trunk-member" {
+                    value 5;
+                    description
+                        "The VLAN mode trunk-member.";
+                }
+                enum "transparent" {
+                    value 6;
+                    description
+                        "The VLAN mode transparent.";
+                }
             }
+            default "trunk";
         }
     }
 
     /* Q-in-Q logical port */
     augment "/if:interfaces/if:interface" {
         ext:augment-identifier "if-stacked-vlan";
-        when "if:type = 'stacked_vlan'";
+        when "if:type = 'stacked-vlan'";
         leaf stacked_vlan-id {
             type uint16 {
                 range "1..4094";
             }
-            must "../base-interface" {
-                description
-                "If a vlan-id is defined, a base-interface must
-                be specified.";
+        }
+    }
+
+    augment "/if:interfaces/if:interface" {
+        ext:augment-identifier "if-tunnel";
+        when "if:type = 'ianaift:tunnel'";
+
+        leaf internal {
+            type boolean;
+            default "false";
+            description
+              "represents whether this is an internal or external tunnel.";
+        }
+        
+        leaf tunnel-interface-type {
+            type identityref {
+                base tunnel-type-base;
             }
         }
+
+        leaf tunnel-source {
+            type inet:ip-address;
+            description "Local Endpoint IP address";
+        }
+
+        leaf tunnel-destination {
+            type inet:ip-address;
+            description "Remote Endpoint IP address";
+        }
+
+        leaf tunnel-gateway {
+            type inet:ip-address;
+            description "gateway IP address";
+        }
+
+        leaf monitor-enabled {
+            type boolean;
+            default false;
+        }
+
+        leaf monitor-interval {
+             type uint32;
+              default 10000;
+        }
     }
 
     augment "/if:interfaces/if:interface" {
+        status deprecated;
         ext:augment-identifier "if-l3tunnel";
         when "if:type = 'ianaift:l3tunnel'";
 
@@ -121,6 +224,7 @@ module odl-interface {
                 base tunnel-type-base;
             }
         }
+
         leaf local-ip {
             type inet:ip-address;
             description "Local Endpoint IP address";
@@ -135,10 +239,8 @@ module odl-interface {
             type inet:ip-address;
             description "gateway IP address";
         }
-
     }
 
-
     /* MPLS logical port */
     augment "/if:interfaces/if:interface" {
         ext:augment-identifier "if-mpls";
@@ -154,6 +256,4 @@ module odl-interface {
             }
         }
     }
-
 }
-