at v3.17 4.5 kB view raw
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 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 */ 20 21#ifndef NL802154_H 22#define NL802154_H 23 24#define IEEE802154_NL_NAME "802.15.4 MAC" 25#define IEEE802154_MCAST_COORD_NAME "coordinator" 26#define IEEE802154_MCAST_BEACON_NAME "beacon" 27 28enum { 29 __IEEE802154_ATTR_INVALID, 30 31 IEEE802154_ATTR_DEV_NAME, 32 IEEE802154_ATTR_DEV_INDEX, 33 34 IEEE802154_ATTR_STATUS, 35 36 IEEE802154_ATTR_SHORT_ADDR, 37 IEEE802154_ATTR_HW_ADDR, 38 IEEE802154_ATTR_PAN_ID, 39 40 IEEE802154_ATTR_CHANNEL, 41 42 IEEE802154_ATTR_COORD_SHORT_ADDR, 43 IEEE802154_ATTR_COORD_HW_ADDR, 44 IEEE802154_ATTR_COORD_PAN_ID, 45 46 IEEE802154_ATTR_SRC_SHORT_ADDR, 47 IEEE802154_ATTR_SRC_HW_ADDR, 48 IEEE802154_ATTR_SRC_PAN_ID, 49 50 IEEE802154_ATTR_DEST_SHORT_ADDR, 51 IEEE802154_ATTR_DEST_HW_ADDR, 52 IEEE802154_ATTR_DEST_PAN_ID, 53 54 IEEE802154_ATTR_CAPABILITY, 55 IEEE802154_ATTR_REASON, 56 IEEE802154_ATTR_SCAN_TYPE, 57 IEEE802154_ATTR_CHANNELS, 58 IEEE802154_ATTR_DURATION, 59 IEEE802154_ATTR_ED_LIST, 60 IEEE802154_ATTR_BCN_ORD, 61 IEEE802154_ATTR_SF_ORD, 62 IEEE802154_ATTR_PAN_COORD, 63 IEEE802154_ATTR_BAT_EXT, 64 IEEE802154_ATTR_COORD_REALIGN, 65 IEEE802154_ATTR_SEC, 66 67 IEEE802154_ATTR_PAGE, 68 IEEE802154_ATTR_CHANNEL_PAGE_LIST, 69 70 IEEE802154_ATTR_PHY_NAME, 71 IEEE802154_ATTR_DEV_TYPE, 72 73 IEEE802154_ATTR_TXPOWER, 74 IEEE802154_ATTR_LBT_ENABLED, 75 IEEE802154_ATTR_CCA_MODE, 76 IEEE802154_ATTR_CCA_ED_LEVEL, 77 IEEE802154_ATTR_CSMA_RETRIES, 78 IEEE802154_ATTR_CSMA_MIN_BE, 79 IEEE802154_ATTR_CSMA_MAX_BE, 80 81 IEEE802154_ATTR_FRAME_RETRIES, 82 83 IEEE802154_ATTR_LLSEC_ENABLED, 84 IEEE802154_ATTR_LLSEC_SECLEVEL, 85 IEEE802154_ATTR_LLSEC_KEY_MODE, 86 IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT, 87 IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED, 88 IEEE802154_ATTR_LLSEC_KEY_ID, 89 IEEE802154_ATTR_LLSEC_FRAME_COUNTER, 90 IEEE802154_ATTR_LLSEC_KEY_BYTES, 91 IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES, 92 IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS, 93 IEEE802154_ATTR_LLSEC_FRAME_TYPE, 94 IEEE802154_ATTR_LLSEC_CMD_FRAME_ID, 95 IEEE802154_ATTR_LLSEC_SECLEVELS, 96 IEEE802154_ATTR_LLSEC_DEV_OVERRIDE, 97 IEEE802154_ATTR_LLSEC_DEV_KEY_MODE, 98 99 __IEEE802154_ATTR_MAX, 100}; 101 102#define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1) 103 104extern const struct nla_policy ieee802154_policy[]; 105 106/* commands */ 107/* REQ should be responded with CONF 108 * and INDIC with RESP 109 */ 110enum { 111 __IEEE802154_COMMAND_INVALID, 112 113 IEEE802154_ASSOCIATE_REQ, 114 IEEE802154_ASSOCIATE_CONF, 115 IEEE802154_DISASSOCIATE_REQ, 116 IEEE802154_DISASSOCIATE_CONF, 117 IEEE802154_GET_REQ, 118 IEEE802154_GET_CONF, 119 IEEE802154_RESET_REQ, 120 IEEE802154_RESET_CONF, 121 IEEE802154_SCAN_REQ, 122 IEEE802154_SCAN_CONF, 123 IEEE802154_SET_REQ, 124 IEEE802154_SET_CONF, 125 IEEE802154_START_REQ, 126 IEEE802154_START_CONF, 127 IEEE802154_SYNC_REQ, 128 IEEE802154_POLL_REQ, 129 IEEE802154_POLL_CONF, 130 131 IEEE802154_ASSOCIATE_INDIC, 132 IEEE802154_ASSOCIATE_RESP, 133 IEEE802154_DISASSOCIATE_INDIC, 134 IEEE802154_BEACON_NOTIFY_INDIC, 135 IEEE802154_ORPHAN_INDIC, 136 IEEE802154_ORPHAN_RESP, 137 IEEE802154_COMM_STATUS_INDIC, 138 IEEE802154_SYNC_LOSS_INDIC, 139 140 IEEE802154_GTS_REQ, /* Not supported yet */ 141 IEEE802154_GTS_INDIC, /* Not supported yet */ 142 IEEE802154_GTS_CONF, /* Not supported yet */ 143 IEEE802154_RX_ENABLE_REQ, /* Not supported yet */ 144 IEEE802154_RX_ENABLE_CONF, /* Not supported yet */ 145 146 IEEE802154_LIST_IFACE, 147 IEEE802154_LIST_PHY, 148 IEEE802154_ADD_IFACE, 149 IEEE802154_DEL_IFACE, 150 151 IEEE802154_SET_MACPARAMS, 152 153 IEEE802154_LLSEC_GETPARAMS, 154 IEEE802154_LLSEC_SETPARAMS, 155 IEEE802154_LLSEC_LIST_KEY, 156 IEEE802154_LLSEC_ADD_KEY, 157 IEEE802154_LLSEC_DEL_KEY, 158 IEEE802154_LLSEC_LIST_DEV, 159 IEEE802154_LLSEC_ADD_DEV, 160 IEEE802154_LLSEC_DEL_DEV, 161 IEEE802154_LLSEC_LIST_DEVKEY, 162 IEEE802154_LLSEC_ADD_DEVKEY, 163 IEEE802154_LLSEC_DEL_DEVKEY, 164 IEEE802154_LLSEC_LIST_SECLEVEL, 165 IEEE802154_LLSEC_ADD_SECLEVEL, 166 IEEE802154_LLSEC_DEL_SECLEVEL, 167 168 __IEEE802154_CMD_MAX, 169}; 170 171#define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1) 172 173enum { 174 __IEEE802154_DEV_INVALID = -1, 175 176 IEEE802154_DEV_WPAN, 177 IEEE802154_DEV_MONITOR, 178 179 __IEEE802154_DEV_MAX, 180}; 181 182#endif