Hi, On Thu, Jan 26, 2023 at 8:29 PM Alexander Aring <aahringo@xxxxxxxxxx> wrote: > > Hi, > > On Wed, Jan 25, 2023 at 5:00 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > Hi Alexander, > > > > alex.aring@xxxxxxxxx wrote on Tue, 24 Jan 2023 21:31:33 -0500: > > > > > Hi, > > > > > > On Tue, Jan 24, 2023 at 5:08 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > > > > > Hi Alexander, > > > > > > > > aahringo@xxxxxxxxxx wrote on Mon, 23 Jan 2023 09:02:48 -0500: > > > > > > > > > Hi, > > > > > > > > > > On Mon, Jan 23, 2023 at 9:01 AM Alexander Aring <aahringo@xxxxxxxxxx> wrote: > > > > > > > > > > > > Hi, > > > > > > > > > > > > On Wed, Jan 18, 2023 at 4:21 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > > > > > > > > > > > Hi Alexander, > > > > > > > > > > > > > > aahringo@xxxxxxxxxx wrote on Sun, 15 Jan 2023 20:54:02 -0500: > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > On Fri, Jan 6, 2023 at 6:33 AM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote: > > > > > > > > > > > > > > > > > > Scanning being now supported, we can eg. play with hwsim to verify > > > > > > > > > everything works as soon as this series including beaconing support gets > > > > > > > > > merged. > > > > > > > > > > > > > > > > > > > > > > > > > I am not sure if a beacon send should be handled by an mlme helper > > > > > > > > handling as this is a different use-case and the user does not trigger > > > > > > > > an mac command and is waiting for some reply and a more complex > > > > > > > > handling could be involved. There is also no need for hotpath xmit > > > > > > > > handling is disabled during this time. It is just an async messaging > > > > > > > > in some interval and just "try" to send it and don't care if it fails, > > > > > > > > or? For mac802154 therefore I think we should use the dev_queue_xmit() > > > > > > > > function to queue it up to send it through the hotpath? > > > > > > > > > > > > > > > > I can ack those patches, it will work as well. But I think we should > > > > > > > > switch at some point to dev_queue_xmit(). It should be simple to > > > > > > > > switch it. Just want to mention there is a difference which will be > > > > > > > > there in mac-cmds like association. > > > > > > > > > > > > > > I see what you mean. That's indeed true, we might just switch to > > > > > > > a less constrained transmit path. > > > > > > > > > > > > > > > > > > > I would define the difference in bypass qdisc or not. Whereas the > > > > > > qdisc can drop or delay transmitting... For me, the qdisc is currently > > > > > > in a "works for now" state. > > > > > > > > > > probably also bypass other hooks like tc, etc. :-/ Not sure if we want that. > > > > > > > > Actually, IIUC, we no longer want to go through the entire net stack. > > > > We still want to bypass it but without stopping/flushing the full > > > > queue like with an mlme transmission, so what about using > > > > ieee802154_subif_start_xmit() instead of dev_queue_xmit()? I think it > > > > is more appropriate. > > > > > > I do not understand, what do we currently do with mlme ops via the > > > ieee802154_subif_start_xmit() function, or? So we bypass everything > > > from dev_queue_xmit() until do_xmit() netdev callback. > > > > Yes, that's the plan. We don't want any of the net stack features when > > sending beacons. > > > > > I think it is fine, also I think "mostly" only dataframes should go > > > through dev_queue_xmit(). With a HardMAC transceiver we would have > > > control about "mostly" other frames than data either. So we should do > > > everything with mlme-ops do what the spec says (to match up with > > > HardMAC behaviour?) and don't allow common net hooks/etc. to change > > > this behaviour? > > > > To summarize: > > - Data frames -> should go through dev_queue_xmit() > > there are exceptions... e.g. AF_PACKET raw sockets can build whatever > it wants (but it will probably not being supported by HardMAC > transceivers) and send it out. There is no real control about it. So > mostly I would agree here. > with "no real control" I mean the user needs to know what it's doing there and maybe the user just wants to play around e.g. monitor interface sending, whereas a monitor does not have an address being set up. - Alex