21 #include "supported-rates.h" 
   22 #include "ns3/assert.h" 
   29 SupportedRates::SupportedRates ()
 
   36 SupportedRates::AddSupportedRate (uint32_t bs)
 
   38   NS_ASSERT (m_nRates < MAX_SUPPORTED_RATES);
 
   39   if (IsSupportedRate (bs))
 
   43   m_rates[m_nRates] = bs / 500000;
 
   45   NS_LOG_DEBUG (
"add rate=" << bs << 
", n rates=" << (uint32_t)m_nRates);
 
   48 SupportedRates::SetBasicRate (uint32_t bs)
 
   50   uint8_t rate = bs / 500000;
 
   51   for (uint8_t i = 0; i < m_nRates; i++)
 
   53       if ((rate | 0x80) == m_rates[i])
 
   57       if (rate == m_rates[i])
 
   59           NS_LOG_DEBUG (
"set basic rate=" << bs << 
", n rates=" << (uint32_t)m_nRates);
 
   64   AddSupportedRate (bs);
 
   68 SupportedRates::IsBasicRate (uint32_t bs)
 const 
   70   uint8_t rate = (bs / 500000) | 0x80;
 
   71   for (uint8_t i = 0; i < m_nRates; i++)
 
   73       if (rate == m_rates[i])
 
   81 SupportedRates::IsSupportedRate (uint32_t bs)
 const 
   83   uint8_t rate = bs / 500000;
 
   84   for (uint8_t i = 0; i < m_nRates; i++)
 
   86       if (rate == m_rates[i]
 
   87           || (rate | 0x80) == m_rates[i])
 
   95 SupportedRates::GetNRates (
void)
 const 
  100 SupportedRates::GetRate (uint8_t i)
 const 
  102   return (m_rates[i] & 0x7f) * 500000;
 
  108   return IE_SUPPORTED_RATES;
 
  116   return m_nRates > 8 ? 8 : m_nRates;
 
  124   start.
Write (m_rates, m_nRates > 8 ? 8 : m_nRates);
 
  132   start.
Read (m_rates, m_nRates);
 
  136 ExtendedSupportedRatesIE::ExtendedSupportedRatesIE ()
 
  140 ExtendedSupportedRatesIE::ExtendedSupportedRatesIE (SupportedRates *sr)
 
  148   return IE_EXTENDED_SUPPORTED_RATES;
 
  195 ExtendedSupportedRatesIE::GetSerializedSize ()
 const 
  223   for (uint8_t i = 0; i < rates.GetNRates (); i++)
 
  225       uint32_t rate = rates.GetRate (i);
 
  226       if (rates.IsBasicRate (rate))
 
  230       os << rate / 1000000 << 
"mbs";
 
  231       if (i < rates.GetNRates () - 1)
 
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
 
#define NS_ASSERT(condition)
 
#define NS_LOG_COMPONENT_DEFINE(name)
 
void SerializeInformationField(Buffer::Iterator start) const 
 
The Supported Rates Information ElementThis class knows how to serialise and deserialise the Supporte...
 
iterator in a Buffer instance 
 
WifiInformationElementId ElementId() const 
Own unique Element ID. 
 
uint8_t GetInformationFieldSize() const 
 
std::ostream & operator<<(std::ostream &os, const Angles &a)
 
void Read(uint8_t *buffer, uint32_t size)
 
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
 
SupportedRates * m_supportedRates
 
WifiInformationElementId ElementId() const 
Own unique Element ID. 
 
#define NS_LOG_DEBUG(msg)
 
void Write(uint8_t const *buffer, uint32_t size)
 
uint8_t WifiInformationElementId
 
uint8_t GetInformationFieldSize() const 
 
void SerializeInformationField(Buffer::Iterator start) const