aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_wlan.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_wlan.h')
-rw-r--r--src/transport/plugin_transport_wlan.h157
1 files changed, 80 insertions, 77 deletions
diff --git a/src/transport/plugin_transport_wlan.h b/src/transport/plugin_transport_wlan.h
index 3baa4d79d..5c86c5bd0 100644
--- a/src/transport/plugin_transport_wlan.h
+++ b/src/transport/plugin_transport_wlan.h
@@ -1,22 +1,22 @@
1/* 1/*
2 This file is part of GNUnet 2 This file is part of GNUnet
3 (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors) 3 (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors)
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published 6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version. 8 option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19 */
20 20
21/** 21/**
22 * @file transport/plugin_transport_wlan.h 22 * @file transport/plugin_transport_wlan.h
@@ -30,8 +30,6 @@
30#include <stdint.h> 30#include <stdint.h>
31#include "gnunet_common.h" 31#include "gnunet_common.h"
32 32
33
34
35struct MacAddress 33struct MacAddress
36{ 34{
37 u_int8_t mac[6]; 35 u_int8_t mac[6];
@@ -89,67 +87,71 @@ struct WlanHeader
89 */ 87 */
90 struct GNUNET_PeerIdentity target; 88 struct GNUNET_PeerIdentity target;
91 89
90 /**
91 * Where the packet came from
92 */
93 struct GNUNET_PeerIdentity source;
94
92// followed by payload 95// followed by payload
93 96
94}; 97};
95 98
96/* Wlan IEEE80211 header default */ 99/* Wlan IEEE80211 header default */
97//Informations (in German) http://www.umtslink.at/content/WLAN_macheader-196.html 100//Informations (in German) http://www.umtslink.at/content/WLAN_macheader-196.html
98static const uint8_t u8aIeeeHeader[] = 101static const uint8_t u8aIeeeHeader[] =
99 { 102 { 0x08, 0x01, // Frame Control 0x08= 00001000 -> | b1,2 = 0 -> Version 0;
100 0x08, 0x01, // Frame Control 0x08= 00001000 -> | b1,2 = 0 -> Version 0; 103 // b3,4 = 10 -> Data; b5-8 = 0 -> Normal Data
101 // b3,4 = 10 -> Data; b5-8 = 0 -> Normal Data 104 // 0x01 = 00000001 -> | b1 = 1 to DS; b2 = 0 not from DS;
102 // 0x01 = 00000001 -> | b1 = 1 to DS; b2 = 0 not from DS; 105 0x00, 0x00, // Duration/ID
103 0x00, 0x00, // Duration/ID 106 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // mac1 - in this case receiver
104 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // mac1 - in this case receiver 107 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac2 - in this case sender
105 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac2 - in this case sender 108 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac3 - in this case bssid
106 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac3 - in this case bssid 109 0x10, 0x86, //Sequence Control
107 0x10, 0x86, //Sequence Control 110 };
108 };
109 111
110// gnunet bssid 112// gnunet bssid
111static const struct MacAddress mac_bssid = 113static const struct MacAddress mac_bssid =
112 { { 0x13, 0x22, 0x33, 0x44, 0x55, 0x66 } } ; 114 {
115 { 0x13, 0x22, 0x33, 0x44, 0x55, 0x66 } };
113 116
114// broadcast mac 117// broadcast mac
115static const struct MacAddress bc_all_mac = 118static const struct MacAddress bc_all_mac =
116 { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } }; 119 {
117 120 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } };
118 121
119/* this is the template radiotap header we send packets out with */ 122/* this is the template radiotap header we send packets out with */
120 123
121static const uint8_t u8aRadiotapHeader[] = 124static const uint8_t u8aRadiotapHeader[] =
122 { 125 { 0x00, 0x00, // <-- radiotap version
123 0x00, 0x00, // <-- radiotap version 126 0x19, 0x00, // <- radiotap header length
124 0x19, 0x00, // <- radiotap header length 127 0x6f, 0x08, 0x00, 0x00, // <-- bitmap
125 0x6f, 0x08, 0x00, 0x00, // <-- bitmap 128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <-- timestamp
126 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <-- timestamp 129 0x00, // <-- flags (Offset +0x10)
127 0x00, // <-- flags (Offset +0x10) 130 0x6c, // <-- rate (0ffset +0x11)
128 0x6c, // <-- rate (0ffset +0x11) 131 0x71, 0x09, 0xc0, 0x00, // <-- channel
129 0x71, 0x09, 0xc0, 0x00, // <-- channel 132 0xde, // <-- antsignal
130 0xde, // <-- antsignal 133 0x00, // <-- antnoise
131 0x00, // <-- antnoise 134 0x01, // <-- antenna
132 0x01, // <-- antenna 135 };
133};
134 136
135struct Radiotap_Send 137struct Radiotap_Send
136{ 138{
137 /** 139 /**
138 * wlan send rate 140 * wlan send rate
139 */ 141 */
140 uint8_t rate; 142 uint8_t rate;
141 143
142 /** 144 /**
143 * antenna 145 * antenna
144 */ 146 */
145 uint8_t antenna; 147 uint8_t antenna;
146 148
147 /** 149 /**
148 * Transmit power expressed as unitless distance from max power set at factory calibration. 150 * Transmit power expressed as unitless distance from max power set at factory calibration.
149 * 0 is max power. Monotonically nondecreasing with lower power levels. 151 * 0 is max power. Monotonically nondecreasing with lower power levels.
150 */ 152 */
151 153
152 uint16_t tx_power; 154 uint16_t tx_power;
153}; 155};
154 156
155// bit field defines for ri_present 157// bit field defines for ri_present
@@ -162,15 +164,16 @@ struct Radiotap_Send
162 * struct to represent infos gathered form the radiotap fields 164 * struct to represent infos gathered form the radiotap fields
163 */ 165 */
164 166
165struct Radiotap_rx { 167struct Radiotap_rx
166 uint32_t ri_present; 168{
167 uint64_t ri_mactime; 169 uint32_t ri_present;
168 int32_t ri_power; 170 uint64_t ri_mactime;
169 int32_t ri_noise; 171 int32_t ri_power;
170 uint32_t ri_channel; 172 int32_t ri_noise;
171 uint32_t ri_freq; 173 uint32_t ri_channel;
172 uint32_t ri_rate; 174 uint32_t ri_freq;
173 uint32_t ri_antenna; 175 uint32_t ri_rate;
176 uint32_t ri_antenna;
174}; 177};
175 178
176/** 179/**
@@ -184,48 +187,48 @@ struct RadiotapHeader
184 u_int8_t version; 187 u_int8_t version;
185 188
186 u_int8_t pad_version; 189 u_int8_t pad_version;
187 190
188 /** 191 /**
189 * radiotap header length 192 * radiotap header length
190 */ 193 */
191 uint16_t length GNUNET_PACKED; 194 uint16_t length GNUNET_PACKED;
192 195
193 /** 196 /**
194 * bitmap, fields present 197 * bitmap, fields present
195 */ 198 */
196 uint32_t bitmap GNUNET_PACKED; 199 uint32_t bitmap GNUNET_PACKED;
197 200
198 /** 201 /**
199 * timestamp 202 * timestamp
200 */ 203 */
201 uint64_t timestamp GNUNET_PACKED; 204 uint64_t timestamp GNUNET_PACKED;
202 205
203 /** 206 /**
204 * radiotap flags 207 * radiotap flags
205 */ 208 */
206 uint8_t flags; 209 uint8_t flags;
207 210
208 /** 211 /**
209 * wlan send rate 212 * wlan send rate
210 */ 213 */
211 uint8_t rate; 214 uint8_t rate;
212 215
213 // FIXME: unaligned here, is this OK? 216 // FIXME: unaligned here, is this OK?
214 /** 217 /**
215 * Wlan channel 218 * Wlan channel
216 */ 219 */
217 uint32_t channel GNUNET_PACKED; 220 uint32_t channel GNUNET_PACKED;
218 221
219 /** 222 /**
220 * antsignal 223 * antsignal
221 */ 224 */
222 uint8_t antsignal; 225 uint8_t antsignal;
223 226
224 /** 227 /**
225 * antnoise 228 * antnoise
226 */ 229 */
227 uint8_t antnoise; 230 uint8_t antnoise;
228 231
229 /** 232 /**
230 * antenna 233 * antenna
231 */ 234 */