diff options
author | Alexander Aring <aar@pengutronix.de> | 2016-07-06 23:32:31 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-07-08 13:23:12 +0200 |
commit | 7c2b9bff56a293d2cacede87f57c3148de442458 (patch) | |
tree | 118f56d75997273830fdf51f4a8d4be58aac9bf9 | |
parent | 048e7f7e66a8693fe1707997bffd19d08cde08f5 (diff) | |
download | op-kernel-dev-7c2b9bff56a293d2cacede87f57c3148de442458.zip op-kernel-dev-7c2b9bff56a293d2cacede87f57c3148de442458.tar.gz |
fakelb: allow to run as monitor
For my RIOT-OS in userspace experiments I need to create a fakelb
monitor interface. The fakelb doesn't filter anything on L2 and is a
purely raw interface. Because nl802154 checks on promiscuous mode which
need to supported by creating monitors this patch adds some no-op
promiscuous mode setting and the promiscuous flag.
Signed-off-by: Alexander Aring <aar@pengutronix.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | drivers/net/ieee802154/fakelb.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ieee802154/fakelb.c b/drivers/net/ieee802154/fakelb.c index 860d4ae..0becf0a 100644 --- a/drivers/net/ieee802154/fakelb.c +++ b/drivers/net/ieee802154/fakelb.c @@ -112,6 +112,12 @@ static void fakelb_hw_stop(struct ieee802154_hw *hw) write_unlock_bh(&fakelb_ifup_phys_lock); } +static int +fakelb_set_promiscuous_mode(struct ieee802154_hw *hw, const bool on) +{ + return 0; +} + static const struct ieee802154_ops fakelb_ops = { .owner = THIS_MODULE, .xmit_async = fakelb_hw_xmit, @@ -119,6 +125,7 @@ static const struct ieee802154_ops fakelb_ops = { .set_channel = fakelb_hw_channel, .start = fakelb_hw_start, .stop = fakelb_hw_stop, + .set_promiscuous_mode = fakelb_set_promiscuous_mode, }; /* Number of dummy devices to be set up by this module. */ @@ -174,6 +181,7 @@ static int fakelb_add_one(struct device *dev) hw->phy->current_channel = 13; phy->channel = hw->phy->current_channel; + hw->flags = IEEE802154_HW_PROMISCUOUS; hw->parent = dev; err = ieee802154_register_hw(hw); |