diff --git a/VERSION b/VERSION
index a76ccff..b0453d9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.7.1
+3.7.2-dev
diff --git a/agent/src/core_api_handler.cc b/agent/src/core_api_handler.cc
index 0e0bb62..15ed1ae 100644
--- a/agent/src/core_api_handler.cc
+++ b/agent/src/core_api_handler.cc
@@ -1880,11 +1880,14 @@
             BCMOLT_FIELD_SET(&c_val, classifier, dst_mac, d_mac);
         }
 
-        /*
-        if (classifier.src_mac()) {
-            BCMBAL_ATTRIBUTE_PROP_SET(&val, classifier, src_mac, classifier.src_mac());
+        if (classifier.src_mac().size() > 0) {
+            bcmos_mac_address s_mac = {};
+            bcmos_mac_address_init(&s_mac);
+            memcpy(s_mac.u8, classifier.src_mac().data(), sizeof(s_mac.u8));
+            OPENOLT_LOG(DEBUG, openolt_log_id, "classify src_mac %02x:%02x:%02x:%02x:%02x:%02x\n", s_mac.u8[0],
+                        s_mac.u8[1], s_mac.u8[2], s_mac.u8[3], s_mac.u8[4], s_mac.u8[5]);
+            BCMOLT_FIELD_SET(&c_val, classifier, src_mac, s_mac);
         }
-        */
 
         if (classifier.ip_proto()) {
             OPENOLT_LOG(DEBUG, openolt_log_id, "classify ip_proto %d\n", classifier.ip_proto());
@@ -1968,6 +1971,11 @@
         BCMOLT_FIELD_SET(&a_val, action, cmds_bitmask, BCMOLT_ACTION_CMD_ID_REMOVE_OUTER_TAG);
     }
 
+    if (cmd.translate_outer_tag()) {
+        OPENOLT_LOG(DEBUG, openolt_log_id, "action translate o_tag\n");
+        BCMOLT_FIELD_SET(&a_val, action, cmds_bitmask, BCMOLT_ACTION_CMD_ID_XLATE_OUTER_TAG);
+    }
+
     if (action.o_vid()) {
         OPENOLT_LOG(DEBUG, openolt_log_id, "action o_vid=%d\n", action.o_vid());
         o_vid = action.o_vid();
diff --git a/agent/test/src/test_core.cc b/agent/test/src/test_core.cc
index 250bb21..75a26ad 100644
--- a/agent/test/src/test_core.cc
+++ b/agent/test/src/test_core.cc
@@ -1411,6 +1411,8 @@
             classifier->set_src_port(0);
             classifier->set_dst_port(0);
             classifier->set_pkt_tag_type("single_tag");
+            classifier->set_src_mac("aabbccddeeff");
+            classifier->set_dst_mac("112233445566");
 
             action->set_o_vid(12);
             action->set_o_pbits(0);
