summaryrefslogtreecommitdiffstats
path: root/net/mac802154/iface.c
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-28 18:21:16 +0100
committerMarcel Holtmann <marcel@holtmann.org>2014-10-28 23:19:06 +0100
commitb9ff77e50c6e469db63dfc8fcc62586522649cd3 (patch)
treefbb60275d4b9b847a609329dd97817ea345a0e3a /net/mac802154/iface.c
parent0b1db38ca26b322296cbd141f3080eccfe1cc3e1 (diff)
downloadop-kernel-dev-b9ff77e50c6e469db63dfc8fcc62586522649cd3.zip
op-kernel-dev-b9ff77e50c6e469db63dfc8fcc62586522649cd3.tar.gz
mac802154: monitor: merge into iface implementation
This patch removes the monitor implementation file and put all monitor stuff into iface file. It's now small enough to put all necessary handling into iface. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/mac802154/iface.c')
-rw-r--r--net/mac802154/iface.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
index 7e4bffc..dafb2c3 100644
--- a/net/mac802154/iface.c
+++ b/net/mac802154/iface.c
@@ -320,6 +320,12 @@ static const struct net_device_ops mac802154_wpan_ops = {
.ndo_set_mac_address = mac802154_wpan_mac_addr,
};
+static const struct net_device_ops mac802154_monitor_ops = {
+ .ndo_open = mac802154_slave_open,
+ .ndo_stop = mac802154_slave_close,
+ .ndo_start_xmit = ieee802154_monitor_start_xmit,
+};
+
static void mac802154_wpan_free(struct net_device *dev)
{
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
@@ -373,3 +379,27 @@ void mac802154_wpan_setup(struct net_device *dev)
mac802154_llsec_init(&sdata->sec);
}
+
+void mac802154_monitor_setup(struct net_device *dev)
+{
+ struct ieee802154_sub_if_data *sdata;
+
+ dev->addr_len = 0;
+ dev->hard_header_len = 0;
+ dev->needed_tailroom = 2; /* room for FCS */
+ dev->mtu = IEEE802154_MTU;
+ dev->tx_queue_len = 10;
+ dev->type = ARPHRD_IEEE802154_MONITOR;
+ dev->flags = IFF_NOARP | IFF_BROADCAST;
+ dev->watchdog_timeo = 0;
+
+ dev->destructor = free_netdev;
+ dev->netdev_ops = &mac802154_monitor_ops;
+ dev->ml_priv = &mac802154_mlme_reduced;
+
+ sdata = IEEE802154_DEV_TO_SUB_IF(dev);
+ sdata->type = IEEE802154_DEV_MONITOR;
+
+ sdata->chan = MAC802154_CHAN_NONE; /* not initialized */
+ sdata->page = 0;
+}
OpenPOWER on IntegriCloud