VOL-2686 Configure multicast MEs when flows are pushed and tp is configured

Change-Id: I283d6e689c010ec7e9c45c5921a20e08f3d5a93c
diff --git a/python/adapters/brcm_openomci_onu/onu_gem_port.py b/python/adapters/brcm_openomci_onu/onu_gem_port.py
index d9ed42e..5d8e9b7 100644
--- a/python/adapters/brcm_openomci_onu/onu_gem_port.py
+++ b/python/adapters/brcm_openomci_onu/onu_gem_port.py
@@ -90,13 +90,17 @@
         self.tx_bytes = 0
 
     def __str__(self):
-        return "OnuGemPort - entity_id {}, alloc-id: {}, gem-id: {}".format(self.entity_id, self.alloc_id,
-                                                                              self.gem_id)
+        return "OnuGemPort - entity_id {}, alloc-id: {}, gem-id: {}, direction: {}, multicast: {} ".format(self.entity_id, self.alloc_id,
+                                                                              self.gem_id, self.direction, self.multicast)
 
     def __repr__(self):
         return str(self)
 
     @property
+    def mcast(self):
+        return self.multicast
+
+    @property
     def pon_id(self):
         return self._pon_id
 
@@ -253,6 +257,7 @@
                           priority_q=gem_port['priority_q'],
                           scheduling_policy=gem_port['scheduling_policy'],
                           weight=gem_port['weight'],
+                          multicast=gem_port['is_multicast'],
                           handler=handler,
                           untagged=False)
 
@@ -269,17 +274,17 @@
                        ieee_mapper_service_profile_entity_id=ieee_mapper_service_profile_entity_id,
                        gal_enet_profile_entity_id=gal_enet_profile_entity_id,
                        ul_prior_q_entity_id=ul_prior_q_entity_id,
-                       dl_prior_q_entity_id=dl_prior_q_entity_id)
+                       dl_prior_q_entity_id=dl_prior_q_entity_id,
+                       multicast=self.multicast)
 
         try:
             direction = "downstream" if self.multicast else "bi-directional"
             entity_id = self.gem_id if self.multicast else self.entity_id
-            assert not self.multicast, 'MCAST is not supported yet'
 
             attributes = dict()
             attributes['priority_queue_pointer_downstream'] = dl_prior_q_entity_id
             msg = GemPortNetworkCtpFrame(
-                self.entity_id,  # same entity id as GEM port
+                entity_id,  # same entity id as GEM port
                 port_id=self.gem_id,
                 tcont_id=tcont_entity_id,
                 direction=direction,