summaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_wlan.h
diff options
context:
space:
mode:
authorDavid Brodski <david@brodski.eu>2011-07-12 21:34:34 +0000
committerDavid Brodski <david@brodski.eu>2011-07-12 21:34:34 +0000
commitc584d8950bda4b27ccc2fa03de2cee23a8ae56d2 (patch)
tree8156e7a7557b9578f99f973805fa329b5dfeeb81 /src/transport/plugin_transport_wlan.h
parentad04126c71ef4de17657391ecc656d5bfd32f5fd (diff)
one wlan card is now usable with more than one peer, wlan header format changed so be careful and do not mix protocol versions. Some cleanup and formating.
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 @@
/*
- This file is part of GNUnet
- (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors)
-
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
-
- GNUnet 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.
-
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
+ This file is part of GNUnet
+ (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing authors)
+
+ GNUnet is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GNUnet 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.
+
+ You should have received a copy of the GNU General Public License
+ along with GNUnet; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+ */
/**
* @file transport/plugin_transport_wlan.h
@@ -30,8 +30,6 @@
#include <stdint.h>
#include "gnunet_common.h"
-
-
struct MacAddress
{
u_int8_t mac[6];
@@ -89,67 +87,71 @@ struct WlanHeader
*/
struct GNUNET_PeerIdentity target;
+ /**
+ * Where the packet came from
+ */
+ struct GNUNET_PeerIdentity source;
+
// followed by payload
};
/* Wlan IEEE80211 header default */
//Informations (in German) http://www.umtslink.at/content/WLAN_macheader-196.html
-static const uint8_t u8aIeeeHeader[] =
- {
- 0x08, 0x01, // Frame Control 0x08= 00001000 -> | b1,2 = 0 -> Version 0;
- // b3,4 = 10 -> Data; b5-8 = 0 -> Normal Data
- // 0x01 = 00000001 -> | b1 = 1 to DS; b2 = 0 not from DS;
- 0x00, 0x00, // Duration/ID
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // mac1 - in this case receiver
- 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac2 - in this case sender
- 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac3 - in this case bssid
- 0x10, 0x86, //Sequence Control
- };
+static const uint8_t u8aIeeeHeader[] =
+ { 0x08, 0x01, // Frame Control 0x08= 00001000 -> | b1,2 = 0 -> Version 0;
+ // b3,4 = 10 -> Data; b5-8 = 0 -> Normal Data
+ // 0x01 = 00000001 -> | b1 = 1 to DS; b2 = 0 not from DS;
+ 0x00, 0x00, // Duration/ID
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // mac1 - in this case receiver
+ 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac2 - in this case sender
+ 0x13, 0x22, 0x33, 0x44, 0x55, 0x66, // mac3 - in this case bssid
+ 0x10, 0x86, //Sequence Control
+ };
// gnunet bssid
static const struct MacAddress mac_bssid =
- { { 0x13, 0x22, 0x33, 0x44, 0x55, 0x66 } } ;
+ {
+ { 0x13, 0x22, 0x33, 0x44, 0x55, 0x66 } };
// broadcast mac
static const struct MacAddress bc_all_mac =
- { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } };
-
+ {
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } };
/* this is the template radiotap header we send packets out with */
-static const uint8_t u8aRadiotapHeader[] =
- {
- 0x00, 0x00, // <-- radiotap version
- 0x19, 0x00, // <- radiotap header length
- 0x6f, 0x08, 0x00, 0x00, // <-- bitmap
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <-- timestamp
- 0x00, // <-- flags (Offset +0x10)
- 0x6c, // <-- rate (0ffset +0x11)
- 0x71, 0x09, 0xc0, 0x00, // <-- channel
- 0xde, // <-- antsignal
- 0x00, // <-- antnoise
- 0x01, // <-- antenna
-};
+static const uint8_t u8aRadiotapHeader[] =
+ { 0x00, 0x00, // <-- radiotap version
+ 0x19, 0x00, // <- radiotap header length
+ 0x6f, 0x08, 0x00, 0x00, // <-- bitmap
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <-- timestamp
+ 0x00, // <-- flags (Offset +0x10)
+ 0x6c, // <-- rate (0ffset +0x11)
+ 0x71, 0x09, 0xc0, 0x00, // <-- channel
+ 0xde, // <-- antsignal
+ 0x00, // <-- antnoise
+ 0x01, // <-- antenna
+ };
struct Radiotap_Send
{
/**
- * wlan send rate
- */
- uint8_t rate;
+ * wlan send rate
+ */
+ uint8_t rate;
- /**
- * antenna
- */
- uint8_t antenna;
+ /**
+ * antenna
+ */
+ uint8_t antenna;
- /**
- * Transmit power expressed as unitless distance from max power set at factory calibration.
- * 0 is max power. Monotonically nondecreasing with lower power levels.
- */
+ /**
+ * Transmit power expressed as unitless distance from max power set at factory calibration.
+ * 0 is max power. Monotonically nondecreasing with lower power levels.
+ */
- uint16_t tx_power;
+ uint16_t tx_power;
};
// bit field defines for ri_present
@@ -162,15 +164,16 @@ struct Radiotap_Send
* struct to represent infos gathered form the radiotap fields
*/
-struct Radiotap_rx {
- uint32_t ri_present;
- uint64_t ri_mactime;
- int32_t ri_power;
- int32_t ri_noise;
- uint32_t ri_channel;
- uint32_t ri_freq;
- uint32_t ri_rate;
- uint32_t ri_antenna;
+struct Radiotap_rx
+{
+ uint32_t ri_present;
+ uint64_t ri_mactime;
+ int32_t ri_power;
+ int32_t ri_noise;
+ uint32_t ri_channel;
+ uint32_t ri_freq;
+ uint32_t ri_rate;
+ uint32_t ri_antenna;
};
/**
@@ -184,48 +187,48 @@ struct RadiotapHeader
u_int8_t version;
u_int8_t pad_version;
-
+
/**
* radiotap header length
*/
uint16_t length GNUNET_PACKED;
-
+
/**
* bitmap, fields present
*/
uint32_t bitmap GNUNET_PACKED;
-
+
/**
* timestamp
*/
uint64_t timestamp GNUNET_PACKED;
-
+
/**
* radiotap flags
*/
uint8_t flags;
-
+
/**
* wlan send rate
*/
uint8_t rate;
-
+
// FIXME: unaligned here, is this OK?
/**
* Wlan channel
*/
uint32_t channel GNUNET_PACKED;
-
+
/**
* antsignal
*/
uint8_t antsignal;
-
+
/**
* antnoise
*/
uint8_t antnoise;
-
+
/**
* antenna
*/