[][Kernel][mt7988][hnat][Revise HNAT version number]
[Description]
Change HNAT version number to align with NETSYS version number.
- version 1.1: mt7621, mt7623
- version 1.2: mt7622
- version 1.3: mt7629
- version 2: mt7981, mt7986
- version 3: mt7988
If without this patch, we might get confused between HNAT and
NETSYS version number.
[Release-log]
N/A
Change-Id: I8b15a44050e9312f0b672c850d6ad7e9769d36f3
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6858141
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 5312a0b..e162492 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
@@ -308,8 +308,9 @@
writel(HASH_SEED_KEY, hnat_priv->ppe_base[ppe_id] + PPE_HASH_SEED);
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_TB_CFG, XMODE, 0);
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_TB_CFG, TB_ENTRY_SIZE,
- (hnat_priv->data->version == MTK_HNAT_V5) ? ENTRY_128B :
- (hnat_priv->data->version == MTK_HNAT_V4) ? ENTRY_96B : ENTRY_80B);
+ (hnat_priv->data->version == MTK_HNAT_V3) ? ENTRY_128B :
+ (hnat_priv->data->version == MTK_HNAT_V2) ? ENTRY_96B :
+ ENTRY_80B);
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_TB_CFG, SMA, SMA_FWD_CPU_BUILD_ENTRY);
/* set ip proto */
@@ -325,12 +326,12 @@
BIT_IPV4_DSL_EN | BIT_IPV6_6RD_EN |
BIT_IPV6_3T_ROUTE_EN | BIT_IPV6_5T_ROUTE_EN);
- if (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5)
+ if (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3)
cr_set_bits(hnat_priv->ppe_base[ppe_id] + PPE_FLOW_CFG,
BIT_IPV4_MAPE_EN | BIT_IPV4_MAPT_EN);
- if (hnat_priv->data->version == MTK_HNAT_V5)
+ if (hnat_priv->data->version == MTK_HNAT_V3)
cr_set_bits(hnat_priv->ppe_base[ppe_id] + PPE_FLOW_CFG,
BIT_IPV6_NAT_EN | BIT_IPV6_NAPT_EN |
BIT_CS0_RM_ALL_IP6_IP_EN);
@@ -378,13 +379,13 @@
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_GLO_CFG, TTL0_DRP, 0);
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_GLO_CFG, MCAST_TB_EN, 1);
- if (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) {
+ if (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) {
writel(0xcb777, hnat_priv->ppe_base[ppe_id] + PPE_DFT_CPORT1);
writel(0x7f, hnat_priv->ppe_base[ppe_id] + PPE_SBW_CTRL);
}
- if (hnat_priv->data->version == MTK_HNAT_V5) {
+ if (hnat_priv->data->version == MTK_HNAT_V3) {
cr_set_field(hnat_priv->ppe_base[ppe_id] + PPE_SB_FIFO_DBG,
SB_MED_FULL_DRP_EN, 1);
}
@@ -433,7 +434,7 @@
writel(hnat_priv->foe_table_dev[ppe_id], hnat_priv->ppe_base[ppe_id] + PPE_TB_BASE);
memset(hnat_priv->foe_table_cpu[ppe_id], 0, foe_table_sz);
- if (hnat_priv->data->version == MTK_HNAT_V1)
+ if (hnat_priv->data->version == MTK_HNAT_V1_1)
exclude_boundary_entry(hnat_priv->foe_table_cpu[ppe_id]);
if (hnat_priv->data->per_flow_accounting) {
@@ -525,12 +526,12 @@
BIT_IPV6_6RD_EN | BIT_IPV6_3T_ROUTE_EN |
BIT_IPV6_5T_ROUTE_EN | BIT_FUC_FOE | BIT_FMC_FOE);
- if (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5)
+ if (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3)
cr_clr_bits(hnat_priv->ppe_base[ppe_id] + PPE_FLOW_CFG,
BIT_IPV4_MAPE_EN | BIT_IPV4_MAPT_EN);
- if (hnat_priv->data->version == MTK_HNAT_V5)
+ if (hnat_priv->data->version == MTK_HNAT_V3)
cr_clr_bits(hnat_priv->ppe_base[ppe_id] + PPE_FLOW_CFG,
BIT_IPV6_NAT_EN | BIT_IPV6_NAPT_EN |
BIT_CS0_RM_ALL_IP6_IP_EN);
@@ -596,8 +597,8 @@
*/
if (hnat_priv->data->whnat) {
ra_sw_nat_hook_rx =
- (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) ?
+ (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) ?
mtk_sw_nat_hook_rx : NULL;
ra_sw_nat_hook_tx = mtk_sw_nat_hook_tx;
ppe_dev_register_hook = mtk_ppe_dev_register_hook;
@@ -659,7 +660,7 @@
hnat_priv->ppe_base[ppe_id] + PPE_TB_BASE);
memset(hnat_priv->foe_table_cpu[ppe_id], 0, foe_table_sz);
- if (hnat_priv->data->version == MTK_HNAT_V1)
+ if (hnat_priv->data->version == MTK_HNAT_V1_1)
exclude_boundary_entry(hnat_priv->foe_table_cpu[ppe_id]);
if (hnat_priv->data->per_flow_accounting) {
@@ -840,7 +841,7 @@
}
timer_setup(&hnat_priv->hnat_sma_build_entry_timer, hnat_sma_build_entry, 0);
- if (hnat_priv->data->version == MTK_HNAT_V3) {
+ if (hnat_priv->data->version == MTK_HNAT_V1_3) {
timer_setup(&hnat_priv->hnat_reset_timestamp_timer, hnat_reset_timestamp, 0);
hnat_priv->hnat_reset_timestamp_timer.expires = jiffies;
add_timer(&hnat_priv->hnat_reset_timestamp_timer);
@@ -886,7 +887,7 @@
hnat_deinit_debugfs(hnat_priv);
hnat_release_netdev();
del_timer_sync(&hnat_priv->hnat_sma_build_entry_timer);
- if (hnat_priv->data->version == MTK_HNAT_V3)
+ if (hnat_priv->data->version == MTK_HNAT_V1_3)
del_timer_sync(&hnat_priv->hnat_reset_timestamp_timer);
if (IS_HQOS_MODE && IS_GMAC1_MODE)
@@ -900,7 +901,7 @@
.whnat = false,
.per_flow_accounting = false,
.mcast = false,
- .version = MTK_HNAT_V1,
+ .version = MTK_HNAT_V1_1,
};
static const struct mtk_hnat_data hnat_data_v2 = {
@@ -908,7 +909,7 @@
.whnat = true,
.per_flow_accounting = true,
.mcast = false,
- .version = MTK_HNAT_V2,
+ .version = MTK_HNAT_V1_2,
};
static const struct mtk_hnat_data hnat_data_v3 = {
@@ -916,7 +917,7 @@
.whnat = false,
.per_flow_accounting = false,
.mcast = false,
- .version = MTK_HNAT_V3,
+ .version = MTK_HNAT_V1_3,
};
static const struct mtk_hnat_data hnat_data_v4 = {
@@ -924,7 +925,7 @@
.whnat = true,
.per_flow_accounting = true,
.mcast = false,
- .version = MTK_HNAT_V4,
+ .version = MTK_HNAT_V2,
};
static const struct mtk_hnat_data hnat_data_v5 = {
@@ -932,7 +933,7 @@
.whnat = true,
.per_flow_accounting = true,
.mcast = false,
- .version = MTK_HNAT_V5,
+ .version = MTK_HNAT_V3,
};
const struct of_device_id of_hnat_match[] = {
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.h b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.h
index 95c7cd6..f2d5dc8 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.h
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat.h
@@ -834,11 +834,11 @@
};
enum mtk_hnat_version {
- MTK_HNAT_V1 = 1, /* version 1: mt7621, mt7623 */
- MTK_HNAT_V2, /* version 2: mt7622 */
- MTK_HNAT_V3, /* version 3: mt7629 */
- MTK_HNAT_V4, /* version 4: mt7981, mt7986 */
- MTK_HNAT_V5, /* version 5: mt7988 */
+ MTK_HNAT_V1_1 = 1, /* version 1.1: mt7621, mt7623 */
+ MTK_HNAT_V1_2, /* version 1.2: mt7622 */
+ MTK_HNAT_V1_3, /* version 1.3: mt7629 */
+ MTK_HNAT_V2, /* version 2: mt7981, mt7986 */
+ MTK_HNAT_V3, /* version 3: mt7988 */
};
struct mtk_hnat_data {
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
index dd31560..81d528f 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
@@ -828,7 +828,7 @@
cnt_r1 = readl(h->ppe_base[ppe_id] + PPE_MIB_SER_R1);
cnt_r2 = readl(h->ppe_base[ppe_id] + PPE_MIB_SER_R2);
- if (hnat_priv->data->version == MTK_HNAT_V5) {
+ if (hnat_priv->data->version == MTK_HNAT_V3) {
cnt_r3 = readl(h->ppe_base[ppe_id] + PPE_MIB_SER_R3);
*bytes = cnt_r0 + ((u64)cnt_r1 << 32);
*packets = cnt_r2 + ((u64)cnt_r3 << 32);
@@ -2106,7 +2106,7 @@
"scheduler: %d\nhw resv: %d\nsw resv: %d\n", scheduler,
(qtx_cfg >> 8) & 0xff, qtx_cfg & 0xff);
- if (hnat_priv->data->version != MTK_HNAT_V1) {
+ if (hnat_priv->data->version != MTK_HNAT_V1_1) {
/* Switch to debug mode */
cr_set_field(h->fe_base + QTX_MIB_IF, MIB_ON_QTX_CFG, 1);
cr_set_field(h->fe_base + QTX_MIB_IF, VQTX_MIB_EN, 1);
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_mcast.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_mcast.c
index 210b191..edf17cb 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_mcast.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_mcast.c
@@ -289,7 +289,7 @@
if (!pmcast)
return -1;
- if (hnat_priv->data->version == MTK_HNAT_V1)
+ if (hnat_priv->data->version == MTK_HNAT_V1_1)
pmcast->max_entry = 0x10;
else
pmcast->max_entry = MAX_MCAST_ENTRY;
@@ -306,7 +306,7 @@
hnat_priv->pmcast = pmcast;
/* mt7629 should checkout mcast entry life time manualy */
- if (hnat_priv->data->version == MTK_HNAT_V3) {
+ if (hnat_priv->data->version == MTK_HNAT_V1_3) {
timer_setup(&hnat_priv->hnat_mcast_check_timer,
hnat_mcast_check_timestamp, 0);
hnat_priv->hnat_mcast_check_timer.expires = jiffies;
@@ -341,7 +341,7 @@
if (!pmcast)
return -EINVAL;
- if (hnat_priv->data->version == MTK_HNAT_V3)
+ if (hnat_priv->data->version == MTK_HNAT_V1_3)
del_timer_sync(&hnat_priv->hnat_mcast_check_timer);
flush_work(&pmcast->work);
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
index b377c16..02ec4f0 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
@@ -440,11 +440,11 @@
}
if (IS_BOND_MODE &&
- (((hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) &&
+ (((hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) &&
(skb_hnat_entry(skb) != 0x7fff)) ||
- ((hnat_priv->data->version != MTK_HNAT_V4 &&
- hnat_priv->data->version != MTK_HNAT_V5) &&
+ ((hnat_priv->data->version != MTK_HNAT_V2 &&
+ hnat_priv->data->version != MTK_HNAT_V3) &&
(skb_hnat_entry(skb) != 0x3fff))))
skb_set_hash(skb, skb_hnat_entry(skb) >> 1, PKT_HASH_TYPE_L4);
@@ -1071,8 +1071,8 @@
entry.bfib1.vlan_layer += (hw_path->flags & FLOW_OFFLOAD_PATH_VLAN) ? 1 : 0;
entry.bfib1.vpm = (entry.bfib1.vlan_layer) ? 1 : 0;
entry.bfib1.cah = 1;
- entry.bfib1.time_stamp = (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) ?
+ entry.bfib1.time_stamp = (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) ?
readl(hnat_priv->fe_base + 0x0010) & (0xFF) :
readl(hnat_priv->fe_base + 0x0010) & (0x7FFF);
@@ -1082,7 +1082,7 @@
if (hnat_priv->data->mcast &&
is_multicast_ether_addr(ð->h_dest[0])) {
entry.ipv4_hnapt.iblk2.mcast = 1;
- if (hnat_priv->data->version == MTK_HNAT_V3) {
+ if (hnat_priv->data->version == MTK_HNAT_V1_3) {
entry.bfib1.sta = 1;
entry.ipv4_hnapt.m_timestamp = foe_timestamp(hnat_priv);
}
@@ -1091,8 +1091,8 @@
}
entry.ipv4_hnapt.iblk2.port_ag =
- (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) ? 0xf : 0x3f;
+ (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) ? 0xf : 0x3f;
break;
case IPV4_DSLITE:
case IPV4_MAP_E:
@@ -1104,7 +1104,7 @@
if (hnat_priv->data->mcast &&
is_multicast_ether_addr(ð->h_dest[0])) {
entry.ipv6_5t_route.iblk2.mcast = 1;
- if (hnat_priv->data->version == MTK_HNAT_V3) {
+ if (hnat_priv->data->version == MTK_HNAT_V1_3) {
entry.bfib1.sta = 1;
entry.ipv4_hnapt.m_timestamp = foe_timestamp(hnat_priv);
}
@@ -1113,8 +1113,8 @@
}
entry.ipv6_5t_route.iblk2.port_ag =
- (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) ? 0xf : 0x3f;
+ (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) ? 0xf : 0x3f;
break;
}
return entry;
@@ -1458,8 +1458,10 @@
if (IS_HQOS_MODE) {
entry.ipv4_hnapt.iblk2.qid =
- (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) ?
+ (hnat_priv->data->version ==
+ MTK_HNAT_V2 ||
+ hnat_priv->data->version ==
+ MTK_HNAT_V3) ?
skb->mark & 0x7f : skb->mark & 0xf;
#if defined(CONFIG_MEDIATEK_NETSYS_V3)
if ((IS_HQOS_UL_MODE && IS_WAN(dev)) ||
@@ -1600,16 +1602,16 @@
if (IS_IPV4_GRP(foe)) {
entry.ipv4_hnapt.iblk2.dp = gmac;
entry.ipv4_hnapt.iblk2.port_mg =
- (hnat_priv->data->version == MTK_HNAT_V1) ? 0x3f : 0;
+ (hnat_priv->data->version == MTK_HNAT_V1_1) ? 0x3f : 0;
if (qos_toggle) {
- if (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) {
+ if (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) {
entry.ipv4_hnapt.iblk2.qid = qid & 0x7f;
} else {
/* qid[5:0]= port_mg[1:0]+ qid[3:0] */
entry.ipv4_hnapt.iblk2.qid = qid & 0xf;
- if (hnat_priv->data->version != MTK_HNAT_V1)
+ if (hnat_priv->data->version != MTK_HNAT_V1_1)
entry.ipv4_hnapt.iblk2.port_mg |=
((qid >> 4) & 0x3);
@@ -1647,16 +1649,16 @@
} else {
entry.ipv6_5t_route.iblk2.dp = gmac;
entry.ipv6_5t_route.iblk2.port_mg =
- (hnat_priv->data->version == MTK_HNAT_V1) ? 0x3f : 0;
+ (hnat_priv->data->version == MTK_HNAT_V1_1) ? 0x3f : 0;
if (qos_toggle) {
- if (hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) {
+ if (hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) {
entry.ipv6_5t_route.iblk2.qid = qid & 0x7f;
} else {
/* qid[5:0]= port_mg[1:0]+ qid[3:0] */
entry.ipv6_5t_route.iblk2.qid = qid & 0xf;
- if (hnat_priv->data->version != MTK_HNAT_V1)
+ if (hnat_priv->data->version != MTK_HNAT_V1_1)
entry.ipv6_5t_route.iblk2.port_mg |=
((qid >> 4) & 0x3);
@@ -1802,10 +1804,10 @@
/* MT7622 wifi hw_nat not support QoS */
if (IS_IPV4_GRP(entry)) {
entry->ipv4_hnapt.iblk2.fqos = 0;
- if ((hnat_priv->data->version == MTK_HNAT_V2 &&
+ if ((hnat_priv->data->version == MTK_HNAT_V1_2 &&
gmac_no == NR_WHNAT_WDMA_PORT) ||
- ((hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) &&
+ ((hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) &&
(gmac_no == NR_WDMA0_PORT || gmac_no == NR_WDMA1_PORT))) {
entry->ipv4_hnapt.winfo.bssid = skb_hnat_bss_id(skb);
entry->ipv4_hnapt.winfo.wcid = skb_hnat_wc_id(skb);
@@ -1872,10 +1874,10 @@
#endif
} else {
entry->ipv6_5t_route.iblk2.fqos = 0;
- if ((hnat_priv->data->version == MTK_HNAT_V2 &&
+ if ((hnat_priv->data->version == MTK_HNAT_V1_2 &&
gmac_no == NR_WHNAT_WDMA_PORT) ||
- ((hnat_priv->data->version == MTK_HNAT_V4 ||
- hnat_priv->data->version == MTK_HNAT_V5) &&
+ ((hnat_priv->data->version == MTK_HNAT_V2 ||
+ hnat_priv->data->version == MTK_HNAT_V3) &&
(gmac_no == NR_WDMA0_PORT || gmac_no == NR_WDMA1_PORT))) {
entry->ipv6_5t_route.winfo.bssid = skb_hnat_bss_id(skb);
entry->ipv6_5t_route.winfo.wcid = skb_hnat_wc_id(skb);
@@ -2156,7 +2158,7 @@
mtk_hnat_dscp_update(skb, entry);
/* update mcast timestamp*/
- if (hnat_priv->data->version == MTK_HNAT_V3 &&
+ if (hnat_priv->data->version == MTK_HNAT_V1_3 &&
hnat_priv->data->mcast && entry->bfib1.sta == 1)
entry->ipv4_hnapt.m_timestamp = foe_timestamp(hnat_priv);
@@ -2411,7 +2413,7 @@
struct sk_buff *skb,
const struct nf_hook_state *state)
{
- if ((hnat_priv->data->version == MTK_HNAT_V2) &&
+ if ((hnat_priv->data->version == MTK_HNAT_V1_2) &&
unlikely(IS_EXT(state->in) && IS_EXT(state->out)))
hnat_set_head_frags(state, skb, 1, hnat_set_alg);