Mapping Neutron network for VPP renderer
[groupbasedpolicy.git] / renderers / vpp / src / main / yang / vpp-renderer.yang
index 283444aee57b610b97b727502d43cc1750d589fe..81f2f45346113fa70182e528a9eaf227411c3922 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -12,6 +12,10 @@ module vpp-renderer {
     namespace "urn:opendaylight:groupbasedpolicy: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.";
 
@@ -20,12 +24,46 @@ module vpp-renderer {
             "Initial revision.";
     }
 
-    import base-endpoint { prefix base-ep; revision-date 2016-04-27; }
+    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.";
+
             key "context-type context-id address-type address";
             uses base-ep:address-endpoint-key;
+
+            leaf vpp-node-path {
+                description "Path to a node representing mount-point to VPP instance.";
+                type instance-identifier;
+            }
+            leaf vpp-interface-name {
+                description "Name of interface for the endpoint on VPP";
+                type string;
+            }
+            leaf description {
+                description "Additional description of the vpp-endpoint";
+                type string;
+            }
             choice interface-type-choice {
                 case vhost-user-case {
                     leaf socket {
@@ -37,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;
+                }
+            }
+        }
     }
 }