nl802154.h 4.23 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
/*
 * nl802154.h
 *
 * Copyright (C) 2007, 2008, 2009 Siemens AG
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#ifndef NL802154_H
#define NL802154_H

#define IEEE802154_NL_NAME "802.15.4 MAC"
#define IEEE802154_MCAST_COORD_NAME "coordinator"
#define IEEE802154_MCAST_BEACON_NAME "beacon"

enum {
	__IEEE802154_ATTR_INVALID,

	IEEE802154_ATTR_DEV_NAME,
	IEEE802154_ATTR_DEV_INDEX,

	IEEE802154_ATTR_STATUS,

	IEEE802154_ATTR_SHORT_ADDR,
	IEEE802154_ATTR_HW_ADDR,
	IEEE802154_ATTR_PAN_ID,

	IEEE802154_ATTR_CHANNEL,

	IEEE802154_ATTR_COORD_SHORT_ADDR,
	IEEE802154_ATTR_COORD_HW_ADDR,
	IEEE802154_ATTR_COORD_PAN_ID,

	IEEE802154_ATTR_SRC_SHORT_ADDR,
	IEEE802154_ATTR_SRC_HW_ADDR,
	IEEE802154_ATTR_SRC_PAN_ID,

	IEEE802154_ATTR_DEST_SHORT_ADDR,
	IEEE802154_ATTR_DEST_HW_ADDR,
	IEEE802154_ATTR_DEST_PAN_ID,

	IEEE802154_ATTR_CAPABILITY,
	IEEE802154_ATTR_REASON,
	IEEE802154_ATTR_SCAN_TYPE,
	IEEE802154_ATTR_CHANNELS,
	IEEE802154_ATTR_DURATION,
	IEEE802154_ATTR_ED_LIST,
	IEEE802154_ATTR_BCN_ORD,
	IEEE802154_ATTR_SF_ORD,
	IEEE802154_ATTR_PAN_COORD,
	IEEE802154_ATTR_BAT_EXT,
	IEEE802154_ATTR_COORD_REALIGN,
	IEEE802154_ATTR_SEC,

63
	IEEE802154_ATTR_PAGE,
64 65 66
	IEEE802154_ATTR_CHANNEL_PAGE_LIST,

	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 74 75 76 77
	IEEE802154_ATTR_CSMA_RETRIES,
	IEEE802154_ATTR_CSMA_MIN_BE,
	IEEE802154_ATTR_CSMA_MAX_BE,

	IEEE802154_ATTR_FRAME_RETRIES,
78

79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
	IEEE802154_ATTR_LLSEC_ENABLED,
	IEEE802154_ATTR_LLSEC_SECLEVEL,
	IEEE802154_ATTR_LLSEC_KEY_MODE,
	IEEE802154_ATTR_LLSEC_KEY_SOURCE_SHORT,
	IEEE802154_ATTR_LLSEC_KEY_SOURCE_EXTENDED,
	IEEE802154_ATTR_LLSEC_KEY_ID,
	IEEE802154_ATTR_LLSEC_FRAME_COUNTER,
	IEEE802154_ATTR_LLSEC_KEY_BYTES,
	IEEE802154_ATTR_LLSEC_KEY_USAGE_FRAME_TYPES,
	IEEE802154_ATTR_LLSEC_KEY_USAGE_COMMANDS,
	IEEE802154_ATTR_LLSEC_FRAME_TYPE,
	IEEE802154_ATTR_LLSEC_CMD_FRAME_ID,
	IEEE802154_ATTR_LLSEC_SECLEVELS,
	IEEE802154_ATTR_LLSEC_DEV_OVERRIDE,
	IEEE802154_ATTR_LLSEC_DEV_KEY_MODE,

95 96
	IEEE802154_ATTR_PAD,

97 98 99 100 101
	__IEEE802154_ATTR_MAX,
};

#define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1)

102
extern const struct nla_policy ieee802154_policy[];
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

/* commands */
/* REQ should be responded with CONF
 * and INDIC with RESP
 */
enum {
	__IEEE802154_COMMAND_INVALID,

	IEEE802154_ASSOCIATE_REQ,
	IEEE802154_ASSOCIATE_CONF,
	IEEE802154_DISASSOCIATE_REQ,
	IEEE802154_DISASSOCIATE_CONF,
	IEEE802154_GET_REQ,
	IEEE802154_GET_CONF,
	IEEE802154_RESET_REQ,
	IEEE802154_RESET_CONF,
	IEEE802154_SCAN_REQ,
	IEEE802154_SCAN_CONF,
	IEEE802154_SET_REQ,
	IEEE802154_SET_CONF,
	IEEE802154_START_REQ,
	IEEE802154_START_CONF,
	IEEE802154_SYNC_REQ,
	IEEE802154_POLL_REQ,
	IEEE802154_POLL_CONF,

	IEEE802154_ASSOCIATE_INDIC,
	IEEE802154_ASSOCIATE_RESP,
	IEEE802154_DISASSOCIATE_INDIC,
	IEEE802154_BEACON_NOTIFY_INDIC,
	IEEE802154_ORPHAN_INDIC,
	IEEE802154_ORPHAN_RESP,
	IEEE802154_COMM_STATUS_INDIC,
	IEEE802154_SYNC_LOSS_INDIC,

	IEEE802154_GTS_REQ, /* Not supported yet */
	IEEE802154_GTS_INDIC, /* Not supported yet */
	IEEE802154_GTS_CONF, /* Not supported yet */
	IEEE802154_RX_ENABLE_REQ, /* Not supported yet */
	IEEE802154_RX_ENABLE_CONF, /* Not supported yet */

144
	IEEE802154_LIST_IFACE,
145
	IEEE802154_LIST_PHY,
146 147
	IEEE802154_ADD_IFACE,
	IEEE802154_DEL_IFACE,
148

149
	IEEE802154_SET_MACPARAMS,
150

151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
	IEEE802154_LLSEC_GETPARAMS,
	IEEE802154_LLSEC_SETPARAMS,
	IEEE802154_LLSEC_LIST_KEY,
	IEEE802154_LLSEC_ADD_KEY,
	IEEE802154_LLSEC_DEL_KEY,
	IEEE802154_LLSEC_LIST_DEV,
	IEEE802154_LLSEC_ADD_DEV,
	IEEE802154_LLSEC_DEL_DEV,
	IEEE802154_LLSEC_LIST_DEVKEY,
	IEEE802154_LLSEC_ADD_DEVKEY,
	IEEE802154_LLSEC_DEL_DEVKEY,
	IEEE802154_LLSEC_LIST_SECLEVEL,
	IEEE802154_LLSEC_ADD_SECLEVEL,
	IEEE802154_LLSEC_DEL_SECLEVEL,

166 167 168 169 170
	__IEEE802154_CMD_MAX,
};

#define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1)

171 172
enum {
	__IEEE802154_DEV_INVALID = -1,
173

174 175
	IEEE802154_DEV_WPAN,
	IEEE802154_DEV_MONITOR,
176

177 178 179
	__IEEE802154_DEV_MAX,
};

180
#endif