xref: /linux-6.15/include/linux/nl802154.h (revision 5f10376b)
11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
22c21d115SSergey Lapin /*
32c21d115SSergey Lapin  * nl802154.h
42c21d115SSergey Lapin  *
52c21d115SSergey Lapin  * Copyright (C) 2007, 2008, 2009 Siemens AG
62c21d115SSergey Lapin  */
72c21d115SSergey Lapin 
82c21d115SSergey Lapin #ifndef NL802154_H
92c21d115SSergey Lapin #define NL802154_H
102c21d115SSergey Lapin 
11*5f10376bSJakub Kicinski #include <net/netlink.h>
12*5f10376bSJakub Kicinski 
132c21d115SSergey Lapin #define IEEE802154_NL_NAME "802.15.4 MAC"
142c21d115SSergey Lapin #define IEEE802154_MCAST_COORD_NAME "coordinator"
152c21d115SSergey Lapin #define IEEE802154_MCAST_BEACON_NAME "beacon"
162c21d115SSergey Lapin 
172c21d115SSergey Lapin enum {
182c21d115SSergey Lapin 	__IEEE802154_ATTR_INVALID,
192c21d115SSergey Lapin 
202c21d115SSergey Lapin 	IEEE802154_ATTR_DEV_NAME,
212c21d115SSergey Lapin 	IEEE802154_ATTR_DEV_INDEX,
222c21d115SSergey Lapin 
232c21d115SSergey Lapin 	IEEE802154_ATTR_STATUS,
242c21d115SSergey Lapin 
252c21d115SSergey Lapin 	IEEE802154_ATTR_SHORT_ADDR,
262c21d115SSergey Lapin 	IEEE802154_ATTR_HW_ADDR,
272c21d115SSergey Lapin 	IEEE802154_ATTR_PAN_ID,
282c21d115SSergey Lapin 
292c21d115SSergey Lapin 	IEEE802154_ATTR_CHANNEL,
302c21d115SSergey Lapin 
312c21d115SSergey Lapin 	IEEE802154_ATTR_COORD_SHORT_ADDR,
322c21d115SSergey Lapin 	IEEE802154_ATTR_COORD_HW_ADDR,
332c21d115SSergey Lapin 	IEEE802154_ATTR_COORD_PAN_ID,
342c21d115SSergey Lapin 
352c21d115SSergey Lapin 	IEEE802154_ATTR_SRC_SHORT_ADDR,
362c21d115SSergey Lapin 	IEEE802154_ATTR_SRC_HW_ADDR,
372c21d115SSergey Lapin 	IEEE802154_ATTR_SRC_PAN_ID,
382c21d115SSergey Lapin 
392c21d115SSergey Lapin 	IEEE802154_ATTR_DEST_SHORT_ADDR,
402c21d115SSergey Lapin 	IEEE802154_ATTR_DEST_HW_ADDR,
412c21d115SSergey Lapin 	IEEE802154_ATTR_DEST_PAN_ID,
422c21d115SSergey Lapin 
432c21d115SSergey Lapin 	IEEE802154_ATTR_CAPABILITY,
442c21d115SSergey Lapin 	IEEE802154_ATTR_REASON,
452c21d115SSergey Lapin 	IEEE802154_ATTR_SCAN_TYPE,
462c21d115SSergey Lapin 	IEEE802154_ATTR_CHANNELS,
472c21d115SSergey Lapin 	IEEE802154_ATTR_DURATION,
482c21d115SSergey Lapin 	IEEE802154_ATTR_ED_LIST,
492c21d115SSergey Lapin 	IEEE802154_ATTR_BCN_ORD,
502c21d115SSergey Lapin 	IEEE802154_ATTR_SF_ORD,
512c21d115SSergey Lapin 	IEEE802154_ATTR_PAN_COORD,
522c21d115SSergey Lapin 	IEEE802154_ATTR_BAT_EXT,
532c21d115SSergey Lapin 	IEEE802154_ATTR_COORD_REALIGN,
542c21d115SSergey Lapin 	IEEE802154_ATTR_SEC,
552c21d115SSergey Lapin 
5616eea493SDmitry Eremin-Solenikov 	IEEE802154_ATTR_PAGE,
571eaa9d03SDmitry Eremin-Solenikov 	IEEE802154_ATTR_CHANNEL_PAGE_LIST,
581eaa9d03SDmitry Eremin-Solenikov 
591eaa9d03SDmitry Eremin-Solenikov 	IEEE802154_ATTR_PHY_NAME,
6090c049b2S[email protected] 	IEEE802154_ATTR_DEV_TYPE,
6116eea493SDmitry Eremin-Solenikov 
629b2777d6SPhoebe Buckheister 	IEEE802154_ATTR_TXPOWER,
6384dda3c6SPhoebe Buckheister 	IEEE802154_ATTR_LBT_ENABLED,
64ba08fea5SPhoebe Buckheister 	IEEE802154_ATTR_CCA_MODE,
656ca00197SPhoebe Buckheister 	IEEE802154_ATTR_CCA_ED_LEVEL,
664244db1bSPhoebe Buckheister 	IEEE802154_ATTR_CSMA_RETRIES,
674244db1bSPhoebe Buckheister 	IEEE802154_ATTR_CSMA_MIN_BE,
684244db1bSPhoebe Buckheister 	IEEE802154_ATTR_CSMA_MAX_BE,
694244db1bSPhoebe Buckheister 
704244db1bSPhoebe Buckheister 	IEEE802154_ATTR_FRAME_RETRIES,
719b2777d6SPhoebe Buckheister 
723e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_ENABLED,
733e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_SECLEVEL,
743e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_MODE,
753e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT,
763e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED,
773e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_ID,
783e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_FRAME_COUNTER,
793e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_BYTES,
803e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES,
813e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS,
823e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_FRAME_TYPE,
833e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_CMD_FRAME_ID,
843e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_SECLEVELS,
853e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_DEV_OVERRIDE,
863e9c156eSPhoebe Buckheister 	IEEE802154_ATTR_LLSEC_DEV_KEY_MODE,
873e9c156eSPhoebe Buckheister 
88a558da09SNicolas Dichtel 	IEEE802154_ATTR_PAD,
89a558da09SNicolas Dichtel 
902c21d115SSergey Lapin 	__IEEE802154_ATTR_MAX,
912c21d115SSergey Lapin };
922c21d115SSergey Lapin 
932c21d115SSergey Lapin #define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1)
942c21d115SSergey Lapin 
9578090a58SDmitry Baryshkov extern const struct nla_policy ieee802154_policy[];
962c21d115SSergey Lapin 
972c21d115SSergey Lapin /* commands */
982c21d115SSergey Lapin /* REQ should be responded with CONF
992c21d115SSergey Lapin  * and INDIC with RESP
1002c21d115SSergey Lapin  */
1012c21d115SSergey Lapin enum {
1022c21d115SSergey Lapin 	__IEEE802154_COMMAND_INVALID,
1032c21d115SSergey Lapin 
1042c21d115SSergey Lapin 	IEEE802154_ASSOCIATE_REQ,
1052c21d115SSergey Lapin 	IEEE802154_ASSOCIATE_CONF,
1062c21d115SSergey Lapin 	IEEE802154_DISASSOCIATE_REQ,
1072c21d115SSergey Lapin 	IEEE802154_DISASSOCIATE_CONF,
1082c21d115SSergey Lapin 	IEEE802154_GET_REQ,
1092c21d115SSergey Lapin 	IEEE802154_GET_CONF,
1102c21d115SSergey Lapin 	IEEE802154_RESET_REQ,
1112c21d115SSergey Lapin 	IEEE802154_RESET_CONF,
1122c21d115SSergey Lapin 	IEEE802154_SCAN_REQ,
1132c21d115SSergey Lapin 	IEEE802154_SCAN_CONF,
1142c21d115SSergey Lapin 	IEEE802154_SET_REQ,
1152c21d115SSergey Lapin 	IEEE802154_SET_CONF,
1162c21d115SSergey Lapin 	IEEE802154_START_REQ,
1172c21d115SSergey Lapin 	IEEE802154_START_CONF,
1182c21d115SSergey Lapin 	IEEE802154_SYNC_REQ,
1192c21d115SSergey Lapin 	IEEE802154_POLL_REQ,
1202c21d115SSergey Lapin 	IEEE802154_POLL_CONF,
1212c21d115SSergey Lapin 
1222c21d115SSergey Lapin 	IEEE802154_ASSOCIATE_INDIC,
1232c21d115SSergey Lapin 	IEEE802154_ASSOCIATE_RESP,
1242c21d115SSergey Lapin 	IEEE802154_DISASSOCIATE_INDIC,
1252c21d115SSergey Lapin 	IEEE802154_BEACON_NOTIFY_INDIC,
1262c21d115SSergey Lapin 	IEEE802154_ORPHAN_INDIC,
1272c21d115SSergey Lapin 	IEEE802154_ORPHAN_RESP,
1282c21d115SSergey Lapin 	IEEE802154_COMM_STATUS_INDIC,
1292c21d115SSergey Lapin 	IEEE802154_SYNC_LOSS_INDIC,
1302c21d115SSergey Lapin 
1312c21d115SSergey Lapin 	IEEE802154_GTS_REQ, /* Not supported yet */
1322c21d115SSergey Lapin 	IEEE802154_GTS_INDIC, /* Not supported yet */
1332c21d115SSergey Lapin 	IEEE802154_GTS_CONF, /* Not supported yet */
1342c21d115SSergey Lapin 	IEEE802154_RX_ENABLE_REQ, /* Not supported yet */
1352c21d115SSergey Lapin 	IEEE802154_RX_ENABLE_CONF, /* Not supported yet */
1362c21d115SSergey Lapin 
1378e753dd0SDmitry Baryshkov 	IEEE802154_LIST_IFACE,
1381eaa9d03SDmitry Eremin-Solenikov 	IEEE802154_LIST_PHY,
139bb1cafb8SDmitry Eremin-Solenikov 	IEEE802154_ADD_IFACE,
140bb1cafb8SDmitry Eremin-Solenikov 	IEEE802154_DEL_IFACE,
1418e753dd0SDmitry Baryshkov 
142e462ded6SPhoebe Buckheister 	IEEE802154_SET_MACPARAMS,
1439b2777d6SPhoebe Buckheister 
1443e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_GETPARAMS,
1453e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_SETPARAMS,
1463e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_LIST_KEY,
1473e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_ADD_KEY,
1483e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_DEL_KEY,
1493e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_LIST_DEV,
1503e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_ADD_DEV,
1513e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_DEL_DEV,
1523e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_LIST_DEVKEY,
1533e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_ADD_DEVKEY,
1543e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_DEL_DEVKEY,
1553e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_LIST_SECLEVEL,
1563e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_ADD_SECLEVEL,
1573e9c156eSPhoebe Buckheister 	IEEE802154_LLSEC_DEL_SECLEVEL,
1583e9c156eSPhoebe Buckheister 
1592c21d115SSergey Lapin 	__IEEE802154_CMD_MAX,
1602c21d115SSergey Lapin };
1612c21d115SSergey Lapin 
1622c21d115SSergey Lapin #define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1)
1632c21d115SSergey Lapin 
16490c049b2S[email protected] enum {
16590c049b2S[email protected] 	__IEEE802154_DEV_INVALID = -1,
1660606069dS[email protected] 
16732bad7e3S[email protected] 	IEEE802154_DEV_WPAN,
16832bad7e3S[email protected] 	IEEE802154_DEV_MONITOR,
1690606069dS[email protected] 
17090c049b2S[email protected] 	__IEEE802154_DEV_MAX,
17190c049b2S[email protected] };
17290c049b2S[email protected] 
1732c21d115SSergey Lapin #endif
174