net: pkt: Clone all needed attributes
The net_pkt_clone() did not cloned all needed fields. Added what was missing from the clone. Fixes #83157 Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
This commit is contained in:
parent
7d5a912ced
commit
ec96507925
1 changed files with 10 additions and 1 deletions
|
|
@ -2068,16 +2068,25 @@ static void clone_pkt_attributes(struct net_pkt *pkt, struct net_pkt *clone_pkt)
|
|||
net_pkt_set_captured(clone_pkt, net_pkt_is_captured(pkt));
|
||||
net_pkt_set_eof(clone_pkt, net_pkt_eof(pkt));
|
||||
net_pkt_set_ptp(clone_pkt, net_pkt_is_ptp(pkt));
|
||||
net_pkt_set_ppp(clone_pkt, net_pkt_is_ppp(pkt));
|
||||
net_pkt_set_lldp(clone_pkt, net_pkt_is_lldp(pkt));
|
||||
net_pkt_set_ipv4_acd(clone_pkt, net_pkt_ipv4_acd(pkt));
|
||||
net_pkt_set_tx_timestamping(clone_pkt, net_pkt_is_tx_timestamping(pkt));
|
||||
net_pkt_set_rx_timestamping(clone_pkt, net_pkt_is_rx_timestamping(pkt));
|
||||
net_pkt_set_forwarding(clone_pkt, net_pkt_forwarding(pkt));
|
||||
net_pkt_set_chksum_done(clone_pkt, net_pkt_is_chksum_done(pkt));
|
||||
net_pkt_set_ip_reassembled(pkt, net_pkt_is_ip_reassembled(pkt));
|
||||
|
||||
net_pkt_set_cooked_mode(clone_pkt, net_pkt_is_cooked_mode(pkt));
|
||||
net_pkt_set_ipv4_pmtu(clone_pkt, net_pkt_ipv4_pmtu(pkt));
|
||||
net_pkt_set_l2_bridged(clone_pkt, net_pkt_is_l2_bridged(pkt));
|
||||
net_pkt_set_l2_processed(clone_pkt, net_pkt_is_l2_processed(pkt));
|
||||
net_pkt_set_ll_proto_type(clone_pkt, net_pkt_ll_proto_type(pkt));
|
||||
|
||||
#if defined(CONFIG_NET_OFFLOAD) || defined(CONFIG_NET_L2_IPIP)
|
||||
net_pkt_set_remote_address(clone_pkt, net_pkt_remote_address(pkt),
|
||||
sizeof(struct sockaddr_storage));
|
||||
#endif
|
||||
|
||||
if (pkt->buffer && clone_pkt->buffer) {
|
||||
memcpy(net_pkt_lladdr_src(clone_pkt), net_pkt_lladdr_src(pkt),
|
||||
sizeof(struct net_linkaddr));
|
||||
|
|
|
|||
Loading…
Reference in a new issue