mac802154: add mac802154_dev_get_dsn()
authorTony Cheneau <tony.cheneau@amnesiak.org>
Mon, 25 Mar 2013 17:59:29 +0000 (17:59 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Mar 2013 16:37:58 +0000 (12:37 -0400)
Bring-over mac802154_dev_get_dsn() function that was present in the
Linux ZigBee kernel. This function is called by the 6LoWPAN code in
order to properly set the DSN (Data Sequence Number) value in the IEEE
802.15.4 frame.

Signed-off-by: Tony Cheneau <tony.cheneau@amnesiak.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mac802154/mac802154.h
net/mac802154/mac_cmd.c
net/mac802154/mib.c

index a4dcaf1dd4b6e2cf29c47a1f4cc2084fe16ca735..21fa386f46759235ddef9a340221e8605de85dbf 100644 (file)
@@ -114,5 +114,6 @@ void mac802154_dev_set_ieee_addr(struct net_device *dev);
 u16 mac802154_dev_get_pan_id(const struct net_device *dev);
 void mac802154_dev_set_pan_id(struct net_device *dev, u16 val);
 void mac802154_dev_set_page_channel(struct net_device *dev, u8 page, u8 chan);
+u8 mac802154_dev_get_dsn(const struct net_device *dev);
 
 #endif /* MAC802154_H */
index d8d2770060899d18d0945c72aa2c83488ee4fa72..a99910d4d52f8403a8c2141b473deba885b977ad 100644 (file)
@@ -73,4 +73,5 @@ struct ieee802154_mlme_ops mac802154_mlme_wpan = {
        .start_req = mac802154_mlme_start_req,
        .get_pan_id = mac802154_dev_get_pan_id,
        .get_short_addr = mac802154_dev_get_short_addr,
+       .get_dsn = mac802154_dev_get_dsn,
 };
index f47781ab0cccbc346bf8dc28f146fbbc49f05100..f03e55f2ebf0f6da14a09d7ee4a3659cf2edc40e 100644 (file)
@@ -159,6 +159,15 @@ void mac802154_dev_set_pan_id(struct net_device *dev, u16 val)
        }
 }
 
+u8 mac802154_dev_get_dsn(const struct net_device *dev)
+{
+       struct mac802154_sub_if_data *priv = netdev_priv(dev);
+
+       BUG_ON(dev->type != ARPHRD_IEEE802154);
+
+       return priv->dsn++;
+}
+
 static void phy_chan_notify(struct work_struct *work)
 {
        struct phy_chan_notify_work *nw = container_of(work,