From 3fa5466077289fef2e88bdd971e9d4c03cb86b6e Mon Sep 17 00:00:00 2001 From: zhanghongyu Date: Fri, 28 Jun 2024 18:57:45 +0800 Subject: [PATCH] net/pkt: correct PF_PACKET family sending errors Enable the pkt_sendmsg interface to send packets containing Layer 2 headers. Signed-off-by: zhanghongyu --- net/pkt/pkt_sendmsg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/pkt/pkt_sendmsg.c b/net/pkt/pkt_sendmsg.c index 1ff6f0eef24..12fb1a2414c 100644 --- a/net/pkt/pkt_sendmsg.c +++ b/net/pkt/pkt_sendmsg.c @@ -106,13 +106,14 @@ static uint16_t psock_send_eventhandler(FAR struct net_driver_s *dev, /* Copy the packet data into the device packet buffer and send it */ int ret = devif_send(dev, pstate->snd_buffer, - pstate->snd_buflen, 0); + pstate->snd_buflen, -NET_LL_HDRLEN(dev)); if (ret <= 0) { pstate->snd_sent = ret; goto end_wait; } + dev->d_len = dev->d_sndlen -= NET_LL_HDRLEN(dev); pstate->snd_sent = pstate->snd_buflen; /* Make sure no ARP request overwrites this ARP request. This