2019-05-27 08:55:21 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2009-06-08 12:18:49 +00:00
/*
* nl802154 . h
*
* Copyright ( C ) 2007 , 2008 Siemens AG
*/
# include <linux/kernel.h>
# include <net/netlink.h>
# include <linux/nl802154.h>
# define NLA_HW_ADDR NLA_U64
2009-08-07 02:58:38 +00:00
const struct nla_policy ieee802154_policy [ IEEE802154_ATTR_MAX + 1 ] = {
2009-06-08 12:18:49 +00:00
[ IEEE802154_ATTR_DEV_NAME ] = { . type = NLA_STRING , } ,
[ IEEE802154_ATTR_DEV_INDEX ] = { . type = NLA_U32 , } ,
2009-09-15 17:04:44 +04:00
[ IEEE802154_ATTR_PHY_NAME ] = { . type = NLA_STRING , } ,
2009-06-08 12:18:49 +00:00
[ IEEE802154_ATTR_STATUS ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_SHORT_ADDR ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_HW_ADDR ] = { . type = NLA_HW_ADDR , } ,
[ IEEE802154_ATTR_PAN_ID ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_CHANNEL ] = { . type = NLA_U8 , } ,
2020-03-02 21:05:14 -08:00
[ IEEE802154_ATTR_BCN_ORD ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_SF_ORD ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_PAN_COORD ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_BAT_EXT ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_COORD_REALIGN ] = { . type = NLA_U8 , } ,
2009-08-19 19:32:24 +04:00
[ IEEE802154_ATTR_PAGE ] = { . type = NLA_U8 , } ,
2020-03-02 21:05:15 -08:00
[ IEEE802154_ATTR_DEV_TYPE ] = { . type = NLA_U8 , } ,
2009-06-08 12:18:49 +00:00
[ IEEE802154_ATTR_COORD_SHORT_ADDR ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_COORD_HW_ADDR ] = { . type = NLA_HW_ADDR , } ,
[ IEEE802154_ATTR_COORD_PAN_ID ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_SRC_SHORT_ADDR ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_SRC_HW_ADDR ] = { . type = NLA_HW_ADDR , } ,
[ IEEE802154_ATTR_SRC_PAN_ID ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_DEST_SHORT_ADDR ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_DEST_HW_ADDR ] = { . type = NLA_HW_ADDR , } ,
[ IEEE802154_ATTR_DEST_PAN_ID ] = { . type = NLA_U16 , } ,
[ IEEE802154_ATTR_CAPABILITY ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_REASON ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_SCAN_TYPE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_CHANNELS ] = { . type = NLA_U32 , } ,
[ IEEE802154_ATTR_DURATION ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_ED_LIST ] = { . len = 27 } ,
2009-09-15 17:04:44 +04:00
[ IEEE802154_ATTR_CHANNEL_PAGE_LIST ] = { . len = 32 * 4 , } ,
2014-02-17 11:34:08 +01:00
[ IEEE802154_ATTR_TXPOWER ] = { . type = NLA_S8 , } ,
2014-02-17 11:34:10 +01:00
[ IEEE802154_ATTR_LBT_ENABLED ] = { . type = NLA_U8 , } ,
2014-02-17 11:34:11 +01:00
[ IEEE802154_ATTR_CCA_MODE ] = { . type = NLA_U8 , } ,
2014-02-17 11:34:12 +01:00
[ IEEE802154_ATTR_CCA_ED_LEVEL ] = { . type = NLA_S32 , } ,
2014-02-17 11:34:14 +01:00
[ IEEE802154_ATTR_CSMA_RETRIES ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_CSMA_MIN_BE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_CSMA_MAX_BE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_FRAME_RETRIES ] = { . type = NLA_S8 , } ,
2014-05-16 17:46:44 +02:00
[ IEEE802154_ATTR_LLSEC_ENABLED ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_SECLEVEL ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_KEY_MODE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT ] = { . type = NLA_U32 , } ,
[ IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED ] = { . type = NLA_HW_ADDR , } ,
[ IEEE802154_ATTR_LLSEC_KEY_ID ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_FRAME_COUNTER ] = { . type = NLA_U32 } ,
[ IEEE802154_ATTR_LLSEC_KEY_BYTES ] = { . len = 16 , } ,
[ IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS ] = { . len = 258 / 8 } ,
[ IEEE802154_ATTR_LLSEC_FRAME_TYPE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_CMD_FRAME_ID ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_SECLEVELS ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_DEV_OVERRIDE ] = { . type = NLA_U8 , } ,
[ IEEE802154_ATTR_LLSEC_DEV_KEY_MODE ] = { . type = NLA_U8 , } ,
2009-06-08 12:18:49 +00:00
} ;