2019-05-27 09:55:21 +03:00
// SPDX-License-Identifier: GPL-2.0-only
2009-06-08 16:18:49 +04: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 06:58:38 +04:00
const struct nla_policy ieee802154_policy [ IEEE802154_ATTR_MAX + 1 ] = {
2009-06-08 16:18:49 +04: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 16:18:49 +04: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-03 08:05:14 +03: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-03 08:05:15 +03:00
[ IEEE802154_ATTR_DEV_TYPE ] = { . type = NLA_U8 , } ,
2009-06-08 16:18:49 +04: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 14:34:08 +04:00
[ IEEE802154_ATTR_TXPOWER ] = { . type = NLA_S8 , } ,
2014-02-17 14:34:10 +04:00
[ IEEE802154_ATTR_LBT_ENABLED ] = { . type = NLA_U8 , } ,
2014-02-17 14:34:11 +04:00
[ IEEE802154_ATTR_CCA_MODE ] = { . type = NLA_U8 , } ,
2014-02-17 14:34:12 +04:00
[ IEEE802154_ATTR_CCA_ED_LEVEL ] = { . type = NLA_S32 , } ,
2014-02-17 14:34:14 +04: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 19:46:44 +04: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 16:18:49 +04:00
} ;