Skip to content

Commit

Permalink
mac802154: add get short address method
Browse files Browse the repository at this point in the history
Add method to get the device short 802.15.4 address. This call
needed by ieee802154 layer to satisfy 'iz list' request from
the user space.

Signed-off-by: Alexander Smirnov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
alex-bluesman authored and davem330 committed Jul 12, 2012
1 parent 5b00f2e commit e885a47
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
1 change: 1 addition & 0 deletions net/mac802154/mac802154.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb,

/* MIB callbacks */
void mac802154_dev_set_short_addr(struct net_device *dev, u16 val);
u16 mac802154_dev_get_short_addr(const struct net_device *dev);
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);
Expand Down
2 changes: 2 additions & 0 deletions net/mac802154/mac_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,6 @@ struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced = {
struct ieee802154_mlme_ops mac802154_mlme_wpan = {
.get_phy = mac802154_get_phy,
.start_req = mac802154_mlme_start_req,
.get_pan_id = mac802154_dev_get_pan_id,
.get_short_addr = mac802154_dev_get_short_addr,
};
14 changes: 14 additions & 0 deletions net/mac802154/mib.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,20 @@ void mac802154_dev_set_short_addr(struct net_device *dev, u16 val)
}
}

u16 mac802154_dev_get_short_addr(const struct net_device *dev)
{
struct mac802154_sub_if_data *priv = netdev_priv(dev);
u16 ret;

BUG_ON(dev->type != ARPHRD_IEEE802154);

spin_lock_bh(&priv->mib_lock);
ret = priv->short_addr;
spin_unlock_bh(&priv->mib_lock);

return ret;
}

void mac802154_dev_set_ieee_addr(struct net_device *dev)
{
struct mac802154_sub_if_data *priv = netdev_priv(dev);
Expand Down

0 comments on commit e885a47

Please sign in to comment.