src/wifi/model/supported-rates.h
author Ghada Badawy <gbadawy@gmail.com>
Tue, 13 Aug 2013 22:05:25 -0700
changeset 10139 17a71cd49da3
parent 7385 10beb0e53130
child 10483 e3a02ed14587
permissions -rw-r--r--
partial 802.11n support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7385
10beb0e53130 standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents: 7141
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2006 INRIA
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#ifndef SUPPORTED_RATES_H
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#define SUPPORTED_RATES_H
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include <stdint.h>
3365
6409d2460601 bug 245: build failure with gcc 4.3.x
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2013
diff changeset
    24
#include <ostream>
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/buffer.h"
6381
cbc1b93b298a Bug 881: Make Ssid and SupportedRates derive from WifiInformationElement
Dean Armstrong <deanarm@gmail.com>
parents: 3365
diff changeset
    26
#include "ns3/wifi-information-element.h"
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
namespace ns3 {
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    30
/**
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    31
 * This defines the maximum number of supported rates that a STA is
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 7385
diff changeset
    32
 * allowed to have. Currently this number is set for IEEE 802.11b/g and SISO IEE 802.11n
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    33
 * stations which need 2 rates each from Clauses 15 and 18, and then 8
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    34
 * from Clause 19.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    35
 */
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 7385
diff changeset
    36
#define MAX_SUPPORTED_RATES (32)
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    37
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    38
class SupportedRates;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    39
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    40
/**
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    41
 * \brief The Extended Supported Rates Information Element
7139
79dd02ed46ec doxygen wifi module grouping all wifi classes
Nicola Baldo <nbaldo@cttc.es>
parents: 6852
diff changeset
    42
 * \ingroup wifi
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    43
 *
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    44
 * This class knows how to serialise and deserialise the Extended
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    45
 * Supported Rates Element that holds (non-HT) rates beyond the 8 that
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    46
 * the original Supported Rates element can carry.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    47
 *
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    48
 * The \c SupportedRates class still records all the rates, and an
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    49
 * instance of \c ExtendedSupportedRatesIE lies within \c
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    50
 * SupportedRates.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    51
 */
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
    52
class ExtendedSupportedRatesIE : public WifiInformationElement
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
    53
{
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    54
public:
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    55
  ExtendedSupportedRatesIE ();
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    56
  ExtendedSupportedRatesIE (SupportedRates *rates);
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    57
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    58
  WifiInformationElementId ElementId () const;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    59
  uint8_t GetInformationFieldSize () const;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    60
  void SerializeInformationField (Buffer::Iterator start) const;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    61
  uint8_t DeserializeInformationField (Buffer::Iterator start,
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    62
                                       uint8_t length);
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    63
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    64
  /*
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    65
   * This information element is a bit special in that it is only
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    66
   * included if there are more than 8 rates. To support this we
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    67
   * override the Serialize and GetSerializedSize methods of
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    68
   * WifiInformationElement.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    69
   */
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    70
  Buffer::Iterator Serialize (Buffer::Iterator start) const;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    71
  uint16_t GetSerializedSize () const;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    72
private:
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    73
  /**
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    74
   * This member points to the SupportedRates object that contains the
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    75
   * actual rate details. This class is a friend of that, so we have
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    76
   * access to all the private data we need.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    77
   */
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    78
  SupportedRates *m_supportedRates;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    79
};
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    80
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    81
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    82
/**
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    83
 * \brief The Supported Rates Information Element
7139
79dd02ed46ec doxygen wifi module grouping all wifi classes
Nicola Baldo <nbaldo@cttc.es>
parents: 6852
diff changeset
    84
 * \ingroup wifi
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    85
 *
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    86
 * This class knows how to serialise and deserialise the Supported
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    87
 * Rates Element that holds the first 8 (non-HT) supported rates.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    88
 *
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    89
 * The \c ExtendedSupportedRatesIE class (of which an instance exists
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    90
 * in objects of this class) deals with rates beyond the first 8.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
    91
 */
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
    92
class SupportedRates : public WifiInformationElement
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
    93
{
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    94
public:
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    95
  SupportedRates ();
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    96
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    97
  void AddSupportedRate (uint32_t bs);
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    98
  void SetBasicRate (uint32_t bs);
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    99
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
  bool IsSupportedRate (uint32_t bs) const;
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   101
  bool IsBasicRate (uint32_t bs) const;
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   102
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   103
  uint8_t GetNRates (void) const;
2013
4a5335c67eac add printing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1938
diff changeset
   104
  uint32_t GetRate (uint8_t i) const;
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   105
6381
cbc1b93b298a Bug 881: Make Ssid and SupportedRates derive from WifiInformationElement
Dean Armstrong <deanarm@gmail.com>
parents: 3365
diff changeset
   106
  WifiInformationElementId ElementId () const;
6382
9e5768e48981 Bug 881: WifiInformationElement method renaming
Dean Armstrong <deanarm@gmail.com>
parents: 6381
diff changeset
   107
  uint8_t GetInformationFieldSize () const;
9e5768e48981 Bug 881: WifiInformationElement method renaming
Dean Armstrong <deanarm@gmail.com>
parents: 6381
diff changeset
   108
  void SerializeInformationField (Buffer::Iterator start) const;
9e5768e48981 Bug 881: WifiInformationElement method renaming
Dean Armstrong <deanarm@gmail.com>
parents: 6381
diff changeset
   109
  uint8_t DeserializeInformationField (Buffer::Iterator start,
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   110
                                       uint8_t length);
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   111
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   112
  /*
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   113
   * We support the Extended Supported Rates Information Element
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   114
   * through the ExtendedSupportedRatesIE object which is declared
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   115
   * above. We allow this class to be a friend so that it can access
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   116
   * our private data detailing the rates, and create an instance as
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   117
   * extended.
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   118
   */
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   119
  friend class ExtendedSupportedRatesIE;
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   120
  ExtendedSupportedRatesIE extended;
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   121
private:
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   122
  uint8_t m_nRates;
6596
6c562767d7b5 Bug 852: Implement IEEE 802.11 Extended Supported Rates information element
Dean Armstrong <deanarm@gmail.com>
parents: 6382
diff changeset
   123
  uint8_t m_rates[MAX_SUPPORTED_RATES];
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
};
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   125
2013
4a5335c67eac add printing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1938
diff changeset
   126
std::ostream &operator << (std::ostream &os, const SupportedRates &rates);
4a5335c67eac add printing support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1938
diff changeset
   127
1936
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   128
} // namespace ns3
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   129
61d6404e66d8 add SupportedRates to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   130
#endif /* SUPPORTED_RATES_H */