1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * nl802154.h 4 * 5 * Copyright (C) 2007, 2008, 2009 Siemens AG 6 */ 7 8 #ifndef NL802154_H 9 #define NL802154_H 10 11 #define IEEE802154_NL_NAME "802.15.4 MAC" 12 #define IEEE802154_MCAST_COORD_NAME "coordinator" 13 #define IEEE802154_MCAST_BEACON_NAME "beacon" 14 15 enum { 16 __IEEE802154_ATTR_INVALID, 17 18 IEEE802154_ATTR_DEV_NAME, 19 IEEE802154_ATTR_DEV_INDEX, 20 21 IEEE802154_ATTR_STATUS, 22 23 IEEE802154_ATTR_SHORT_ADDR, 24 IEEE802154_ATTR_HW_ADDR, 25 IEEE802154_ATTR_PAN_ID, 26 27 IEEE802154_ATTR_CHANNEL, 28 29 IEEE802154_ATTR_COORD_SHORT_ADDR, 30 IEEE802154_ATTR_COORD_HW_ADDR, 31 IEEE802154_ATTR_COORD_PAN_ID, 32 33 IEEE802154_ATTR_SRC_SHORT_ADDR, 34 IEEE802154_ATTR_SRC_HW_ADDR, 35 IEEE802154_ATTR_SRC_PAN_ID, 36 37 IEEE802154_ATTR_DEST_SHORT_ADDR, 38 IEEE802154_ATTR_DEST_HW_ADDR, 39 IEEE802154_ATTR_DEST_PAN_ID, 40 41 IEEE802154_ATTR_CAPABILITY, 42 IEEE802154_ATTR_REASON, 43 IEEE802154_ATTR_SCAN_TYPE, 44 IEEE802154_ATTR_CHANNELS, 45 IEEE802154_ATTR_DURATION, 46 IEEE802154_ATTR_ED_LIST, 47 IEEE802154_ATTR_BCN_ORD, 48 IEEE802154_ATTR_SF_ORD, 49 IEEE802154_ATTR_PAN_COORD, 50 IEEE802154_ATTR_BAT_EXT, 51 IEEE802154_ATTR_COORD_REALIGN, 52 IEEE802154_ATTR_SEC, 53 54 IEEE802154_ATTR_PAGE, 55 IEEE802154_ATTR_CHANNEL_PAGE_LIST, 56 57 IEEE802154_ATTR_PHY_NAME, 58 IEEE802154_ATTR_DEV_TYPE, 59 60 IEEE802154_ATTR_TXPOWER, 61 IEEE802154_ATTR_LBT_ENABLED, 62 IEEE802154_ATTR_CCA_MODE, 63 IEEE802154_ATTR_CCA_ED_LEVEL, 64 IEEE802154_ATTR_CSMA_RETRIES, 65 IEEE802154_ATTR_CSMA_MIN_BE, 66 IEEE802154_ATTR_CSMA_MAX_BE, 67 68 IEEE802154_ATTR_FRAME_RETRIES, 69 70 IEEE802154_ATTR_LLSEC_ENABLED, 71 IEEE802154_ATTR_LLSEC_SECLEVEL, 72 IEEE802154_ATTR_LLSEC_KEY_MODE, 73 IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, 74 IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, 75 IEEE802154_ATTR_LLSEC_KEY_ID, 76 IEEE802154_ATTR_LLSEC_FRAME_COUNTER, 77 IEEE802154_ATTR_LLSEC_KEY_BYTES, 78 IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES, 79 IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS, 80 IEEE802154_ATTR_LLSEC_FRAME_TYPE, 81 IEEE802154_ATTR_LLSEC_CMD_FRAME_ID, 82 IEEE802154_ATTR_LLSEC_SECLEVELS, 83 IEEE802154_ATTR_LLSEC_DEV_OVERRIDE, 84 IEEE802154_ATTR_LLSEC_DEV_KEY_MODE, 85 86 IEEE802154_ATTR_PAD, 87 88 __IEEE802154_ATTR_MAX, 89 }; 90 91 #define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1) 92 93 extern const struct nla_policy ieee802154_policy[]; 94 95 /* commands */ 96 /* REQ should be responded with CONF 97 * and INDIC with RESP 98 */ 99 enum { 100 __IEEE802154_COMMAND_INVALID, 101 102 IEEE802154_ASSOCIATE_REQ, 103 IEEE802154_ASSOCIATE_CONF, 104 IEEE802154_DISASSOCIATE_REQ, 105 IEEE802154_DISASSOCIATE_CONF, 106 IEEE802154_GET_REQ, 107 IEEE802154_GET_CONF, 108 IEEE802154_RESET_REQ, 109 IEEE802154_RESET_CONF, 110 IEEE802154_SCAN_REQ, 111 IEEE802154_SCAN_CONF, 112 IEEE802154_SET_REQ, 113 IEEE802154_SET_CONF, 114 IEEE802154_START_REQ, 115 IEEE802154_START_CONF, 116 IEEE802154_SYNC_REQ, 117 IEEE802154_POLL_REQ, 118 IEEE802154_POLL_CONF, 119 120 IEEE802154_ASSOCIATE_INDIC, 121 IEEE802154_ASSOCIATE_RESP, 122 IEEE802154_DISASSOCIATE_INDIC, 123 IEEE802154_BEACON_NOTIFY_INDIC, 124 IEEE802154_ORPHAN_INDIC, 125 IEEE802154_ORPHAN_RESP, 126 IEEE802154_COMM_STATUS_INDIC, 127 IEEE802154_SYNC_LOSS_INDIC, 128 129 IEEE802154_GTS_REQ, /* Not supported yet */ 130 IEEE802154_GTS_INDIC, /* Not supported yet */ 131 IEEE802154_GTS_CONF, /* Not supported yet */ 132 IEEE802154_RX_ENABLE_REQ, /* Not supported yet */ 133 IEEE802154_RX_ENABLE_CONF, /* Not supported yet */ 134 135 IEEE802154_LIST_IFACE, 136 IEEE802154_LIST_PHY, 137 IEEE802154_ADD_IFACE, 138 IEEE802154_DEL_IFACE, 139 140 IEEE802154_SET_MACPARAMS, 141 142 IEEE802154_LLSEC_GETPARAMS, 143 IEEE802154_LLSEC_SETPARAMS, 144 IEEE802154_LLSEC_LIST_KEY, 145 IEEE802154_LLSEC_ADD_KEY, 146 IEEE802154_LLSEC_DEL_KEY, 147 IEEE802154_LLSEC_LIST_DEV, 148 IEEE802154_LLSEC_ADD_DEV, 149 IEEE802154_LLSEC_DEL_DEV, 150 IEEE802154_LLSEC_LIST_DEVKEY, 151 IEEE802154_LLSEC_ADD_DEVKEY, 152 IEEE802154_LLSEC_DEL_DEVKEY, 153 IEEE802154_LLSEC_LIST_SECLEVEL, 154 IEEE802154_LLSEC_ADD_SECLEVEL, 155 IEEE802154_LLSEC_DEL_SECLEVEL, 156 157 __IEEE802154_CMD_MAX, 158 }; 159 160 #define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1) 161 162 enum { 163 __IEEE802154_DEV_INVALID = -1, 164 165 IEEE802154_DEV_WPAN, 166 IEEE802154_DEV_MONITOR, 167 168 __IEEE802154_DEV_MAX, 169 }; 170 171 #endif 172