diff --git a/subsys/net/ip/ipv4_fragment.c b/subsys/net/ip/ipv4_fragment.c index 69fe9522159..720430753a9 100644 --- a/subsys/net/ip/ipv4_fragment.c +++ b/subsys/net/ip/ipv4_fragment.c @@ -441,6 +441,8 @@ static int send_ipv4_fragment(struct net_pkt *pkt, uint16_t rand_id, uint16_t fi net_pkt_cursor_backup(pkt, &cur_pkt); net_pkt_cursor_backup(frag_pkt, &cur); + net_pkt_set_ll_proto_type(frag_pkt, net_pkt_ll_proto_type(pkt)); + /* Copy the original IPv4 headers back to the fragment packet */ if (net_pkt_copy(frag_pkt, pkt, net_pkt_ip_hdr_len(pkt))) { goto fail; diff --git a/subsys/net/ip/ipv6_fragment.c b/subsys/net/ip/ipv6_fragment.c index f50e5f9e4e2..a32aae979b1 100644 --- a/subsys/net/ip/ipv6_fragment.c +++ b/subsys/net/ip/ipv6_fragment.c @@ -609,6 +609,8 @@ static int send_ipv6_fragment(struct net_pkt *pkt, net_pkt_cursor_init(pkt); + net_pkt_set_ll_proto_type(frag_pkt, net_pkt_ll_proto_type(pkt)); + /* We copy original headers back to the fragment packet * Note that we insert the right next header to point to fragment header */