[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <995c0c97-886f-fe8b-b91c-6439a32c8906@datenfreihafen.org>
Date: Thu, 7 Dec 2023 21:44:13 +0100
From: Stefan Schmidt <stefan@...enfreihafen.org>
To: Miquel Raynal <miquel.raynal@...tlin.com>,
Alexander Aring <alex.aring@...il.com>, linux-wpan@...r.kernel.org
Cc: David Girault <david.girault@...vo.com>,
Romuald Despres <romuald.despres@...vo.com>,
Frederic Blain <frederic.blain@...vo.com>,
Nicolas Schodet <nico@...fr.eu.org>,
Guilhem Imberton <guilhem.imberton@...vo.com>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
"David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Eric Dumazet <edumazet@...gle.com>,
netdev@...r.kernel.org
Subject: Re: [PATCH wpan-next 2/5] mac802154: Use the PAN coordinator
parameter when stamping packets
Hello.
On 28.11.23 12:16, Miquel Raynal wrote:
> ACKs come with the source and destination address empty, this has been
> clarified already. But there is something else: if the destination
> address is empty but the source address is valid, it may be a way to
> reach the PAN coordinator. Either the device receiving this frame is the
> PAN coordinator itself and should process what it just received
> (PACKET_HOST) or it is not and may, if supported, relay the packet as it
> is targeted to another device in the network.
>
> Right now we do not support relaying so the packet should be dropped in
> the first place, but the stamping looks more accurate this way.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@...tlin.com>
> ---
> net/mac802154/rx.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/net/mac802154/rx.c b/net/mac802154/rx.c
> index 0024341ef9c5..e40a988d6c80 100644
> --- a/net/mac802154/rx.c
> +++ b/net/mac802154/rx.c
> @@ -156,12 +156,15 @@ ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata,
>
> switch (mac_cb(skb)->dest.mode) {
> case IEEE802154_ADDR_NONE:
> - if (hdr->source.mode != IEEE802154_ADDR_NONE)
> - /* FIXME: check if we are PAN coordinator */
> - skb->pkt_type = PACKET_OTHERHOST;
> - else
> + if (hdr->source.mode == IEEE802154_ADDR_NONE)
> /* ACK comes with both addresses empty */
> skb->pkt_type = PACKET_HOST;
> + else if (!wpan_dev->parent)
> + /* No dest means PAN coordinator is the recipient */
> + skb->pkt_type = PACKET_HOST;
> + else
> + /* We are not the PAN coordinator, just relaying */
> + skb->pkt_type = PACKET_OTHERHOST;
> break;
> case IEEE802154_ADDR_LONG:
> if (mac_cb(skb)->dest.pan_id != span &&
Acked-by: Stefan Schmidt <stefan@...enfreihafen.org>
regards
Stefan Schmidt
Powered by blists - more mailing lists