[Description]

Fix the issue of mistakenly deleting entries in foe_clear_entry.
When packets are forwarded in the 6RD scenario,
HNAT entry is mistakenly deleted.

This patch fix it.

[Release-log]
N/A

Change-Id: I7ece4115f07eaca354d2c0301d6cafb2ba6e539c
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7531312
This commit is contained in:
developer 2023-05-23 18:21:08 +08:00 committed by hanwckf
parent f189c50ef1
commit 5ead770db2

View File

@ -301,7 +301,8 @@ void foe_clear_entry(struct neighbour *neigh)
for (hash_index = 0; hash_index < hnat_priv->foe_etry_num; hash_index++) {
entry = hnat_priv->foe_table_cpu[i] + hash_index;
if (entry->bfib1.state == BIND &&
entry->ipv4_hnapt.new_dip == ntohl(dip)) {
entry->ipv4_hnapt.new_dip == ntohl(dip) &&
IS_IPV4_HNAPT(entry)) {
*((u32 *)h_dest) = swab32(entry->ipv4_hnapt.dmac_hi);
*((u16 *)&h_dest[4]) =
swab16(entry->ipv4_hnapt.dmac_lo);