[][[kernel][mt7988][hnat][Fix the bind PPE when WAN/LAN2 -> LAN in 3 PPEs conditions]
[Description]
Fix the bind PPE when WAN/LAN2 -> LAN in 3 PPEs conditions.
Fix the bind PPE when wifi -> ethernet in over 1 PPE conditions.
IF without the patch, packets can't be bind to PPE1/PPE2 correctly
when WAN/LAN2 -> LAN in 3 PPEs conditions.
[Release-log]
N/A
Change-Id: I1c7838174e91b5e7656300256bcafb784b2e29bf
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/8121809
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.c
index 37d5d20..f575f1b 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.c
@@ -151,9 +151,11 @@
cr_set_bits(reg, BITS_GDM_ALL_FRC_P_PPE2);
else if (CFG_PPE_NUM == 3 && id == NR_GMAC2_PORT)
cr_set_bits(reg, BITS_GDM_ALL_FRC_P_PPE1);
-#endif
+ else
+ cr_set_bits(reg, BITS_GDM_ALL_FRC_P_PPE);
+#else
cr_set_bits(reg, BITS_GDM_ALL_FRC_P_PPE);
-
+#endif
return;
}
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/nf_hnat_mtk.h b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/nf_hnat_mtk.h
index 800c821..3c16948 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/nf_hnat_mtk.h
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/nf_hnat_mtk.h
@@ -112,11 +112,9 @@
#define skb_hnat_hf(skb) (((struct hnat_desc *)((skb)->head))->hf)
#define skb_hnat_amsdu(skb) (((struct hnat_desc *)((skb)->head))->amsdu)
#define skb_hnat_ppe2(skb) \
- ((skb_hnat_iface(skb) == FOE_MAGIC_GE_LAN2 || \
- skb_hnat_iface(skb) == FOE_MAGIC_WED2) && CFG_PPE_NUM == 3)
+ ((skb_hnat_iface(skb) == FOE_MAGIC_GE_LAN2) && (CFG_PPE_NUM == 3))
#define skb_hnat_ppe1(skb) \
- ((skb_hnat_iface(skb) == FOE_MAGIC_GE_WAN && CFG_PPE_NUM == 3) || \
- (skb_hnat_iface(skb) == FOE_MAGIC_WED1 && CFG_PPE_NUM > 1))
+ ((skb_hnat_iface(skb) == FOE_MAGIC_GE_WAN) && (CFG_PPE_NUM == 3))
#define skb_hnat_ppe(skb) \
(skb_hnat_ppe2(skb) ? 2 : (skb_hnat_ppe1(skb) ? 1 : 0))
#define headroom_iface(h) (h.iface)