Skip to content

Commit

Permalink
ieee802154: add helpers for frame control checks
Browse files Browse the repository at this point in the history
This patch introduce two static inline functions. The first to get the
frame control field from an sk_buff. The second is for checking on the
acknowledgment request bit on the frame control field. Later we can
introduce more functions to check on the frame control fields.

These will deprecate the current behaviour which requires a
host-byteorder conversion and manually bit handling.

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Alexander Aring authored and Marcel Holtmann committed Sep 22, 2015
1 parent ab40ff7 commit 79750ac
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions include/linux/ieee802154.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

#include <linux/types.h>
#include <linux/random.h>
#include <linux/skbuff.h>
#include <linux/unaligned/memmove.h>
#include <asm/byteorder.h>

#define IEEE802154_MTU 127
Expand Down Expand Up @@ -218,6 +220,7 @@ enum {

/* frame control handling */
#define IEEE802154_FCTL_FTYPE 0x0003
#define IEEE802154_FCTL_ACKREQ 0x0020
#define IEEE802154_FCTL_INTRA_PAN 0x0040

#define IEEE802154_FTYPE_DATA 0x0001
Expand All @@ -232,6 +235,15 @@ static inline int ieee802154_is_data(__le16 fc)
cpu_to_le16(IEEE802154_FTYPE_DATA);
}

/**
* ieee802154_is_ackreq - check if acknowledgment request bit is set
* @fc: frame control bytes in little-endian byteorder
*/
static inline bool ieee802154_is_ackreq(__le16 fc)
{
return fc & cpu_to_le16(IEEE802154_FCTL_ACKREQ);
}

/**
* ieee802154_is_intra_pan - check if intra pan id communication
* @fc: frame control bytes in little-endian byteorder
Expand Down

0 comments on commit 79750ac

Please sign in to comment.