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