00001 #include <NicControlType.h>
00002
00003 #ifndef CONSTANTS_802_11
00004 #define CONSTANTS_802_11
00005
00006 enum ControlTypes_802_11 {
00007 NOTHING = NicControlType::NOTHING,
00008 TRANSMISSION_OVER = NicControlType::TRANSMISSION_OVER,
00009 PACKET_DROPPED = NicControlType::PACKET_DROPPED,
00010 BITERROR,
00011 COLLISION
00012 };
00013
00015 enum frameType_802_11 {
00016
00017
00018 RTS = COLLISION + 1,
00019 CTS,
00020 ACK,
00021 DATA,
00022 BROADCAST
00023 };
00024
00026 const double BITRATES_80211[] = {
00027 1000000,
00028 2000000,
00029 5500000,
00030 11000000
00031 };
00032
00033
00041 const double RED_PHY_HEADER_DURATION = 0.000020;
00042
00044 const double PHY_HEADER_LENGTH=192;
00046 const double HEADER_WITHOUT_PREAMBLE=48;
00048 const double BITRATE_HEADER=1E+6;
00050 const double BANDWIDTH=20E+6;
00051
00052 const int MAC_GENERATOR = 5;
00053
00056 const double LENGTH_RTS = 160;
00057 const double LENGTH_CTS = 112;
00058 const double LENGTH_ACK = 112;
00060 const int MAC80211_HEADER_LENGTH = 272;
00061
00062
00063
00067 const double ST = 20E-6;
00071 const double SIFS = 10E-6;
00075 const double DIFS = 2*ST + SIFS;
00079 const double EIFS = SIFS + DIFS + (PHY_HEADER_LENGTH + LENGTH_ACK)/BITRATE_HEADER;
00080
00085 const unsigned LONG_RETRY_LIMIT = 4;
00086
00091 const unsigned SHORT_RETRY_LIMIT = 7;
00092
00096 const unsigned CW_MIN = 31;
00097
00099 const unsigned CW_MAX = 1023;
00100
00101 #endif
00102