diff options
author | alex.bluesman.smirnov@gmail.com <alex.bluesman.smirnov@gmail.com> | 2012-06-25 19:24:52 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-27 00:06:11 -0400 |
commit | 5265f46711ca4e6c389519a00e97036ddb892781 (patch) | |
tree | b04bf7379bd3e226e777c01cdf9b244325083dc7 /net/mac802154/mac_cmd.c | |
parent | 66b69d4d7fe3026a4add368b72905b4d7878c320 (diff) |
mac802154: mlme start request
Basic preparations to start the interface.
Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac802154/mac_cmd.c')
-rw-r--r-- | net/mac802154/mac_cmd.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/mac802154/mac_cmd.c b/net/mac802154/mac_cmd.c index db8341957bd2..7f5403e5ea91 100644 --- a/net/mac802154/mac_cmd.c +++ b/net/mac802154/mac_cmd.c | |||
@@ -25,12 +25,36 @@ | |||
25 | #include <linux/skbuff.h> | 25 | #include <linux/skbuff.h> |
26 | #include <linux/if_arp.h> | 26 | #include <linux/if_arp.h> |
27 | 27 | ||
28 | #include <net/ieee802154.h> | ||
28 | #include <net/ieee802154_netdev.h> | 29 | #include <net/ieee802154_netdev.h> |
29 | #include <net/wpan-phy.h> | 30 | #include <net/wpan-phy.h> |
30 | #include <net/mac802154.h> | 31 | #include <net/mac802154.h> |
32 | #include <net/nl802154.h> | ||
31 | 33 | ||
32 | #include "mac802154.h" | 34 | #include "mac802154.h" |
33 | 35 | ||
36 | static int mac802154_mlme_start_req(struct net_device *dev, | ||
37 | struct ieee802154_addr *addr, | ||
38 | u8 channel, u8 page, | ||
39 | u8 bcn_ord, u8 sf_ord, | ||
40 | u8 pan_coord, u8 blx, | ||
41 | u8 coord_realign) | ||
42 | { | ||
43 | BUG_ON(addr->addr_type != IEEE802154_ADDR_SHORT); | ||
44 | |||
45 | mac802154_dev_set_pan_id(dev, addr->pan_id); | ||
46 | mac802154_dev_set_short_addr(dev, addr->short_addr); | ||
47 | mac802154_dev_set_ieee_addr(dev); | ||
48 | mac802154_dev_set_page_channel(dev, page, channel); | ||
49 | |||
50 | /* FIXME: add validation for unused parameters to be sane | ||
51 | * for SoftMAC | ||
52 | */ | ||
53 | ieee802154_nl_start_confirm(dev, IEEE802154_SUCCESS); | ||
54 | |||
55 | return 0; | ||
56 | } | ||
57 | |||
34 | struct wpan_phy *mac802154_get_phy(const struct net_device *dev) | 58 | struct wpan_phy *mac802154_get_phy(const struct net_device *dev) |
35 | { | 59 | { |
36 | struct mac802154_sub_if_data *priv = netdev_priv(dev); | 60 | struct mac802154_sub_if_data *priv = netdev_priv(dev); |
@@ -46,4 +70,5 @@ struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced = { | |||
46 | 70 | ||
47 | struct ieee802154_mlme_ops mac802154_mlme_wpan = { | 71 | struct ieee802154_mlme_ops mac802154_mlme_wpan = { |
48 | .get_phy = mac802154_get_phy, | 72 | .get_phy = mac802154_get_phy, |
73 | .start_req = mac802154_mlme_start_req, | ||
49 | }; | 74 | }; |