fixed Bug 1066 - Set Radiotap modulation type flags correctly

This commit is contained in:
Nicola Baldo
2011-04-10 18:37:49 +02:00
parent cc39a25064
commit dd8505ca4e

View File

@@ -278,16 +278,31 @@ PcapSniffTxEvent (
header.SetFrameFlags (frameFlags);
header.SetRate (rate);
uint16_t channelFlags = 0;
switch (rate)
{
case 2: // 1Mbps
case 4: // 2Mbps
case 10: // 5Mbps
case 22: // 11Mbps
channelFlags |= RadiotapHeader::CHANNEL_FLAG_CCK;
break;
default:
channelFlags |= RadiotapHeader::CHANNEL_FLAG_OFDM;
break;
}
if (channelFreqMhz < 2500)
{
header.SetChannelFrequencyAndFlags (channelFreqMhz,
RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ | RadiotapHeader::CHANNEL_FLAG_CCK);
channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ;
}
else
{
header.SetChannelFrequencyAndFlags (channelFreqMhz,
RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ | RadiotapHeader::CHANNEL_FLAG_OFDM);
channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ;
}
header.SetChannelFrequencyAndFlags (channelFreqMhz, channelFlags);
p->AddHeader (header);
file->Write (Simulator::Now (), p);
@@ -339,16 +354,31 @@ PcapSniffRxEvent (
header.SetFrameFlags (frameFlags);
header.SetRate (rate);
uint16_t channelFlags = 0;
switch (rate)
{
case 2: // 1Mbps
case 4: // 2Mbps
case 10: // 5Mbps
case 22: // 11Mbps
channelFlags |= RadiotapHeader::CHANNEL_FLAG_CCK;
break;
default:
channelFlags |= RadiotapHeader::CHANNEL_FLAG_OFDM;
break;
}
if (channelFreqMhz < 2500)
{
header.SetChannelFrequencyAndFlags (channelFreqMhz,
RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ | RadiotapHeader::CHANNEL_FLAG_CCK);
channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ;
}
else
{
header.SetChannelFrequencyAndFlags (channelFreqMhz,
RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ | RadiotapHeader::CHANNEL_FLAG_OFDM);
channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ;
}
header.SetChannelFrequencyAndFlags (channelFreqMhz, channelFlags);
header.SetAntennaSignalPower (signalDbm);
header.SetAntennaNoisePower (noiseDbm);