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