From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Alexander Aring <alex.aring@gmail.com>
Cc: Stefan Schmidt <stefan@datenfreihafen.org>,
linux-wpan - ML <linux-wpan@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
"open list:NETWORKING [GENERAL]" <netdev@vger.kernel.org>,
David Girault <david.girault@qorvo.com>,
Romuald Despres <romuald.despres@qorvo.com>,
Frederic Blain <frederic.blain@qorvo.com>,
Nicolas Schodet <nico@ni.fr.eu.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH v5 09/11] net: ieee802154: atusb: Call _xmit_error() when a transmission fails
Date: Mon, 25 Apr 2022 15:16:44 +0200 [thread overview]
Message-ID: <20220425151644.01dd47f4@xps13> (raw)
In-Reply-To: <CAB_54W4X4--=kmXW-xtV5WiawP0s0UWSCZWb4U8wOR-xhhgR9g@mail.gmail.com>
Hi Alexander,
alex.aring@gmail.com wrote on Mon, 25 Apr 2022 09:05:49 -0400:
> Hi,
>
> On Mon, Apr 25, 2022 at 8:35 AM Alexander Aring <alex.aring@gmail.com> wrote:
> >
> > Hi,
> >
> > On Thu, Apr 7, 2022 at 4:06 AM Miquel Raynal <miquel.raynal@bootlin.com> wrote:
> > >
> > > Hi Alexander,
> > >
> > > alex.aring@gmail.com wrote on Wed, 6 Apr 2022 17:58:59 -0400:
> > >
> > > > Hi,
> > > >
> > > > On Wed, Apr 6, 2022 at 11:34 AM Miquel Raynal <miquel.raynal@bootlin.com> wrote:
> > > > >
> > > > > ieee802154_xmit_error() is the right helper to call when a transmission
> > > > > has failed. Let's use it instead of open-coding it.
> > > > >
> > > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > > > > ---
> > > > > drivers/net/ieee802154/atusb.c | 5 ++---
> > > > > 1 file changed, 2 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/drivers/net/ieee802154/atusb.c b/drivers/net/ieee802154/atusb.c
> > > > > index f27a5f535808..d04db4d07a64 100644
> > > > > --- a/drivers/net/ieee802154/atusb.c
> > > > > +++ b/drivers/net/ieee802154/atusb.c
> > > > > @@ -271,9 +271,8 @@ static void atusb_tx_done(struct atusb *atusb, u8 seq)
> > > > > * unlikely case now that seq == expect is then true, but can
> > > > > * happen and fail with a tx_skb = NULL;
> > > > > */
> > > > > - ieee802154_wake_queue(atusb->hw);
> > > > > - if (atusb->tx_skb)
> > > > > - dev_kfree_skb_irq(atusb->tx_skb);
> > > > > + ieee802154_xmit_error(atusb->hw, atusb->tx_skb,
> > > > > + IEEE802154_SYSTEM_ERROR);
> > > >
> > > > That should then call the xmit_error for ANY other reason which is not
> > > > 802.15.4 specific which is the bus_error() function?
> > >
> > > I'll drop the bus error function so we can stick to a regular
> > > _xmit_error() call.
> > >
> >
> > Okay, this error is only hardware related.
> >
> > > Besides, we do not have any trac information nor any easy access to
> > > what failed exactly, so it's probably best anyway.
> >
> > This is correct, Somebody needs to write support for it for atusb firmware. [0]
> > However some transceivers can't yet or will never (because lack of
> > functionality?) report such errors back... they will act a little bit
> > weird.
> >
> > However, this return value is a BIG step moving into the right
> > direction that other drivers can follow.
> >
> > I think for MLME ops we can definitely handle some transmit errors now
> > and retry so that we don't wait for anything when we know the
> > transceiver was never submitting.
> >
>
> s/submitting/transmitted/
>
> I could more deeper into that topic:
>
> 1.
>
> In my opinion this result value was especially necessary for MLME-ops,
> for others which do not directly work with MAC... they provide an
> upper layer protocol if they want something reliable.
>
> 2.
>
> Later on we can do statistics like what was already going around in
> the linux-wpan community to have something like whatever dump to see
> all neighbors and see how many ack failures there, etc. Some people
> want to make some predictions about link quality here. The kernel
> should therefore only capture some stats and the $WHATEVER userspace
> capable netlink monitor daemon should make some heuristic by dumping
> those stats.
I like the idea of having a per-device dump of the stats. It would be
really straightforward to implement with the current scan
implementation that I am about to share. We already have a per PAN
structure (with information like ID, channel, last time it was seen,
strength, etc). We might improve this structure with counters for all
the common mac errors. Maybe an option to the "pans dump" command
(again, in the pipe) might be a good start to get all the stats, like
"pans dump [stats]". I'll keep this in mind.
> 3.
>
> Sometimes even IP capable protocols (using 6LoWPAN) want to know if
> ack was received or not, as mentioned. But this required additional
> handling in the socket layers... I didn't look into that topic yet but
> I know wireless solved it because they have some similar problems.
I did not look at the upper layers yet, but that would indeed be a nice
use case of these MAC statuses.
Thanks,
Miquèl
next prev parent reply other threads:[~2022-04-25 13:17 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-06 15:34 [PATCH v5 00/11] ieee802154: Better Tx error handling Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 01/11] net: ieee802154: Enhance/fix the names of the MLME return codes Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 02/11] net: ieee802154: Fill the list of " Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 03/11] net: mac802154: Save a global error code on transmissions Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 04/11] net: mac802154: Create a transmit error helper Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 05/11] net: mac802154: Create a transmit bus " Miquel Raynal
2022-04-06 21:43 ` Alexander Aring
2022-04-07 7:56 ` Miquel Raynal
2022-04-07 10:02 ` Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 06/11] net: ieee802154: at86rf230: Rename the asynchronous " Miquel Raynal
2022-04-06 21:57 ` Alexander Aring
2022-04-07 8:05 ` Miquel Raynal
2022-04-25 12:22 ` Alexander Aring
2022-04-06 15:34 ` [PATCH v5 07/11] net: ieee802154: at86rf230: Call _xmit_bus_error() when a bus error occurs Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 08/11] net: ieee802154: at86rf230: Drop debugfs support Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 09/11] net: ieee802154: atusb: Call _xmit_error() when a transmission fails Miquel Raynal
2022-04-06 21:58 ` Alexander Aring
2022-04-07 8:06 ` Miquel Raynal
2022-04-25 12:35 ` Alexander Aring
2022-04-25 13:05 ` Alexander Aring
2022-04-25 13:16 ` Miquel Raynal [this message]
2022-04-25 13:43 ` Alexander Aring
2022-04-06 15:34 ` [PATCH v5 10/11] net: ieee802154: ca8210: Use core return codes instead of hardcoding them Miquel Raynal
2022-04-06 15:34 ` [PATCH v5 11/11] net: ieee802154: ca8210: Call _xmit_error() when a transmission fails Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220425151644.01dd47f4@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=alex.aring@gmail.com \
--cc=davem@davemloft.net \
--cc=david.girault@qorvo.com \
--cc=frederic.blain@qorvo.com \
--cc=kuba@kernel.org \
--cc=linux-wpan@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nico@ni.fr.eu.org \
--cc=romuald.despres@qorvo.com \
--cc=stefan@datenfreihafen.org \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).