Skip to content

Commit

Permalink
6lowpan: obtain IEEE802.15.4 sequence number from the MAC layer
Browse files Browse the repository at this point in the history
Sets the sequence number in the frame format. Without this fix, the sequence
number is always set to 0. This makes trafic analysis very hard.

Signed-off-by: Tony Cheneau <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
tcheneau authored and davem330 committed Mar 26, 2013
1 parent 0483546 commit c7d0ab2
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions net/ieee802154/6lowpan.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,7 @@ static int lowpan_header_create(struct sk_buff *skb,
*/
{
mac_cb(skb)->flags = IEEE802154_FC_TYPE_DATA;
mac_cb(skb)->seq = ieee802154_mlme_ops(dev)->get_dsn(dev);

/* prepare wpan address data */
sa.addr_type = IEEE802154_ADDR_LONG;
Expand Down Expand Up @@ -1127,6 +1128,12 @@ static u16 lowpan_get_short_addr(const struct net_device *dev)
return ieee802154_mlme_ops(real_dev)->get_short_addr(real_dev);
}

static u8 lowpan_get_dsn(const struct net_device *dev)
{
struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
return ieee802154_mlme_ops(real_dev)->get_dsn(real_dev);
}

static struct header_ops lowpan_header_ops = {
.create = lowpan_header_create,
};
Expand All @@ -1140,6 +1147,7 @@ static struct ieee802154_mlme_ops lowpan_mlme = {
.get_pan_id = lowpan_get_pan_id,
.get_phy = lowpan_get_phy,
.get_short_addr = lowpan_get_short_addr,
.get_dsn = lowpan_get_dsn,
};

static void lowpan_setup(struct net_device *dev)
Expand Down

0 comments on commit c7d0ab2

Please sign in to comment.