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