diff options
Diffstat (limited to 'src/transport/plugin_transport_wlan.h')
-rw-r--r-- | src/transport/plugin_transport_wlan.h | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/src/transport/plugin_transport_wlan.h b/src/transport/plugin_transport_wlan.h deleted file mode 100644 index d175f9377..000000000 --- a/src/transport/plugin_transport_wlan.h +++ /dev/null | |||
@@ -1,276 +0,0 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet | ||
3 | Copyright (C) 2010, 2011 GNUnet e.V. | ||
4 | |||
5 | GNUnet is free software: you can redistribute it and/or modify it | ||
6 | under the terms of the GNU Affero General Public License as published | ||
7 | by the Free Software Foundation, either version 3 of the License, | ||
8 | or (at your option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | Affero General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU Affero General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | |||
18 | SPDX-License-Identifier: AGPL3.0-or-later | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file transport/plugin_transport_wlan.h | ||
23 | * @brief header for transport plugin and the helper for wlan | ||
24 | * @author David Brodski | ||
25 | */ | ||
26 | #ifndef PLUGIN_TRANSPORT_WLAN | ||
27 | #define PLUGIN_TRANSPORT_WLAN | ||
28 | |||
29 | #include "gnunet_crypto_lib.h" | ||
30 | #include "gnunet_common.h" | ||
31 | |||
32 | /** | ||
33 | * Number fo bytes in a mac address. | ||
34 | */ | ||
35 | #define MAC_ADDR_SIZE 6 | ||
36 | |||
37 | /** | ||
38 | * Value for "Management" in the 'frame_control' field of the | ||
39 | * struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame. | ||
40 | */ | ||
41 | #define IEEE80211_FC0_TYPE_MGT 0x00 | ||
42 | |||
43 | /** | ||
44 | * Value for "Control" in the 'frame_control' field of the | ||
45 | * struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame. | ||
46 | */ | ||
47 | #define IEEE80211_FC0_TYPE_CTL 0x04 | ||
48 | |||
49 | /** | ||
50 | * Value for DATA in the 'frame_control' field of the | ||
51 | * struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame. | ||
52 | */ | ||
53 | #define IEEE80211_FC0_TYPE_DATA 0x08 | ||
54 | |||
55 | |||
56 | GNUNET_NETWORK_STRUCT_BEGIN | ||
57 | |||
58 | /** | ||
59 | * A MAC Address. | ||
60 | */ | ||
61 | struct GNUNET_TRANSPORT_WLAN_MacAddress | ||
62 | { | ||
63 | uint8_t mac[MAC_ADDR_SIZE]; | ||
64 | }; | ||
65 | |||
66 | /** | ||
67 | * Format of a WLAN Control Message. | ||
68 | */ | ||
69 | struct GNUNET_TRANSPORT_WLAN_HelperControlMessage | ||
70 | { | ||
71 | /** | ||
72 | * Message header. Type is | ||
73 | * GNUNET_MESSAGE_TYPE_WLAN_HELPER_CONTROL | ||
74 | */ | ||
75 | struct GNUNET_MessageHeader hdr; | ||
76 | |||
77 | /** | ||
78 | * MAC Address of the local WLAN interface. | ||
79 | */ | ||
80 | struct GNUNET_TRANSPORT_WLAN_MacAddress mac; | ||
81 | }; | ||
82 | |||
83 | /** | ||
84 | * generic definitions for IEEE 802.3 frames | ||
85 | */ | ||
86 | struct GNUNET_TRANSPORT_WLAN_Ieee8023Frame | ||
87 | { | ||
88 | /** | ||
89 | * Address 1: destination address in ad-hoc mode or AP, BSSID if station, | ||
90 | */ | ||
91 | struct GNUNET_TRANSPORT_WLAN_MacAddress dst; | ||
92 | |||
93 | /** | ||
94 | * Address 2: source address if in ad-hoc-mode or station, BSSID if AP | ||
95 | */ | ||
96 | struct GNUNET_TRANSPORT_WLAN_MacAddress src; | ||
97 | |||
98 | /** | ||
99 | * Packet type ID. | ||
100 | */ | ||
101 | uint16_t type; | ||
102 | }; | ||
103 | |||
104 | |||
105 | /** | ||
106 | * generic definitions for IEEE 802.11 frames | ||
107 | */ | ||
108 | struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame | ||
109 | { | ||
110 | /** | ||
111 | * 802.11 Frame Control field. A bitmask. The overall field is a | ||
112 | * 16-bit mask of the respective fields. The lowest two bits should | ||
113 | * be 0, then comes the "type" (2 bits, see IEEE80211_FC0_TYPE_* | ||
114 | * constants), followed by 4-bit subtype (all zeros for ad-hoc), | ||
115 | * followed by various flags (to DS, from DS, more frag, retry, | ||
116 | * power management, more data, WEP, strict), all of which we also | ||
117 | * keep at zero. | ||
118 | */ | ||
119 | uint16_t frame_control GNUNET_PACKED; | ||
120 | |||
121 | /** | ||
122 | * Microseconds to reserve link (duration), 0 by default | ||
123 | */ | ||
124 | uint16_t duration GNUNET_PACKED; | ||
125 | |||
126 | /** | ||
127 | * Address 1: destination address in ad-hoc mode or AP, BSSID if station, | ||
128 | */ | ||
129 | struct GNUNET_TRANSPORT_WLAN_MacAddress addr1; | ||
130 | |||
131 | /** | ||
132 | * Address 2: source address if in ad-hoc-mode or station, BSSID if AP | ||
133 | */ | ||
134 | struct GNUNET_TRANSPORT_WLAN_MacAddress addr2; | ||
135 | |||
136 | /** | ||
137 | * Address 3: BSSID in ad-hoc mode, Destination if station, source if AP | ||
138 | */ | ||
139 | struct GNUNET_TRANSPORT_WLAN_MacAddress addr3; | ||
140 | |||
141 | /** | ||
142 | * 802.11 sequence control field; contains fragment number an sequence | ||
143 | * number (we set this to all zeros). | ||
144 | */ | ||
145 | uint16_t sequence_control GNUNET_PACKED; | ||
146 | |||
147 | /** | ||
148 | * Link layer control (LLC). Set to a GNUnet-specific value. | ||
149 | */ | ||
150 | u_int8_t llc[4]; | ||
151 | |||
152 | /* payload */ | ||
153 | } GNUNET_PACKED; | ||
154 | |||
155 | |||
156 | /** | ||
157 | * Message from the plugin to the WLAN helper: send the given message with the | ||
158 | * given connection parameters. | ||
159 | */ | ||
160 | struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage | ||
161 | { | ||
162 | /** | ||
163 | * Type is 'GNUNET_MESSAGE_TYPE_WLAN_DATA_TO_HELPER'. | ||
164 | */ | ||
165 | struct GNUNET_MessageHeader header; | ||
166 | |||
167 | /** | ||
168 | * wlan send rate | ||
169 | */ | ||
170 | uint8_t rate; | ||
171 | |||
172 | /** | ||
173 | * Antenna; the first antenna is 0. | ||
174 | */ | ||
175 | uint8_t antenna; | ||
176 | |||
177 | /** | ||
178 | * Transmit power expressed as unitless distance from max power set at factory calibration. | ||
179 | * 0 is max power. Monotonically nondecreasing with lower power levels. | ||
180 | */ | ||
181 | uint16_t tx_power GNUNET_PACKED; | ||
182 | |||
183 | /** | ||
184 | * IEEE Frame to transmit (the sender MAC address will be overwritten by the helper as it does not | ||
185 | * trust the plugin to set it correctly). | ||
186 | */ | ||
187 | struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame frame; | ||
188 | |||
189 | /* actual payload follows */ | ||
190 | }; | ||
191 | |||
192 | |||
193 | /** | ||
194 | * Message from the WLAN helper to the plugin: we have received the given message with the | ||
195 | * given performance characteristics. | ||
196 | */ | ||
197 | /** | ||
198 | * struct to represent infos gathered form the radiotap fields, see RadiotapHeader for more Infos | ||
199 | */ | ||
200 | struct GNUNET_TRANSPORT_WLAN_RadiotapReceiveMessage | ||
201 | { | ||
202 | /** | ||
203 | * Type is 'GNUNET_MESSAGE_TYPE_WLAN_DATA_FROM_HELPER'. | ||
204 | */ | ||
205 | struct GNUNET_MessageHeader header; | ||
206 | |||
207 | /** | ||
208 | * Information about which of the fields below are actually valid. | ||
209 | * 0 for none. FIXME: not properly initialized so far (always zero). | ||
210 | */ | ||
211 | uint32_t ri_present GNUNET_PACKED; | ||
212 | |||
213 | /** | ||
214 | * IEEE80211_RADIOTAP_TSFT, 0 if unknown. | ||
215 | */ | ||
216 | uint64_t ri_mactime GNUNET_PACKED; | ||
217 | |||
218 | /** | ||
219 | * from radiotap | ||
220 | * either IEEE80211_RADIOTAP_DBM_ANTSIGNAL | ||
221 | * or IEEE80211_RADIOTAP_DB_ANTSIGNAL, 0 if unknown. | ||
222 | */ | ||
223 | int32_t ri_power GNUNET_PACKED; | ||
224 | |||
225 | /** | ||
226 | * either IEEE80211_RADIOTAP_DBM_ANTNOISE | ||
227 | * or IEEE80211_RADIOTAP_DB_ANTNOISE, 0 if unknown. | ||
228 | */ | ||
229 | int32_t ri_noise GNUNET_PACKED; | ||
230 | |||
231 | /** | ||
232 | * IEEE80211_RADIOTAP_CHANNEL, 0 if unknown. | ||
233 | */ | ||
234 | uint32_t ri_channel GNUNET_PACKED; | ||
235 | |||
236 | /** | ||
237 | * Frequency we use. 0 if unknown. | ||
238 | */ | ||
239 | uint32_t ri_freq GNUNET_PACKED; | ||
240 | |||
241 | /** | ||
242 | * IEEE80211_RADIOTAP_RATE * 50000, 0 if unknown. | ||
243 | */ | ||
244 | uint32_t ri_rate GNUNET_PACKED; | ||
245 | |||
246 | /** | ||
247 | * IEEE80211_RADIOTAP_ANTENNA, 0 if unknown. | ||
248 | */ | ||
249 | uint32_t ri_antenna GNUNET_PACKED; | ||
250 | |||
251 | /** | ||
252 | * IEEE Frame. | ||
253 | */ | ||
254 | struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame frame; | ||
255 | |||
256 | /* followed by payload */ | ||
257 | }; | ||
258 | |||
259 | GNUNET_NETWORK_STRUCT_END | ||
260 | |||
261 | /** | ||
262 | * GNUnet bssid | ||
263 | */ | ||
264 | static const struct GNUNET_TRANSPORT_WLAN_MacAddress mac_bssid_gnunet = { | ||
265 | { 0x13, 0x22, 0x33, 0x44, 0x55, 0x66 } | ||
266 | }; | ||
267 | |||
268 | |||
269 | /** | ||
270 | * Broadcast MAC | ||
271 | */ | ||
272 | static const struct GNUNET_TRANSPORT_WLAN_MacAddress bc_all_mac = { | ||
273 | { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } | ||
274 | }; | ||
275 | |||
276 | #endif | ||