ieee802154_hot_tx() and return value TX_BUSY/TX_OK

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

 



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.

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).

- Alex




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

  Powered by Linux