aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ieee802154.h
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2015-09-21 05:24:33 -0400
committerMarcel Holtmann <marcel@holtmann.org>2015-09-22 05:51:22 -0400
commit79750ac4257763ff595a8b2cdc7ba580f0b0c8e0 (patch)
tree74db3f8b7b05dab596823df104536d959c913736 /include/linux/ieee802154.h
parentab40ff7508d2f54ed03b99523493c46250649c52 (diff)
ieee802154: add helpers for frame control checks
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>
Diffstat (limited to 'include/linux/ieee802154.h')
-rw-r--r--include/linux/ieee802154.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/ieee802154.h b/include/linux/ieee802154.h
index 205ce4e1ac32..aca228b81464 100644
--- a/include/linux/ieee802154.h
+++ b/include/linux/ieee802154.h
@@ -25,6 +25,8 @@
25 25
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/random.h> 27#include <linux/random.h>
28#include <linux/skbuff.h>
29#include <linux/unaligned/memmove.h>
28#include <asm/byteorder.h> 30#include <asm/byteorder.h>
29 31
30#define IEEE802154_MTU 127 32#define IEEE802154_MTU 127
@@ -218,6 +220,7 @@ enum {
218 220
219/* frame control handling */ 221/* frame control handling */
220#define IEEE802154_FCTL_FTYPE 0x0003 222#define IEEE802154_FCTL_FTYPE 0x0003
223#define IEEE802154_FCTL_ACKREQ 0x0020
221#define IEEE802154_FCTL_INTRA_PAN 0x0040 224#define IEEE802154_FCTL_INTRA_PAN 0x0040
222 225
223#define IEEE802154_FTYPE_DATA 0x0001 226#define IEEE802154_FTYPE_DATA 0x0001
@@ -233,6 +236,15 @@ static inline int ieee802154_is_data(__le16 fc)
233} 236}
234 237
235/** 238/**
239 * ieee802154_is_ackreq - check if acknowledgment request bit is set
240 * @fc: frame control bytes in little-endian byteorder
241 */
242static inline bool ieee802154_is_ackreq(__le16 fc)
243{
244 return fc & cpu_to_le16(IEEE802154_FCTL_ACKREQ);
245}
246
247/**
236 * ieee802154_is_intra_pan - check if intra pan id communication 248 * ieee802154_is_intra_pan - check if intra pan id communication
237 * @fc: frame control bytes in little-endian byteorder 249 * @fc: frame control bytes in little-endian byteorder
238 */ 250 */