--- zzzz-none-000/linux-4.19.183/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c 2023-06-28 08:54:21.000000000 +0000 @@ -57,6 +57,15 @@ { int err; +#if defined(CONFIG_BCM_KF_MAP) && IS_ENABLED(CONFIG_BCM_MAP) + /* + * MAP_FORWARD_MODE1 indicates Fragment extension header inserted + * for translated MAP-T IPv6 packet in MAP-T driver. + * Netfilter should not defragment in this case. + */ + if (skbuff_bcm_ext_map_get(skb, map_forward) != MAP_FORWARD_MODE1) + { +#endif #if IS_ENABLED(CONFIG_NF_CONNTRACK) /* Previously seen (loopback)? */ if (skb_nfct(skb) && !nf_ct_is_template((struct nf_conn *)skb_nfct(skb))) @@ -71,6 +80,11 @@ /* queued */ if (err == -EINPROGRESS) return NF_STOLEN; +#if defined(CONFIG_BCM_KF_MAP) && IS_ENABLED(CONFIG_BCM_MAP) + } + else + err = 0; +#endif return err == 0 ? NF_ACCEPT : NF_DROP; }