mac802154: Handle passive scanning
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 3 Jan 2023 16:56:44 +0000 (17:56 +0100)
committerStefan Schmidt <stefan@datenfreihafen.org>
Tue, 3 Jan 2023 18:48:43 +0000 (19:48 +0100)
commit57588c71177f0bfc08509c2c3a9bfe32850c0786
treed381093fc255c71da0f2acddcd0eb20dd0c8a9f4
parentdd18096256c89612e3eb858de748c29d10e8f3e7
mac802154: Handle passive scanning

Implement the core hooks in order to provide the softMAC layer support
for passive scans. Scans are requested by the user and can be aborted.

Changing channels manually is prohibited during scans.

The implementation uses a workqueue triggered at a certain interval
depending on the symbol duration for the current channel and the
duration order provided. More advanced drivers with internal scheduling
capabilities might require additional care but there is none mainline
yet.

Received beacons during a passive scan are processed in a work queue and
their result forwarded to the upper layer.

Active scanning is not supported yet.

Co-developed-by: David Girault <david.girault@qorvo.com>
Signed-off-by: David Girault <david.girault@qorvo.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20230103165644.432209-7-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
include/linux/ieee802154.h
include/net/cfg802154.h
net/mac802154/Makefile
net/mac802154/cfg.c
net/mac802154/ieee802154_i.h
net/mac802154/iface.c
net/mac802154/main.c
net/mac802154/rx.c
net/mac802154/scan.c [new file with mode: 0644]