diff --git a/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py b/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
index 746f0ed..2d65164 100644
--- a/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
+++ b/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
@@ -107,6 +107,8 @@
 ASFVOLT_DNS_ID = 15
 ASFVOLT_DOWNLINK_DNS_ID = 16
 
+RESERVED_VLAN_ID = 4095
+
 
 class FlowInfo(object):
 
@@ -1905,7 +1907,10 @@
             # Copy O_OVID
             downlink_classifier['vlan_vid'] = downlink_action['vlan_vid']
             # Copy I_OVID
-            downlink_classifier['metadata'] = uplink_classifier['vlan_vid']
+            if uplink_classifier['vlan_vid'] != RESERVED_VLAN_ID:
+                # downlink_classifier['metadata'] is the I_VID, which is not required
+                # when we use transparent tagging
+                downlink_classifier['metadata'] = uplink_classifier['vlan_vid']
             if 'push_vlan' in downlink_action:
                 downlink_action.pop('push_vlan')
             downlink_action['trap_to_host'] = True
@@ -1913,7 +1918,6 @@
             downlink_classifier['pkt_tag_type'] =  'untagged'
             downlink_classifier.pop('vlan_vid')
 
-
         downlink_flow_id = self.get_flow_id(onu_device.proxy_address.onu_id,
                                             onu_device.proxy_address.channel_id,
                                             downlink_dhcp_id)
@@ -1954,7 +1958,14 @@
 
         downlink_classifier['pkt_tag_type'] = 'double_tag'
         downlink_classifier['vlan_vid'] = uplink_action['vlan_vid']
-        downlink_classifier['metadata'] = uplink_classifier['vlan_vid']
+
+        if uplink_classifier['vlan_vid'] != RESERVED_VLAN_ID:
+            downlink_classifier['metadata'] = uplink_classifier['vlan_vid']
+        else:
+            # when we use transparent tagging, we need not use any vlan classifier,
+            # vlan tagging will happen based on pkt_tag_type
+            del uplink_classifier['vlan_vid']
+
         del downlink_action['push_vlan']
         downlink_action['pop_vlan'] = True
 
diff --git a/voltha/adapters/broadcom_onu/broadcom_onu.py b/voltha/adapters/broadcom_onu/broadcom_onu.py
index 113245a..3543776 100644
--- a/voltha/adapters/broadcom_onu/broadcom_onu.py
+++ b/voltha/adapters/broadcom_onu/broadcom_onu.py
@@ -53,6 +53,7 @@
 BRDCM_DEFAULT_VLAN = 4091
 ADMIN_STATE_LOCK = 1
 ADMIN_STATE_UNLOCK = 0
+RESERVED_VLAN_ID = 4095
 
 @implementer(IAdapterInterface)
 class BroadcomOnuAdapter(object):
@@ -611,20 +612,32 @@
                     self.send_delete_vlan_tagging_filter_data(0x2102)
                     yield self.wait_for_response()
 
-                    #self.send_set_vlan_tagging_filter_data(0x2102, _set_vlan_vid)
-                    self.send_create_vlan_tagging_filter_data(0x2102, _set_vlan_vid)
-                    yield self.wait_for_response()
-
-                    for port_id in self.uni_ports:
-
-                        self.send_set_extended_vlan_tagging_operation_vlan_configuration_data_untagged(0x200 + port_id, 0x1000, _set_vlan_vid)
+                    # self.send_set_vlan_tagging_filter_data(0x2102, _set_vlan_vid)
+                    if _set_vlan_vid != RESERVED_VLAN_ID:
+                        # As per G.988 - Table 9.3.11-1 - Forward operation attribute values
+                        # Forward action of 0x10 allows VID Investigation
+                        self.send_create_vlan_tagging_filter_data(0x2102, _set_vlan_vid, 0x10)
                         yield self.wait_for_response()
 
-                        self.send_set_extended_vlan_tagging_operation_vlan_configuration_data_single_tag(0x200 + port_id, 8, 0, 0,
-                                                                                                         1, 8, _set_vlan_vid)
+                        for port_id in self.uni_ports:
+
+                            self.send_set_extended_vlan_tagging_operation_vlan_configuration_data_untagged(\
+                                                                     0x200 + port_id, 0x1000, _set_vlan_vid)
+                            yield self.wait_for_response()
+
+                            self.send_set_extended_vlan_tagging_operation_vlan_configuration_data_single_tag(0x200 + port_id, 8, 0, 0,
+                                                                                                             1, 8, _set_vlan_vid)
+                            yield self.wait_for_response()
+                    else:
+                        # As per G.988 - Table 9.3.11-1 - Forward operation attribute values
+                        # Forward action of 0x00 does not perform VID Investigation for transparent vlan case
+                        self.send_create_vlan_tagging_filter_data(0x2102, _set_vlan_vid, 0x00)
                         yield self.wait_for_response()
 
-
+                        for port_id in self.uni_ports:
+                            self.send_set_extended_vlan_tagging_operation_vlan_configuration_data_single_tag(\
+                                                                       0x200 + port_id, 14, 4096, 0, 0, 15, 0)
+                            yield self.wait_for_response()
 
             except Exception as e:
                 self.log.exception('failed-to-install-flow', e=e, flow=flow)
@@ -892,7 +905,8 @@
 
     def send_create_vlan_tagging_filter_data(self,
                                              entity_id,
-                                             vlan_id):
+                                             vlan_id,
+                                             fwd_operation):
         frame = OmciFrame(
             transaction_id=self.get_tx_id(),
             message_type=OmciCreate.message_id,
@@ -901,7 +915,7 @@
                 entity_id=entity_id,
                 data=dict(
                     vlan_filter_0=vlan_id,
-                    forward_operation=0x10,
+                    forward_operation=fwd_operation,
                     number_of_entries=1
                 )
             )
@@ -1352,7 +1366,8 @@
 
         # VLAN Tagging Filter config
         # Create AR - VlanTaggingFilterData - 8450 - c-vid
-        self.send_create_vlan_tagging_filter_data(0x2102, cvid)
+        # As per G.988 - Table 9.3.11-1 - Forward operation attribute values
+        self.send_create_vlan_tagging_filter_data(0x2102, cvid, 0x10)
         yield self.wait_for_response()
 
 
