ieee802154: Define a beacon frame header
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 3 Jan 2023 16:56:40 +0000 (17:56 +0100)
committerStefan Schmidt <stefan@datenfreihafen.org>
Tue, 3 Jan 2023 18:34:30 +0000 (19:34 +0100)
This definition will be used when adding support for scanning and defines
the content of a beacon frame header as in the 802.15.4 specification.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20230103165644.432209-3-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
include/net/ieee802154_netdev.h

index 4c33a20..2f21960 100644 (file)
 
 #include <net/cfg802154.h>
 
+struct ieee802154_beacon_hdr {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+       u16 beacon_order:4,
+           superframe_order:4,
+           final_cap_slot:4,
+           battery_life_ext:1,
+           reserved0:1,
+           pan_coordinator:1,
+           assoc_permit:1;
+       u8  gts_count:3,
+           gts_reserved:4,
+           gts_permit:1;
+       u8  pend_short_addr_count:3,
+           reserved1:1,
+           pend_ext_addr_count:3,
+           reserved2:1;
+#elif defined(__BIG_ENDIAN_BITFIELD)
+       u16 assoc_permit:1,
+           pan_coordinator:1,
+           reserved0:1,
+           battery_life_ext:1,
+           final_cap_slot:4,
+           superframe_order:4,
+           beacon_order:4;
+       u8  gts_permit:1,
+           gts_reserved:4,
+           gts_count:3;
+       u8  reserved2:1,
+           pend_ext_addr_count:3,
+           reserved1:1,
+           pend_short_addr_count:3;
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+} __packed;
+
 struct ieee802154_sechdr {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
        u8 level:3,