Commit | Line | Data |
---|---|---|
3ae75e02 AA |
1 | #ifndef __NL802154_H |
2 | #define __NL802154_H | |
3 | /* | |
4 | * 802.15.4 netlink interface public header | |
5 | * | |
6 | * Copyright 2014 Alexander Aring <aar@pengutronix.de> | |
7 | * | |
8 | * Permission to use, copy, modify, and/or distribute this software for any | |
9 | * purpose with or without fee is hereby granted, provided that the above | |
10 | * copyright notice and this permission notice appear in all copies. | |
11 | * | |
12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
13 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
14 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
15 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
16 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
17 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
18 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
19 | * | |
20 | */ | |
21 | ||
22 | #define NL802154_GENL_NAME "nl802154" | |
23 | ||
24 | enum nl802154_commands { | |
25 | /* don't change the order or add anything between, this is ABI! */ | |
26 | /* currently we don't shipping this file via uapi, ignore the above one */ | |
27 | NL802154_CMD_UNSPEC, | |
28 | ||
29 | NL802154_CMD_GET_WPAN_PHY, /* can dump */ | |
30 | NL802154_CMD_SET_WPAN_PHY, | |
31 | NL802154_CMD_NEW_WPAN_PHY, | |
32 | NL802154_CMD_DEL_WPAN_PHY, | |
33 | ||
34 | NL802154_CMD_GET_INTERFACE, /* can dump */ | |
35 | NL802154_CMD_SET_INTERFACE, | |
36 | NL802154_CMD_NEW_INTERFACE, | |
37 | NL802154_CMD_DEL_INTERFACE, | |
38 | ||
39 | NL802154_CMD_SET_CHANNEL, | |
40 | ||
41 | NL802154_CMD_SET_PAN_ID, | |
42 | NL802154_CMD_SET_SHORT_ADDR, | |
43 | ||
44 | NL802154_CMD_SET_TX_POWER, | |
45 | NL802154_CMD_SET_CCA_MODE, | |
46 | NL802154_CMD_SET_CCA_ED_LEVEL, | |
47 | ||
48 | NL802154_CMD_SET_MAX_FRAME_RETRIES, | |
49 | ||
50 | NL802154_CMD_SET_BACKOFF_EXPONENT, | |
51 | NL802154_CMD_SET_MAX_CSMA_BACKOFFS, | |
52 | ||
53 | NL802154_CMD_SET_LBT_MODE, | |
54 | ||
55 | /* add new commands above here */ | |
56 | ||
57 | /* used to define NL802154_CMD_MAX below */ | |
58 | __NL802154_CMD_AFTER_LAST, | |
59 | NL802154_CMD_MAX = __NL802154_CMD_AFTER_LAST - 1 | |
60 | }; | |
61 | ||
62 | enum nl802154_attrs { | |
63 | /* don't change the order or add anything between, this is ABI! */ | |
64 | /* currently we don't shipping this file via uapi, ignore the above one */ | |
65 | NL802154_ATTR_UNSPEC, | |
66 | ||
67 | NL802154_ATTR_WPAN_PHY, | |
68 | NL802154_ATTR_WPAN_PHY_NAME, | |
69 | ||
70 | NL802154_ATTR_IFINDEX, | |
71 | NL802154_ATTR_IFNAME, | |
72 | NL802154_ATTR_IFTYPE, | |
73 | ||
74 | NL802154_ATTR_WPAN_DEV, | |
75 | ||
76 | NL802154_ATTR_PAGE, | |
77 | NL802154_ATTR_CHANNEL, | |
78 | ||
79 | NL802154_ATTR_PAN_ID, | |
80 | NL802154_ATTR_SHORT_ADDR, | |
81 | ||
82 | NL802154_ATTR_TX_POWER, | |
83 | ||
84 | NL802154_ATTR_CCA_MODE, | |
ba2a9506 | 85 | NL802154_ATTR_CCA_OPT, |
3ae75e02 AA |
86 | NL802154_ATTR_CCA_ED_LEVEL, |
87 | ||
88 | NL802154_ATTR_MAX_FRAME_RETRIES, | |
89 | ||
90 | NL802154_ATTR_MAX_BE, | |
91 | NL802154_ATTR_MIN_BE, | |
92 | NL802154_ATTR_MAX_CSMA_BACKOFFS, | |
93 | ||
94 | NL802154_ATTR_LBT_MODE, | |
95 | ||
96 | NL802154_ATTR_GENERATION, | |
97 | ||
98 | NL802154_ATTR_CHANNELS_SUPPORTED, | |
99 | NL802154_ATTR_SUPPORTED_CHANNEL, | |
100 | ||
101 | NL802154_ATTR_EXTENDED_ADDR, | |
102 | ||
103 | /* add attributes here, update the policy in nl802154.c */ | |
104 | ||
105 | __NL802154_ATTR_AFTER_LAST, | |
106 | NL802154_ATTR_MAX = __NL802154_ATTR_AFTER_LAST - 1 | |
107 | }; | |
108 | ||
109 | enum nl802154_iftype { | |
110 | /* for backwards compatibility TODO */ | |
111 | NL802154_IFTYPE_UNSPEC = -1, | |
112 | ||
113 | NL802154_IFTYPE_NODE, | |
114 | NL802154_IFTYPE_MONITOR, | |
115 | NL802154_IFTYPE_COORD, | |
116 | ||
117 | /* keep last */ | |
118 | NUM_NL802154_IFTYPES, | |
119 | NL802154_IFTYPE_MAX = NUM_NL802154_IFTYPES - 1 | |
120 | }; | |
121 | ||
b40d6376 AA |
122 | /** |
123 | * enum nl802154_cca_modes - cca modes | |
124 | * | |
125 | * @__NL802154_CCA_INVALID: cca mode number 0 is reserved | |
126 | * @NL802154_CCA_ENERGY: Energy above threshold | |
127 | * @NL802154_CCA_CARRIER: Carrier sense only | |
128 | * @NL802154_CCA_ENERGY_CARRIER: Carrier sense with energy above threshold | |
129 | * @NL802154_CCA_ALOHA: CCA shall always report an idle medium | |
130 | * @NL802154_CCA_UWB_SHR: UWB preamble sense based on the SHR of a frame | |
131 | * @NL802154_CCA_UWB_MULTIPEXED: UWB preamble sense based on the packet with | |
132 | * the multiplexed preamble | |
133 | * @__NL802154_CCA_ATTR_AFTER_LAST: Internal | |
134 | * @NL802154_CCA_ATTR_MAX: Maximum CCA attribute number | |
135 | */ | |
136 | enum nl802154_cca_modes { | |
137 | __NL802154_CCA_INVALID, | |
138 | NL802154_CCA_ENERGY, | |
139 | NL802154_CCA_CARRIER, | |
140 | NL802154_CCA_ENERGY_CARRIER, | |
141 | NL802154_CCA_ALOHA, | |
142 | NL802154_CCA_UWB_SHR, | |
143 | NL802154_CCA_UWB_MULTIPEXED, | |
144 | ||
145 | /* keep last */ | |
146 | __NL802154_CCA_ATTR_AFTER_LAST, | |
147 | NL802154_CCA_ATTR_MAX = __NL802154_CCA_ATTR_AFTER_LAST - 1 | |
148 | }; | |
149 | ||
150 | /** | |
151 | * enum nl802154_cca_opts - additional options for cca modes | |
152 | * | |
153 | * @NL802154_CCA_OPT_ENERGY_CARRIER_OR: NL802154_CCA_ENERGY_CARRIER with OR | |
154 | * @NL802154_CCA_OPT_ENERGY_CARRIER_AND: NL802154_CCA_ENERGY_CARRIER with AND | |
155 | */ | |
156 | enum nl802154_cca_opts { | |
157 | NL802154_CCA_OPT_ENERGY_CARRIER_AND, | |
158 | NL802154_CCA_OPT_ENERGY_CARRIER_OR, | |
159 | ||
160 | /* keep last */ | |
161 | __NL802154_CCA_OPT_ATTR_AFTER_LAST, | |
162 | NL802154_CCA_OPT_ATTR_MAX = __NL802154_CCA_OPT_ATTR_AFTER_LAST - 1 | |
163 | }; | |
164 | ||
3ae75e02 | 165 | #endif /* __NL802154_H */ |