Mapping Neutron network for VPP renderer
[groupbasedpolicy.git] / renderers / vpp / src / main / yang / vpp-renderer.yang
index e15b1d7a85bfe03ccb28bc208c776628a356c4dd..81f2f45346113fa70182e528a9eaf227411c3922 100644 (file)
@@ -13,6 +13,8 @@ module vpp-renderer {
     prefix "vpp-renderer";
 
     import base-endpoint { prefix base-ep; revision-date 2016-04-27; }
+    import network-topology { prefix nt; revision-date 2013-10-21; }
+    import opendaylight-l2-types { prefix l2-types; revision-date "2013-08-27"; }
 
     description
         "This module is a baseline for the group-based policy vpp renderer model.";
@@ -22,6 +24,27 @@ module vpp-renderer {
             "Initial revision.";
     }
 
+    identity network-type-base {
+        description "Base for Network Types.";
+    }
+
+    identity flat-network {
+        description "Flat Provider Network Type";
+        base network-type-base;
+    }
+
+    identity vlan-network {
+        description "VLAN Provider Network Type";
+        base network-type-base;
+    }
+
+    typedef network-type {
+        description "Type of Network.";
+        type identityref {
+            base network-type-base;
+        }
+    }
+
     container config {
         list vpp-endpoint {
             description "Renderer creates/removes interface on VPP node based on given parameters.";
@@ -52,5 +75,38 @@ module vpp-renderer {
                 }
             }
         }
+
+        list bridge-domain {
+            key "id";
+            leaf id {
+                description "Same as in VBD.";
+                type string;
+            }
+            leaf description {
+               type string;
+            }
+            leaf type {
+                mandatory true;
+                type network-type;
+            }
+            leaf vlan {
+                when "type = 'vlan-network'";
+                type l2-types:vlan-id;
+            }
+            list physical-location-ref {
+                description
+                    "Refers to physical interfaces on vpp nodes through which external
+                     nodes belonging to the same bridge-domain can be reached.";
+                key "node-id";
+                leaf node-id {
+                    description "Refers to a VPP node.";
+                    type nt:node-id;
+                }
+                leaf-list interface {
+                    description "Physical interface on the VPP node.";
+                    type string;
+                }
+            }
+        }
     }
 }