introduce cord-service-volt.yang and cord-service-vsg.yang. complete re-rendering of the underyling service/tenancy associations. need to review further with team.
diff --git a/schema/cord-service-vsg.yang b/schema/cord-service-vsg.yang
new file mode 100644
index 0000000..aeae976
--- /dev/null
+++ b/schema/cord-service-vsg.yang
@@ -0,0 +1,148 @@
+module cord-service-vsg {
+  namespace "urn:onlab:cord:service:volt";
+  prefix volt;
+  yang-version 1.1;
+
+  import ietf-yang-types { prefix yang; }
+  import xos-core { prefix xos; }
+  import cord-service-volt { prefix volt; }
+
+  organization
+   "Open Networking Lab (CORD) / Corenova Technologies";
+
+  contact
+    "Larry Peterson <llp@onlab.us>
+     Peter K. Lee <peter@corenova.com>";
+
+  revision 2016-09-09 {
+    description "Initial revision.";
+  }
+
+  identity vsg-service { base xos:service; }
+
+  typedef subscriber-flow {
+    type leafref {
+      path "/vsg:service/vsg:provider/vsg:port/vsg:id";
+    }
+  }
+
+  grouping provider {
+    description
+      "This grouping represents a VSG agent/provider which manages multiple
+       VSG gateways. The VSG agent provides agregate abstraction of
+       the entire NFaaS as a single switch to the controller. Each
+       port entry of the agent represents each VSG endpoint as a
+       separate openflow port.";
+
+    list gateway {
+      description
+        "Each entry represents a VSG instance managed by the agent.";
+
+      leaf id { type yang:uuid; }
+      container services {
+        description
+          "Contains various services provided by the gateway.";
+        container cdn {
+          if-feature cdn;
+        }
+        container firewall {
+          if-feature firewall;
+          leaf-list rules { type string; }
+        }
+        container url-filter {
+          if-feature url-filter;
+          leaf level {
+            type enumeration {
+              enum "PG";
+              // others...
+            }
+          }
+          leaf-list rules { type string; }
+        }
+        container uverse {
+          if-feature uverse;
+        }
+      }
+    }
+    list port {
+      description
+        "Each entry represents a VSG endpoint connected across VSG gateways.";
+      key id;
+      leaf id {
+        description "OpenFlow Port ID";
+        type yang:uuid;
+        mandatory true;
+      }
+      leaf link {
+        type leafref {
+          path '../../gateway/id';
+        }
+        mandatory true;
+      }
+    }
+  }
+  grouping subscriber {
+    description
+      "This grouping represents a VSG service subscriber along with
+       reference to fabric flows used by the subscriber.";
+
+    leaf status {
+      type enumeration {
+        enum "enabled" {
+          description "Enabled";
+          value 1;
+        }
+        enum "suspended" {
+          description "Suspended";
+        }
+        enum "delinquent" {
+          description "Delinquent";
+        }
+        enum "violation" {
+          description "Copyright Violation";
+        }
+      }
+      default enabled;
+    }
+    leaf demo { type boolean; default false; }
+    leaf uplink-speed   { type volt:bandwidth; }
+    leaf downlink-speed { type volt:bandwidth; }
+    
+    list tag {
+      description
+        "Each entry represents a unique openflow port ID that the subscriber
+         connects to the VSG service from the fabric.";
+      
+      key flow;
+      leaf flow {
+        type union {
+          type volt:subscriber-flow;
+          type vsg:subscriber-flow {
+            description "can be an output flow from the VSG service.";
+          }
+          type yang:uuid {
+            description "supports a generic openflow port ID";
+          }
+        }
+      }
+    }
+    leaf-list flows {
+      description
+        "Each entry represents a unique openflow port ID that the subscriber
+         uses to connect into the fabric from the VSG service.";
+      config false;
+      type subscriber-flow;
+    }
+  }
+  
+  /*
+   * Configuration data
+   */
+  container service {
+    uses xos:service {
+      refine kind { default vsg-service; }
+      augment "provider"   { uses vsg:provider; }
+      augment "subscriber" { uses vsg:subscriber; }
+    }
+  }
+}