diff --git a/accton/accton_util.py b/accton/accton_util.py
index 85dec8b..a22aa8c 100755
--- a/accton/accton_util.py
+++ b/accton/accton_util.py
@@ -606,7 +606,7 @@
         if vrf!=0:
             actions.append(ofp.action.set_field(ofp.oxm.exp2ByteValue(exp_type=1, value=vrf)))
             
-        actions.append(ofp.action.set_field(ofp.oxm.vlan_vid(0x1000+vlan_id)))
+        actions.append(ofp.action.set_field(ofp.oxm.vlan_vid(vlan_id)))
         
         request = ofp.message.flow_add(
             table_id=10,
@@ -631,7 +631,7 @@
         if vrf!=0:
             actions.append(ofp.action.set_field(ofp.oxm.exp2ByteValue(exp_type=1, value=vrf)))
 
-        actions.append(ofp.action.set_field(ofp.oxm.vlan_vid(value=0x1000+vlan_id)))
+        actions.append(ofp.action.set_field(ofp.oxm.vlan_vid(value=vlan_id)))
 
         request = ofp.message.flow_add(
             table_id=10,
diff --git a/ofdpa/bugs.py b/ofdpa/bugsKnown.py
similarity index 95%
rename from ofdpa/bugs.py
rename to ofdpa/bugsKnown.py
index 02dff65..c1fbe29 100644
--- a/ofdpa/bugs.py
+++ b/ofdpa/bugsKnown.py
@@ -1,17 +1,4 @@
 """
-The following tests are being done here
-1) PacketInSrcMacMiss
-2) VlanSupport
-3) L2FloodQinQ
-4) L2FloodTagged
-5) L2Flood Tagged Unknown Src
-6) L2 Unicast Tagged
-7) MTU 1500
-8) MTU 4100
-9) MTU 4500
-10) L3UnicastTagged
-11) L3VPNMPLS
-12) MPLS Termination
 """
 
 from oftest import config
diff --git a/ofdpa/flows.py b/ofdpa/flows.py
index 675b1f9..8957e44 100755
--- a/ofdpa/flows.py
+++ b/ofdpa/flows.py
@@ -81,8 +81,7 @@
                     actions=[
                         ofp.action.output(
                             port=ofp.OFPP_CONTROLLER,
-                            max_len=ofp.OFPCML_NO_BUFFER)]),
-            ],
+                            max_len=ofp.OFPCML_NO_BUFFER)]),            ],
             buffer_id=ofp.OFP_NO_BUFFER,
             priority=1)
 
@@ -853,7 +852,7 @@
         #add l2 interface group
         l2_intf_group_list=[]
         for port in config["port_map"].keys():
-            add_one_vlan_table_flow(self.controller, port, vlan_id, flag=4) 
+            add_one_vlan_table_flow(self.controller, port, vlan_id, flag=VLAN_TABLE_FLAG_ONLY_TAG) 
             if port == port2:
                 continue
             l2_intf_gid, msg=add_one_l2_interface_group(self.controller, port, vlan_id=vlan_id, is_tagged=True, send_barrier=False)
@@ -867,7 +866,8 @@
         add_mcast4_routing_flow(self.controller, vlan_id, src_ip, 0, dst_ip, mcat_group_msg.group_id)
 
         parsed_pkt = simple_udp_packet(pktlen=100, 
-                                       dl_vlan_enable=True, 
+                                       dl_vlan_enable=True,
+                                       vlan_vid=vlan_id,
                                        eth_dst=dst_mac_str,
                                        eth_src=port1_mac_str,
                                        ip_ttl=64,
@@ -951,7 +951,7 @@
         verify_packet(self, pkt, port2)
         verify_packet(self, pkt, port3)        
         verify_no_other_packets(self)  
-
+@disabled
 class L3McastToVPN(base_tests.SimpleDataPlane):
     """
     Mcast routing
