VOL-174: Support configuration of GEMs as per WT-385 and auto-allocation of gemport-ids

 * As an operator, I should be able to provision a GEMPORT object for the ONU and assign to a UNI
 * As an operator, I should be able to retrieve the provisioned GEMPORT

Additional Notes:

 * gemport-ids should be auto-allocated for the GEMPORT object
 * generic IAdapter interface to be provided that will be used by OLT and ONU adapters for GEM port configuration
 * In the best interest of schedules/timing, in the first step(e.g. POC-3 & trial), assume the queueing model to be supported (to be detailed) (i.e. no configuration of queueing model)
 * The concerned OLT and ONU should be configured with the allocated gemport-ids

VOL-173: Support configuration of TCONTs as per WT-385 and auto-allocation of alloc-ids

 * As an operator, I should be able to provision a TCONT for the ONU with an existing traffic descriptor profile
 * As an operator, I should be able to retrieve the provisioned TCONT
 * As an operator, I should be able to change the traffic descriptor profile for a TCONT

Additional Notes:

 * alloc-ids should be allocated for the TCONT
 * generic IAdapter interface to be provided that will be used by OLT and ONU adapters for TCONT/alloc-id/BW configuration
 * In the best interest of schedules/timing, in the first step(e.g. POC-3 & trial), assume the queueing model to be supported (to be detailed) (i.e. no configuration of queueing model)
 * The concerned ONU should receive upstream grants upon provisioning of TCONT for the ONU

Change-Id: If9fa02accaa306409ddb3872c8e46566c74927b0
diff --git a/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
new file mode 100644
index 0000000..525ce11
--- /dev/null
+++ b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
@@ -0,0 +1,24 @@
+syntax = "proto3";
+package bbf_fiber;
+import "meta.proto";
+import "bbf_fiber_multicast_gemport_body.proto";
+
+enum AllMulticastVlans
+{
+    ALL_MULTICAST_VLANS = 0;
+}
+
+message VlanList {
+    repeated uint32 multicast_vlan_id = 1;
+}
+
+message MulticastDistributionSetData {
+    string id = 1 [(voltha.access) = READ_ONLY];
+    string name = 2;
+    string multicast_gemport_ref = 3;
+    oneof multicast_vlans
+    {
+        AllMulticastVlans all_multicast_vlans = 4;
+        VlanList vlan_list = 5;
+    };
+}