ieee802154: rename and move WPAN_NUM_ defines
authorAlexander Aring <alex.aring@gmail.com>
Mon, 17 Nov 2014 07:20:54 +0000 (08:20 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 17 Nov 2014 08:49:17 +0000 (09:49 +0100)
This patch moves the 802.15.4 constraints WPAN_NUM_ defines into
"net/ieee802154.h" which should contain all necessary 802.15.4 related
information. Also rename these defines to a common name which is
IEEE802154_MAX_CHANNEL and IEEE802154_MAX_PAGE.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/linux/ieee802154.h
include/net/cfg802154.h
net/ieee802154/nl802154.c

index 5a40c0418438786f8aa622d77d8a1e9eca0d329e..6e82d888287c280e096bc4c8c4cd585f786fb507 100644 (file)
@@ -39,6 +39,9 @@
 #define IEEE802154_LIFS_PERIOD         40
 #define IEEE802154_SIFS_PERIOD         12
 
+#define IEEE802154_MAX_CHANNEL         26
+#define IEEE802154_MAX_PAGE            31
+
 #define IEEE802154_FC_TYPE_BEACON      0x0     /* Frame is beacon */
 #define        IEEE802154_FC_TYPE_DATA         0x1     /* Frame is data */
 #define IEEE802154_FC_TYPE_ACK         0x2     /* Frame is acknowledgment */
index 507ac9d3d38a0a946bc9c99ac5542732a5cd4947..228f1f7668f778c566b4aec15e824d74818e9e0b 100644 (file)
 #ifndef __NET_CFG802154_H
 #define __NET_CFG802154_H
 
+#include <linux/ieee802154.h>
 #include <linux/netdevice.h>
 #include <linux/mutex.h>
 #include <linux/bug.h>
 
 #include <net/nl802154.h>
 
-/* According to the IEEE 802.15.4 stadard the upper most significant bits of
- * the 32-bit channel bitmaps shall be used as an integer value to specify 32
- * possible channel pages. The lower 27 bits of the channel bit map shall be
- * used as a bit mask to specify channel numbers within a channel page.
- */
-#define WPAN_NUM_CHANNELS      27
-#define WPAN_NUM_PAGES         32
-
 struct wpan_phy;
 
 struct cfg802154_ops {
@@ -81,7 +74,7 @@ struct wpan_phy {
         */
        u8 current_channel;
        u8 current_page;
-       u32 channels_supported[32];
+       u32 channels_supported[IEEE802154_MAX_PAGE + 1];
        s8 transmit_power;
        u8 cca_mode;
 
index 6b9bc93944a60e47aee0182d20f840072b91ebdb..b82b01669a67f2bcdf5333e6f03ecc77955747f5 100644 (file)
@@ -245,7 +245,7 @@ nl802154_send_wpan_phy_channels(struct cfg802154_registered_device *rdev,
        if (!nl_page)
                return -ENOBUFS;
 
-       for (page = 0; page < WPAN_NUM_PAGES; page++) {
+       for (page = 0; page <= IEEE802154_MAX_PAGE; page++) {
                if (nla_put_u32(msg, NL802154_ATTR_SUPPORTED_CHANNEL,
                                rdev->wpan_phy.channels_supported[page]))
                        return -ENOBUFS;
@@ -616,7 +616,7 @@ static int nl802154_set_channel(struct sk_buff *skb, struct genl_info *info)
        channel = nla_get_u8(info->attrs[NL802154_ATTR_CHANNEL]);
 
        /* check 802.15.4 constraints */
-       if (page >= WPAN_NUM_PAGES || channel >= WPAN_NUM_CHANNELS)
+       if (page > IEEE802154_MAX_PAGE || channel > IEEE802154_MAX_CHANNEL)
                return -EINVAL;
 
        return rdev_set_channel(rdev, page, channel);