Re: ieee802154_hot_tx() and return value TX_BUSY/TX_OK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

aahringo@xxxxxxxxxx wrote on Wed, 12 Apr 2023 08:28:42 -0400:

> Hi,
> 
> I am asking myself if we do the right return value in
> ieee802154_hot_tx(). Currently we transmit and stop the queue as we
> know the transceiver (currently only has one tx buffer (sometimes
> tx/rx is the same buffer)) is busy. As:
> 
> ieee802154_hot_tx() - we transmit
> ieee802154_hold_queue()
> return NETDEV_TX_OK
> 
> but I think or I have the feeling it should be run like this:
> 
> ieee802154_hot_tx() - we transmit
> return NETDEV_TX_OK
> ieee802154_hot_tx() - we are busy
> ieee802154_hold_queue()
> return NETDEV_TX_BUSY
> 
> The side effects are probably how the qdisc implementation handles the
> different return values. Some qdisc implementations are evaluating
> this and need to know that it hits hardware limitation... Some qdiscs
> don't evaluate this value.

I get what you mean regarding the return value despite my limited
knowledge about qdiscs. But I am wondering how we would be supposed to
return two values upon transmission. Is net/ providing an
infrastructure for the second time we need to do that?

> This is just a brainstorming here to find if what we do is currently
> correct or not correct... we can move this discussion to netdev to
> clarify this... or we figure it out by ourselves? Somehow it bothers
> me that there is an additional extra callback to detect it is busy and
> I can't believe this is not optimized yet.
> 
> However we should keep that in mind that I think there is some
> clarification needed.
> 
> btw: I also have some other things in my mind that currently could
> make problems in the qdisc handling related to 802.15.4 (and may with
> 6LoWPAN on top).

I have no idea how qdiscs policies are chosen, but are we supposed to
support all of them? Maybe all are not relevant to 802.15.4?

Thanks,
Miquèl




[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux