Merge "Marvell: MHSLPONLGCY-166 l2fwserver doesn't work on AvantaMC when working in GMAC's bridge mode"
diff --git a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
index da61465..dbe07b3 100755
--- a/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
+++ b/arch/arm/plat-feroceon/mv_drivers_lsp/mv_cph/mv_cph_app.c
@@ -1288,6 +1288,9 @@
if (state == FALSE)
return 0;
+ cph_db_get_param(CPH_DB_PARAM_PROFILE_ID, &profile_id);
+ cph_db_get_param(CPH_DB_PARAM_ACTIVE_PORT, &active_port);
+
/* Parse packets */
skb_old = (struct sk_buff *)(pkt->osInfo);
skb_new = (struct sk_buff *)(pkt->osInfo);
@@ -1298,8 +1301,8 @@
return 0;
}
- /* U/S */
- if(flow_rule.dir == CPH_DIR_US)
+ /* U/S or in bridged mode between GMAC1 and GMAC0 */
+ if((flow_rule.dir == CPH_DIR_US) || (profile_id == TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT))
{
/* Forward packet to peer port */
rc = cph_app_parse_peer_port(port, &peer_port);
@@ -1327,8 +1330,6 @@
skb_old->len -= MV_ETH_CRC_SIZE; // Remove CRC
/* If WAN interface is GMAC1, remove MH in upstream */
- cph_db_get_param(CPH_DB_PARAM_PROFILE_ID, &profile_id);
- cph_db_get_param(CPH_DB_PARAM_ACTIVE_PORT, &active_port);
if ((profile_id == TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT) && (active_port == MV_APP_GMAC_PORT_1))
{
skb_old->data += MV_ETH_MH_SIZE;