src/wifi/model/wifi-phy.h
author Robert Ammon <ammo6818@vandals.uidaho.edu>
Tue, 08 May 2018 08:33:12 +0200
changeset 13508 22f9111d86b8
parent 13496 df02bf906b2b
child 13665 b2861f3dc03d
permissions -rw-r--r--
wifi: Fix frequency width to uint16_t
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7385
10beb0e53130 standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents: 7334
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2005,2006 INRIA
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
41589561e4a7 WifiPhy class
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
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
    18
 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
    19
 *          Sébastien Deronne <sebastien.deronne@gmail.com>
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
 */
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
1890
a2b30c6456c9 Phy80211 -> WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1889
diff changeset
    22
#ifndef WIFI_PHY_H
a2b30c6456c9 Phy80211 -> WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1889
diff changeset
    23
#define WIFI_PHY_H
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    25
#include "ns3/event-id.h"
13486
322626b344d3 wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13468
diff changeset
    26
#include "wifi-mpdu-type.h"
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
    27
#include "wifi-phy-standard.h"
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    28
#include "interference-helper.h"
13354
c2034663c810 wifi: Refactor WifiPhy and WifiPhyStateHelper to eliminate circular declaration of classes (based on Robert Ammon's patch)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13337
diff changeset
    29
#include "wifi-phy-state-helper.h"
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
namespace ns3 {
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
    33
#define HE_PHY 125
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    34
#define VHT_PHY 126
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    35
#define HT_PHY 127
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    36
13468
64f744da5cfe wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13463
diff changeset
    37
class Channel;
13486
322626b344d3 wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13468
diff changeset
    38
class NetDevice;
322626b344d3 wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13468
diff changeset
    39
class MobilityModel;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
    40
class WifiPhyStateHelper;
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
    41
class FrameCaptureModel;
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
    42
class WifiRadioEnergyModel;
13486
322626b344d3 wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13468
diff changeset
    43
class UniformRandomVariable;
11684
f3fd4725ae30 Move uint8_t packetType to enum mpduType
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11683
diff changeset
    44
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    45
/// SignalNoiseDbm structure
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
    46
struct SignalNoiseDbm
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    47
{
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    48
  double signal; ///< in dBm
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    49
  double noise; ///< in dBm
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    50
};
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    51
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    52
/// MpduInfo structure
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
    53
struct MpduInfo
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    54
{
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    55
  MpduType type; ///< type
13231
5c966501b84d wifi: fix wrong uint types
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13228
diff changeset
    56
  uint32_t mpduRefNumber; ///< MPDU ref number
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    57
};
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
    58
2684
68c643329c2b improve doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2659
diff changeset
    59
/**
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    60
 * \brief 802.11 PHY layer model
7139
79dd02ed46ec doxygen wifi module grouping all wifi classes
Nicola Baldo <nbaldo@cttc.es>
parents: 6852
diff changeset
    61
 * \ingroup wifi
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    62
 *
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    63
 */
2054
ba8e810bae4c derive WifiPhy from Object and manage it with a Ptr<>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1988
diff changeset
    64
class WifiPhy : public Object
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
{
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    66
public:
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    67
  /**
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    68
   * \brief Get the type ID.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    69
   * \return the object TypeId
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
    70
   */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    71
  static TypeId GetTypeId (void);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    72
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    73
  WifiPhy ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    74
  virtual ~WifiPhy ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    75
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
    76
  /**
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    77
   * \param callback the callback to invoke
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    78
   *        upon successful packet reception.
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    79
   */
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    80
  void SetReceiveOkCallback (RxOkCallback callback);
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    81
  /**
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    82
   * \param callback the callback to invoke
6273
8d70de29d514 spell check, mostly in comments.
Andrey Mazo <mazo@iitp.ru>
parents: 5820
diff changeset
    83
   *        upon erroneous packet reception.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
    84
   */
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    85
  void SetReceiveErrorCallback (RxErrorCallback callback);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
    86
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    87
  /**
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    88
   * \param listener the new listener
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    89
   *
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    90
   * Add the input listener to the list of objects to be notified of
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    91
   * PHY-level events.
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    92
   */
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    93
  void RegisterListener (WifiPhyListener *listener);
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    94
  /**
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    95
   * \param listener the listener to be unregistered
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    96
   *
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    97
   * Remove the input listener from the list of objects to be notified of
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    98
   * PHY-level events.
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
    99
   */
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   100
  void UnregisterListener (WifiPhyListener *listener);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   101
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   102
  /**
13312
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   103
   * \param callback the callback to invoke when PHY capabilities have changed.
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   104
   */
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   105
  void SetCapabilitiesChangedCallback (Callback<void> callback);
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   106
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   107
  /**
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   108
   * Starting receiving the plcp of a packet (i.e. the first bit of the preamble has arrived).
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   109
   *
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   110
   * \param packet the arriving packet
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   111
   * \param rxPowerW the receive power in W
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   112
   * \param rxDuration the duration needed for the reception of the packet
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   113
   */
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   114
  void StartReceivePreambleAndHeader (Ptr<Packet> packet,
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   115
                                      double rxPowerW,
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   116
                                      Time rxDuration);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   117
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   118
  /**
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   119
   * Starting receiving the payload of a packet (i.e. the first bit of the packet has arrived).
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   120
   *
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   121
   * \param packet the arriving packet
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   122
   * \param txVector the TXVECTOR of the arriving packet
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   123
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   124
   * \param event the corresponding event of the first time the packet arrives
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   125
   */
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   126
  void StartReceivePacket (Ptr<Packet> packet,
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   127
                           WifiTxVector txVector,
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   128
                           MpduType mpdutype,
13468
64f744da5cfe wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13463
diff changeset
   129
                           Ptr<Event> event);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   130
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   131
  /**
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   132
   * The last bit of the packet has arrived.
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   133
   *
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   134
   * \param packet the packet that the last bit has arrived
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   135
   * \param preamble the preamble of the arriving packet
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   136
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   137
   * \param event the corresponding event of the first time the packet arrives
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   138
   */
13468
64f744da5cfe wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13463
diff changeset
   139
  void EndReceive (Ptr<Packet> packet, WifiPreamble preamble, MpduType mpdutype, Ptr<Event> event);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   140
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   141
  /**
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   142
   * \param packet the packet to send
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
   143
   * \param txVector the TXVECTOR that has tx parameters such as mode, the transmission mode to use to send
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   144
   *        this packet, and txPowerLevel, a power level to use to send this packet. The real transmission
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   145
   *        power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   146
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
11773
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   147
   */
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   148
  void SendPacket (Ptr<const Packet> packet, WifiTxVector txVector, MpduType mpdutype = NORMAL_MPDU);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   149
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   150
  /**
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   151
   * \param packet the packet to send
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   152
   * \param txVector the TXVECTOR that has tx parameters such as mode, the transmission mode to use to send
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   153
   *        this packet, and txPowerLevel, a power level to use to send this packet. The real transmission
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   154
   *        power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   155
   * \param txDuration duration of the transmission.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   156
   */
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
   157
  virtual void StartTx (Ptr<Packet> packet, WifiTxVector txVector, Time txDuration) = 0;
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   158
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   159
  /**
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   160
   * Put in sleep mode.
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   161
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   162
  void SetSleepMode (void);
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   163
  /**
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   164
   * Resume from sleep mode.
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   165
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   166
  void ResumeFromSleep (void);
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   167
  /**
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   168
   * Put in off mode.
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   169
   */
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   170
  void SetOffMode (void);
13337
d07f64b9ea5e wifi: Start wifi devices when energy is recharged
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13312
diff changeset
   171
  /**
d07f64b9ea5e wifi: Start wifi devices when energy is recharged
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13312
diff changeset
   172
   * Resume from off mode.
d07f64b9ea5e wifi: Start wifi devices when energy is recharged
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13312
diff changeset
   173
   */
d07f64b9ea5e wifi: Start wifi devices when energy is recharged
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13312
diff changeset
   174
  void ResumeFromOff (void);
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   175
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   176
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   177
   * \return true of the current state of the PHY layer is WifiPhy::IDLE, false otherwise.
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
   178
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   179
  bool IsStateIdle (void) const;
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
   180
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   181
   * \return true of the current state of the PHY layer is WifiPhy::CCA_BUSY, false otherwise.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   182
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   183
  bool IsStateCcaBusy (void) const;
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   184
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   185
   * \return true of the current state of the PHY layer is WifiPhy::RX, false otherwise.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   186
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   187
  bool IsStateRx (void) const;
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   188
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   189
   * \return true of the current state of the PHY layer is WifiPhy::TX, false otherwise.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   190
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   191
  bool IsStateTx (void) const;
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   192
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   193
   * \return true of the current state of the PHY layer is WifiPhy::SWITCHING, false otherwise.
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
   194
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   195
  bool IsStateSwitching (void) const;
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
   196
  /**
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   197
   * \return true if the current state of the PHY layer is WifiPhy::SLEEP, false otherwise.
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   198
   */
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   199
  bool IsStateSleep (void) const;
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   200
  /**
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   201
   * \return true if the current state of the PHY layer is WifiPhy::OFF, false otherwise.
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   202
   */
13312
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
   203
  bool IsStateOff (void) const;
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
   204
10883
d919e7194e23 add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents: 10607
diff changeset
   205
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   206
   * \return the predicted delay until this PHY can become WifiPhy::IDLE.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   207
   *
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   208
   * The PHY will never become WifiPhy::IDLE _before_ the delay returned by
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   209
   * this method but it could become really idle later.
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   210
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   211
  Time GetDelayUntilIdle (void);
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   212
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   213
  /**
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   214
   * Return the start time of the last received packet.
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   215
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   216
   * \return the start time of the last received packet
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   217
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   218
  Time GetLastRxStartTime (void) const;
2139
a2cf93c741c3 add WifiPhy::GetLastRxStart
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2083
diff changeset
   219
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   220
  /**
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   221
   * \param size the number of bytes in the packet to send
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
   222
   * \param txVector the TXVECTOR used for the transmission of this packet
11041
f353014f08e9 bug 1971: 802.11n at 2.4 GHz should include a signal extension duration
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 10883
diff changeset
   223
   * \param frequency the channel center frequency (MHz)
11773
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   224
   *
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   225
   * \return the total amount of time this PHY will stay busy for the transmission of these bytes.
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   226
   */
12500
6415324af3cf wifi: Frequency width coded on 2 bytes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12499
diff changeset
   227
  Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency);
11773
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   228
  /**
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   229
   * \param size the number of bytes in the packet to send
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   230
   * \param txVector the TXVECTOR used for the transmission of this packet
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   231
   * \param frequency the channel center frequency (MHz)
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   232
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   233
   * \param incFlag this flag is used to indicate that the static variables need to be update or not. This function is called a couple of times for the same packet so static variables should not be increased each time.
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   234
   *
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   235
   * \return the total amount of time this PHY will stay busy for the transmission of these bytes.
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   236
   */
12500
6415324af3cf wifi: Frequency width coded on 2 bytes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12499
diff changeset
   237
  Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   238
11348
ded786322135 Bug 2066 [wifi] - A-MPDU reception should check for successful preamble
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11332
diff changeset
   239
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   240
   * \param txVector the transmission parameters used for this packet
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   241
   *
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   242
   * \return the total amount of time this PHY will stay busy for the transmission of the PLCP preamble and PLCP header.
11348
ded786322135 Bug 2066 [wifi] - A-MPDU reception should check for successful preamble
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11332
diff changeset
   243
   */
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
   244
  static Time CalculatePlcpPreambleAndHeaderDuration (WifiTxVector txVector);
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   245
11118
43129ee9dc94 remove unused payload mode argument
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11086
diff changeset
   246
  /**
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
   247
   * \param txVector the transmission parameters used for this packet
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   248
   *
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   249
   * \return the training symbol duration
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   250
   */
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   251
  static Time GetPlcpTrainingSymbolDuration (WifiTxVector txVector);
11118
43129ee9dc94 remove unused payload mode argument
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11086
diff changeset
   252
  /**
11452
f7e2c3127a02 Bug 2108 [wifi] - Erroneous implementation in InterferenceHelper
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11450
diff changeset
   253
   * \return the WifiMode used for the transmission of the HT-SIG and the HT training fields
f7e2c3127a02 Bug 2108 [wifi] - Erroneous implementation in InterferenceHelper
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11450
diff changeset
   254
   *         in Mixed Format and greenfield format PLCP header
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   255
   */
12716
edbe642d2236 wifi: Remove unused payloadMode argument
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12694
diff changeset
   256
  static WifiMode GetHtPlcpHeaderMode ();
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   257
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   258
   * \return the WifiMode used for the transmission of the VHT-STF, VHT-LTF and VHT-SIG-B fields
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   259
   */
12716
edbe642d2236 wifi: Remove unused payloadMode argument
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12694
diff changeset
   260
  static WifiMode GetVhtPlcpHeaderMode ();
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   261
  /**
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   262
   * \return the WifiMode used for the transmission of the HE-STF, HE-LTF and HE-SIG-B fields
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   263
   */
12716
edbe642d2236 wifi: Remove unused payloadMode argument
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12694
diff changeset
   264
  static WifiMode GetHePlcpHeaderMode ();
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   265
  /**
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   266
   * \param preamble the type of preamble
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   267
   *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   268
   * \return the duration of the HT-SIG in Mixed Format and greenfield format PLCP header
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   269
   */
11332
8ea5c08711a3 remove unused payloadMode argument in WifiPhy::GetPlcpHtSigHeaderDuration
Ghada Badawy <gbadawy@gmail.com>
parents: 11201
diff changeset
   270
  static Time GetPlcpHtSigHeaderDuration (WifiPreamble preamble);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   271
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   272
   * \param preamble the type of preamble
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   273
   *
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   274
   * \return the duration of the SIG-A1 in PLCP header
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   275
   */
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   276
  static Time GetPlcpSigA1Duration (WifiPreamble preamble);
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   277
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   278
   * \param preamble the type of preamble
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   279
   *
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   280
   * \return the duration of the SIG-A2 in PLCP header
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   281
   */
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   282
  static Time GetPlcpSigA2Duration (WifiPreamble preamble);
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   283
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   284
   * \param preamble the type of preamble
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   285
   *
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   286
   * \return the duration of the SIG-B in PLCP header
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   287
   */
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   288
  static Time GetPlcpSigBDuration (WifiPreamble preamble);
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   289
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   290
   * \param txVector the transmission parameters used for this packet
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   291
   *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   292
   * \return the WifiMode used for the transmission of the PLCP header
7143
0146b1916bc0 wifi tx duration calculations moved from InterferenceHelper to WifiPhy
Nicola Baldo <nicola@baldo.biz>
parents: 7141
diff changeset
   293
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   294
  static WifiMode GetPlcpHeaderMode (WifiTxVector txVector);
7600
57ba46094a0d fix various doxygen errors
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   295
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   296
   * \param txVector the transmission parameters used for this packet
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   297
   *
11119
067928a573cd remove unnecessary Time to double conversions in wifi models
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11118
diff changeset
   298
   * \return the duration of the PLCP header
7143
0146b1916bc0 wifi tx duration calculations moved from InterferenceHelper to WifiPhy
Nicola Baldo <nicola@baldo.biz>
parents: 7141
diff changeset
   299
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   300
  static Time GetPlcpHeaderDuration (WifiTxVector txVector);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   301
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   302
   * \param txVector the transmission parameters used for this packet
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   303
   *
11119
067928a573cd remove unnecessary Time to double conversions in wifi models
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11118
diff changeset
   304
   * \return the duration of the PLCP preamble
7143
0146b1916bc0 wifi tx duration calculations moved from InterferenceHelper to WifiPhy
Nicola Baldo <nicola@baldo.biz>
parents: 7141
diff changeset
   305
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   306
  static Time GetPlcpPreambleDuration (WifiTxVector txVector);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   307
  /**
7600
57ba46094a0d fix various doxygen errors
Vedran Miletić <rivanvx@gmail.com>
parents: 7385
diff changeset
   308
   * \param size the number of bytes in the packet to send
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
   309
   * \param txVector the TXVECTOR used for the transmission of this packet
11041
f353014f08e9 bug 1971: 802.11n at 2.4 GHz should include a signal extension duration
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 10883
diff changeset
   310
   * \param frequency the channel center frequency (MHz)
11773
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   311
   *
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   312
   * \return the duration of the payload
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   313
   */
12500
6415324af3cf wifi: Frequency width coded on 2 bytes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12499
diff changeset
   314
  Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency);
11773
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   315
  /**
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   316
   * \param size the number of bytes in the packet to send
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   317
   * \param txVector the TXVECTOR used for the transmission of this packet
f5b20a1c6eb3 Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11732
diff changeset
   318
   * \param frequency the channel center frequency (MHz)
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
   319
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
11174
780a43e4980c add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents: 11159
diff changeset
   320
   * \param incFlag this flag is used to indicate that the static variables need to be update or not. This function is called a couple of times for the same packet so static variables should not be increased each time
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   321
   *
11119
067928a573cd remove unnecessary Time to double conversions in wifi models
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11118
diff changeset
   322
   * \return the duration of the payload
7143
0146b1916bc0 wifi tx duration calculations moved from InterferenceHelper to WifiPhy
Nicola Baldo <nicola@baldo.biz>
parents: 7141
diff changeset
   323
   */
12500
6415324af3cf wifi: Frequency width coded on 2 bytes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12499
diff changeset
   324
  Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag);
6372
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   325
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   326
  /**
6372
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   327
   * The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   328
   * (e.g., by a WifiRemoteStationManager) to determine the set of
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   329
   * transmission/reception modes that this WifiPhy(-derived class)
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   330
   * can support - a set of WifiMode objects which we call the
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   331
   * DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   332
   *
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   333
   * It is important to note that the DeviceRateSet is a superset (not
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   334
   * necessarily proper) of the OperationalRateSet (which is
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   335
   * logically, if not actually, a property of the associated
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   336
   * WifiRemoteStationManager), which itself is a superset (again, not
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   337
   * necessarily proper) of the BSSBasicRateSet.
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   338
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   339
   * \return the number of transmission modes supported by this PHY.
6372
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   340
   *
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   341
   * \sa WifiPhy::GetMode()
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   342
   */
13223
04a8320d01f6 wifi: GetNModes should return uint8_t
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13220
diff changeset
   343
  uint8_t GetNModes (void) const;
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   344
  /**
6372
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   345
   * The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   346
   * (e.g., by a WifiRemoteStationManager) to determine the set of
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   347
   * transmission/reception modes that this WifiPhy(-derived class)
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   348
   * can support - a set of WifiMode objects which we call the
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   349
   * DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   350
   *
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   351
   * It is important to note that the DeviceRateSet is a superset (not
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   352
   * necessarily proper) of the OperationalRateSet (which is
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   353
   * logically, if not actually, a property of the associated
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   354
   * WifiRemoteStationManager), which itself is a superset (again, not
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   355
   * necessarily proper) of the BSSBasicRateSet.
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   356
   *
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   357
   * \param mode index in array of supported modes
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   358
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   359
   * \return the mode whose index is specified.
6372
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   360
   *
0fafd9716f44 Bug 853: Consider mandatory rates for Wi-Fi control responses
Dean Armstrong <deanarm@gmail.com>
parents: 6360
diff changeset
   361
   * \sa WifiPhy::GetNModes()
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   362
   */
13223
04a8320d01f6 wifi: GetNModes should return uint8_t
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13220
diff changeset
   363
  WifiMode GetMode (uint8_t mode) const;
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   364
  /**
10607
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   365
   * Check if the given WifiMode is supported by the PHY.
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   366
   *
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   367
   * \param mode the wifi mode to check
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   368
   *
10607
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   369
   * \return true if the given mode is supported,
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   370
   *         false otherwise
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   371
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   372
  bool IsModeSupported (WifiMode mode) const;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   373
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   374
   * Check if the given WifiMode is supported by the PHY.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   375
   *
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   376
   * \param mcs the wifi mode to check
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   377
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   378
   * \return true if the given mode is supported,
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   379
   *         false otherwise
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
   380
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   381
  bool IsMcsSupported (WifiMode mcs) const;
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   382
10607
8e61a2de1a85 [wifi] moved IsModeSupported to WifiPhy
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10580
diff changeset
   383
  /**
11922
a88e5af8a757 wifi: (partial fix #2296) Remove hardcoded nss values
Tom Henderson <tomh@tomh.org>
parents: 11881
diff changeset
   384
   * \param txVector the transmission vector
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   385
   * \param ber the probability of bit error rate
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   386
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   387
   * \return the minimum snr which is required to achieve
11922
a88e5af8a757 wifi: (partial fix #2296) Remove hardcoded nss values
Tom Henderson <tomh@tomh.org>
parents: 11881
diff changeset
   388
   *          the requested ber for the specified transmission vector. (W/W)
2057
73723aad7527 dox for WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2056
diff changeset
   389
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   390
  double CalculateSnr (WifiTxVector txVector, double ber) const;
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   391
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   392
  /**
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   393
  * The WifiPhy::NBssMembershipSelectors() method is used
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   394
  * (e.g., by a WifiRemoteStationManager) to determine the set of
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   395
  * transmission/reception modes that this WifiPhy(-derived class)
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   396
  * can support - a set of WifiMode objects which we call the
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   397
  * BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   398
  *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   399
  * \return the memebership selector whose index is specified.
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   400
  */
13228
70fe96e8ec6a wifi: change some uint32_t to uint8_t
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13223
diff changeset
   401
  uint8_t GetNBssMembershipSelectors (void) const;
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   402
  /**
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   403
  * The WifiPhy::BssMembershipSelector() method is used
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   404
  * (e.g., by a WifiRemoteStationManager) to determine the set of
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   405
  * transmission/reception modes that this WifiPhy(-derived class)
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   406
  * can support - a set of WifiMode objects which we call the
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   407
  * BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   408
  *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   409
  * \param selector index in array of supported memberships
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   410
  *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   411
  * \return the memebership selector whose index is specified.
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   412
  */
13228
70fe96e8ec6a wifi: change some uint32_t to uint8_t
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13223
diff changeset
   413
  uint8_t GetBssMembershipSelector (uint8_t selector) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   414
  /**
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   415
   * The WifiPhy::GetNMcs() method is used
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   416
   * (e.g., by a WifiRemoteStationManager) to determine the set of
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   417
   * transmission/reception MCS indexes that this WifiPhy(-derived class)
11083
96e983e7cd5d fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11075
diff changeset
   418
   * can support - a set of MCS indexes which we call the
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   419
   * DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   420
   *
11083
96e983e7cd5d fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11075
diff changeset
   421
   * \return the MCS index whose index is specified.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   422
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   423
  uint8_t GetNMcs (void) const;
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   424
  /**
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   425
   * The WifiPhy::GetMcs() method is used
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   426
   * (e.g., by a WifiRemoteStationManager) to determine the set of
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   427
   * transmission/reception MCS indexes that this WifiPhy(-derived class)
11083
96e983e7cd5d fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11075
diff changeset
   428
   * can support - a set of MCS indexes which we call the
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   429
   * DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   430
   *
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
   431
   * \param mcs index in array of supported MCS
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   432
   *
11083
96e983e7cd5d fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11075
diff changeset
   433
   * \return the MCS index whose index is specified.
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   434
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   435
  WifiMode GetMcs (uint8_t mcs) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
   436
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   437
  /**
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   438
   * \brief Set channel number.
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   439
   *
4690
86343f7d6bfd Initial multichannel support in Yans Wifi PHY.
Pavel Boyko <boyko@iitp.ru>
parents: 4680
diff changeset
   440
   * Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1)
86343f7d6bfd Initial multichannel support in Yans Wifi PHY.
Pavel Boyko <boyko@iitp.ru>
parents: 4680
diff changeset
   441
   *
12951
51a7df2fd8a2 wifi: (fixes #2673) Update WiFi spectrum model when channel is switched at run-time
Tom Henderson <tomh@tomh.org>
parents: 12942
diff changeset
   442
   * where Starting channel frequency is standard-dependent,
10580
2a29a9bd6fd6 Update (most of) IEEE Std 802.11-2007 to IEEE Std 802.11-2012
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10483
diff changeset
   443
   * as defined in (Section 18.3.8.4.2 "Channel numbering"; IEEE Std 802.11-2012).
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   444
   * This method may fail to take action if the Phy model determines that
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   445
   * the channel number cannot be switched for some reason (e.g. sleep state)
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   446
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   447
   * \param id the channel number
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   448
   */
12951
51a7df2fd8a2 wifi: (fixes #2673) Update WiFi spectrum model when channel is switched at run-time
Tom Henderson <tomh@tomh.org>
parents: 12942
diff changeset
   449
  virtual void SetChannelNumber (uint8_t id);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
   450
  /**
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   451
   * Return current channel number.
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   452
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   453
   * \return the current channel number
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   454
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   455
  uint8_t GetChannelNumber (void) const;
11159
b744c32b69bc patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents: 11119
diff changeset
   456
  /**
b744c32b69bc patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents: 11119
diff changeset
   457
   * \return the required time for channel switch operation of this WifiPhy
b744c32b69bc patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents: 11119
diff changeset
   458
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   459
  Time GetChannelSwitchDelay (void) const;
4720
15221757964f bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4715
diff changeset
   460
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   461
  /**
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   462
   * Configure the PHY-level parameters for different Wi-Fi standard.
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   463
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   464
   * \param standard the Wi-Fi standard
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   465
   */
12951
51a7df2fd8a2 wifi: (fixes #2673) Update WiFi spectrum model when channel is switched at run-time
Tom Henderson <tomh@tomh.org>
parents: 12942
diff changeset
   466
  virtual void ConfigureStandard (WifiPhyStandard standard);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   467
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   468
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   469
   * Get the configured Wi-Fi standard
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   470
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   471
   * \return the Wi-Fi standard that has been configured
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   472
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
   473
  WifiPhyStandard GetStandard (void) const;
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   474
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   475
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   476
   * Add a channel definition to the WifiPhy.  The pair (channelNumber,
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
   477
   * WifiPhyStandard) may then be used to lookup a pair (frequency,
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   478
   * channelWidth).
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   479
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   480
   * If the channel is not already defined for the standard, the method
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   481
   * should return true; otherwise false.
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   482
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   483
   * \param channelNumber the channel number to define
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   484
   * \param standard the applicable WifiPhyStandard
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   485
   * \param frequency the frequency (MHz)
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   486
   * \param channelWidth the channel width (MHz)
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   487
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   488
   * \return true if the channel definition succeeded
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   489
   */
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
   490
  bool DefineChannelNumber (uint8_t channelNumber, WifiPhyStandard standard, uint16_t frequency, uint16_t channelWidth);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   491
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   492
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   493
   * A pair of a ChannelNumber and WifiPhyStandard
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   494
   */
12501
1613279456fe wifi: Channel number coded on 1 byte
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12500
diff changeset
   495
  typedef std::pair<uint8_t, WifiPhyStandard> ChannelNumberStandardPair;
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   496
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   497
   * A pair of a center Frequency and a ChannelWidth
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
   498
   */
13508
22f9111d86b8 wifi: Fix frequency width to uint16_t
Robert Ammon <ammo6818@vandals.uidaho.edu>
parents: 13496
diff changeset
   499
  typedef std::pair<uint16_t, uint16_t> FrequencyWidthPair;
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
   500
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   501
  /**
12571
80142e260133 wifi: code refactoring phase 1
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12502
diff changeset
   502
   * Return the Channel this WifiPhy is connected to.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   503
   *
12571
80142e260133 wifi: code refactoring phase 1
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12502
diff changeset
   504
   * \return the Channel this WifiPhy is connected to
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
   505
   */
12571
80142e260133 wifi: code refactoring phase 1
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12502
diff changeset
   506
  virtual Ptr<Channel> GetChannel (void) const = 0;
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   507
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   508
  /**
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   509
   * Return a WifiMode for DSSS at 1Mbps.
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   510
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   511
   * \return a WifiMode for DSSS at 1Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   512
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   513
  static WifiMode GetDsssRate1Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   514
  /**
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   515
   * Return a WifiMode for DSSS at 2Mbps.
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   516
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   517
   * \return a WifiMode for DSSS at 2Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   518
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   519
  static WifiMode GetDsssRate2Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   520
  /**
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   521
   * Return a WifiMode for DSSS at 5.5Mbps.
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   522
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   523
   * \return a WifiMode for DSSS at 5.5Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   524
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   525
  static WifiMode GetDsssRate5_5Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   526
  /**
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   527
   * Return a WifiMode for DSSS at 11Mbps.
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   528
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   529
   * \return a WifiMode for DSSS at 11Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   530
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   531
  static WifiMode GetDsssRate11Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   532
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   533
   * Return a WifiMode for ERP-OFDM at 6Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   534
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   535
   * \return a WifiMode for ERP-OFDM at 6Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   536
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   537
  static WifiMode GetErpOfdmRate6Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   538
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   539
   * Return a WifiMode for ERP-OFDM at 9Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   540
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   541
   * \return a WifiMode for ERP-OFDM at 9Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   542
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   543
  static WifiMode GetErpOfdmRate9Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   544
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   545
   * Return a WifiMode for ERP-OFDM at 12Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   546
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   547
   * \return a WifiMode for ERP-OFDM at 12Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   548
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   549
  static WifiMode GetErpOfdmRate12Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   550
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   551
   * Return a WifiMode for ERP-OFDM at 18Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   552
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   553
   * \return a WifiMode for ERP-OFDM at 18Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   554
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   555
  static WifiMode GetErpOfdmRate18Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   556
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   557
   * Return a WifiMode for ERP-OFDM at 24Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   558
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   559
   * \return a WifiMode for ERP-OFDM at 24Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   560
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   561
  static WifiMode GetErpOfdmRate24Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   562
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   563
   * Return a WifiMode for ERP-OFDM at 36Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   564
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   565
   * \return a WifiMode for ERP-OFDM at 36Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   566
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   567
  static WifiMode GetErpOfdmRate36Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   568
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   569
   * Return a WifiMode for ERP-OFDM at 48Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   570
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   571
   * \return a WifiMode for ERP-OFDM at 48Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   572
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   573
  static WifiMode GetErpOfdmRate48Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   574
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   575
   * Return a WifiMode for ERP-OFDM at 54Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   576
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   577
   * \return a WifiMode for ERP-OFDM at 54Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   578
   */
6597
7fbc895f7361 Bug 852: Support ERP-OFDM rates and thus '802.11g'
Dean Armstrong <deanarm@gmail.com>
parents: 6372
diff changeset
   579
  static WifiMode GetErpOfdmRate54Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   580
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   581
   * Return a WifiMode for OFDM at 6Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   582
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   583
   * \return a WifiMode for OFDM at 6Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   584
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   585
  static WifiMode GetOfdmRate6Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   586
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   587
   * Return a WifiMode for OFDM at 9Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   588
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   589
   * \return a WifiMode for OFDM at 9Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   590
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   591
  static WifiMode GetOfdmRate9Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   592
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   593
   * Return a WifiMode for OFDM at 12Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   594
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   595
   * \return a WifiMode for OFDM at 12Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   596
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   597
  static WifiMode GetOfdmRate12Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   598
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   599
   * Return a WifiMode for OFDM at 18Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   600
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   601
   * \return a WifiMode for OFDM at 18Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   602
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   603
  static WifiMode GetOfdmRate18Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   604
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   605
   * Return a WifiMode for OFDM at 24Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   606
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   607
   * \return a WifiMode for OFDM at 24Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   608
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   609
  static WifiMode GetOfdmRate24Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   610
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   611
   * Return a WifiMode for OFDM at 36Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   612
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   613
   * \return a WifiMode for OFDM at 36Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   614
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   615
  static WifiMode GetOfdmRate36Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   616
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   617
   * Return a WifiMode for OFDM at 48Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   618
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   619
   * \return a WifiMode for OFDM at 48Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   620
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   621
  static WifiMode GetOfdmRate48Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   622
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   623
   * Return a WifiMode for OFDM at 54Mbps.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   624
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   625
   * \return a WifiMode for OFDM at 54Mbps
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   626
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   627
  static WifiMode GetOfdmRate54Mbps ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   628
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   629
   * Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   630
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   631
   * \return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   632
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   633
  static WifiMode GetOfdmRate3MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   634
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   635
   * Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   636
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   637
   * \return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   638
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   639
  static WifiMode GetOfdmRate4_5MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   640
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   641
   * Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   642
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   643
   * \return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   644
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   645
  static WifiMode GetOfdmRate6MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   646
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   647
   * Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   648
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   649
   * \return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   650
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   651
  static WifiMode GetOfdmRate9MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   652
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   653
   * Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   654
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   655
   * \return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   656
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   657
  static WifiMode GetOfdmRate12MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   658
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   659
   * Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   660
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   661
   * \return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   662
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   663
  static WifiMode GetOfdmRate18MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   664
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   665
   * Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   666
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   667
   * \return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   668
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   669
  static WifiMode GetOfdmRate24MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   670
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   671
   * Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   672
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   673
   * \return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   674
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   675
  static WifiMode GetOfdmRate27MbpsBW10MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   676
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   677
   * Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   678
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   679
   * \return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   680
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   681
  static WifiMode GetOfdmRate1_5MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   682
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   683
   * Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   684
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   685
   * \return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   686
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   687
  static WifiMode GetOfdmRate2_25MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   688
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   689
   * Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   690
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   691
   * \return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   692
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   693
  static WifiMode GetOfdmRate3MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   694
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   695
   * Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   696
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   697
   * \return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   698
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   699
  static WifiMode GetOfdmRate4_5MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   700
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   701
   * Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   702
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   703
   * \return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   704
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   705
  static WifiMode GetOfdmRate6MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   706
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   707
   * Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   708
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   709
   * \return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   710
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   711
  static WifiMode GetOfdmRate9MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   712
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   713
   * Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   714
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   715
   * \return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   716
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   717
  static WifiMode GetOfdmRate12MbpsBW5MHz ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   718
  /**
11201
ecaa43fa0263 fix Doxygen typos
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11174
diff changeset
   719
   * Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   720
   *
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   721
   * \return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   722
   */
6360
d8975477ff6a Bug 871: Rework construction of Wi-Fi rates
Dean Armstrong <deanarm@gmail.com>
parents: 6273
diff changeset
   723
  static WifiMode GetOfdmRate13_5MbpsBW5MHz ();
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   724
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   725
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   726
   * Return MCS 0 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   727
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   728
   * \return MCS 0 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   729
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   730
  static WifiMode GetHtMcs0 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   731
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   732
   * Return MCS 1 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   733
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   734
   * \return MCS 1 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   735
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   736
  static WifiMode GetHtMcs1 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   737
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   738
   * Return MCS 2 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   739
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   740
   * \return MCS 2 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   741
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   742
  static WifiMode GetHtMcs2 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   743
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   744
   * Return MCS 3 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   745
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   746
   * \return MCS 3 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   747
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   748
  static WifiMode GetHtMcs3 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   749
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   750
   * Return MCS 4 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   751
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   752
   * \return MCS 4 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   753
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   754
  static WifiMode GetHtMcs4 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   755
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   756
   * Return MCS 5 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   757
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   758
   * \return MCS 5 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   759
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   760
  static WifiMode GetHtMcs5 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   761
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   762
   * Return MCS 6 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   763
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   764
   * \return MCS 6 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   765
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   766
  static WifiMode GetHtMcs6 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   767
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   768
   * Return MCS 7 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   769
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   770
   * \return MCS 7 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   771
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   772
  static WifiMode GetHtMcs7 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   773
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   774
   * Return MCS 8 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   775
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   776
   * \return MCS 8 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   777
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   778
  static WifiMode GetHtMcs8 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   779
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   780
   * Return MCS 9 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   781
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   782
   * \return MCS 9 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   783
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   784
  static WifiMode GetHtMcs9 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   785
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   786
   * Return MCS 10 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   787
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   788
   * \return MCS 10 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   789
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   790
  static WifiMode GetHtMcs10 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   791
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   792
   * Return MCS 11 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   793
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   794
   * \return MCS 11 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   795
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   796
  static WifiMode GetHtMcs11 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   797
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   798
   * Return MCS 12 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   799
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   800
   * \return MCS 12 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   801
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   802
  static WifiMode GetHtMcs12 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   803
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   804
   * Return MCS 13 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   805
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   806
   * \return MCS 13 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   807
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   808
  static WifiMode GetHtMcs13 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   809
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   810
   * Return MCS 14 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   811
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   812
   * \return MCS 14 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   813
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   814
  static WifiMode GetHtMcs14 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   815
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   816
   * Return MCS 15 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   817
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   818
   * \return MCS 15 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   819
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   820
  static WifiMode GetHtMcs15 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   821
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   822
   * Return MCS 16 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   823
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   824
   * \return MCS 16 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   825
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   826
  static WifiMode GetHtMcs16 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   827
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   828
   * Return MCS 17 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   829
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   830
   * \return MCS 17 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   831
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   832
  static WifiMode GetHtMcs17 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   833
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   834
   * Return MCS 18 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   835
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   836
   * \return MCS 18 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   837
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   838
  static WifiMode GetHtMcs18 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   839
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   840
   * Return MCS 19 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   841
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   842
   * \return MCS 19 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   843
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   844
  static WifiMode GetHtMcs19 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   845
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   846
   * Return MCS 20 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   847
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   848
   * \return MCS 20 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   849
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   850
  static WifiMode GetHtMcs20 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   851
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   852
   * Return MCS 21 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   853
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   854
   * \return MCS 21 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   855
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   856
  static WifiMode GetHtMcs21 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   857
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   858
   * Return MCS 22 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   859
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   860
   * \return MCS 22 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   861
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   862
  static WifiMode GetHtMcs22 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   863
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   864
   * Return MCS 23 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   865
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   866
   * \return MCS 23 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   867
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   868
  static WifiMode GetHtMcs23 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   869
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   870
   * Return MCS 24 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   871
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   872
   * \return MCS 24 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   873
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   874
  static WifiMode GetHtMcs24 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   875
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   876
   * Return MCS 25 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   877
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   878
   * \return MCS 25 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   879
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   880
  static WifiMode GetHtMcs25 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   881
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   882
   * Return MCS 26 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   883
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   884
   * \return MCS 26 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   885
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   886
  static WifiMode GetHtMcs26 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   887
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   888
   * Return MCS 27 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   889
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   890
   * \return MCS 27 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   891
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   892
  static WifiMode GetHtMcs27 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   893
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   894
   * Return MCS 28 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   895
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   896
   * \return MCS 28 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   897
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   898
  static WifiMode GetHtMcs28 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   899
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   900
   * Return MCS 29 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   901
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   902
   * \return MCS 29 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   903
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   904
  static WifiMode GetHtMcs29 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   905
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   906
   * Return MCS 30 from HT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   907
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   908
   * \return MCS 30 from HT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   909
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   910
  static WifiMode GetHtMcs30 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   911
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   912
   * Return MCS 31 from HT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   913
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   914
   * \return MCS 31 from HT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   915
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   916
  static WifiMode GetHtMcs31 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   917
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   918
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   919
   * Return MCS 0 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   920
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   921
   * \return MCS 0 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   922
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   923
  static WifiMode GetVhtMcs0 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   924
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   925
   * Return MCS 1 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   926
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   927
   * \return MCS 1 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   928
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   929
  static WifiMode GetVhtMcs1 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   930
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   931
   * Return MCS 2 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   932
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   933
   * \return MCS 2 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   934
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   935
  static WifiMode GetVhtMcs2 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   936
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   937
   * Return MCS 3 from VHT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   938
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   939
   * \return MCS 3 from VHT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   940
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   941
  static WifiMode GetVhtMcs3 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   942
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   943
   * Return MCS 4 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   944
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   945
   * \return MCS 4 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   946
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   947
  static WifiMode GetVhtMcs4 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   948
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   949
   * Return MCS 5 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   950
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   951
   * \return MCS 5 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   952
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   953
  static WifiMode GetVhtMcs5 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   954
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   955
   * Return MCS 6 from VHT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   956
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   957
   * \return MCS 6 from VHT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   958
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   959
  static WifiMode GetVhtMcs6 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   960
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   961
   * Return MCS 7 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   962
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   963
   * \return MCS 7 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   964
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   965
  static WifiMode GetVhtMcs7 ();
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   966
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   967
   * Return MCS 8 from VHT MCS values.
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   968
   *
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   969
   * \return MCS 8 from VHT MCS values
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
   970
   */
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   971
  static WifiMode GetVhtMcs8 ();
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   972
  /**
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   973
   * Return MCS 9 from VHT MCS values.
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   974
   *
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   975
   * \return MCS 9 from VHT MCS values
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   976
   */
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
   977
  static WifiMode GetVhtMcs9 ();
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   978
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   979
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   980
   * Return MCS 0 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   981
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   982
   * \return MCS 0 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   983
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   984
  static WifiMode GetHeMcs0 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   985
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   986
   * Return MCS 1 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   987
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   988
   * \return MCS 1 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   989
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   990
  static WifiMode GetHeMcs1 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   991
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   992
   * Return MCS 2 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   993
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   994
   * \return MCS 2 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   995
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   996
  static WifiMode GetHeMcs2 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   997
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   998
   * Return MCS 3 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
   999
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1000
   * \return MCS 3 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1001
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1002
  static WifiMode GetHeMcs3 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1003
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1004
   * Return MCS 4 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1005
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1006
   * \return MCS 4 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1007
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1008
  static WifiMode GetHeMcs4 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1009
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1010
   * Return MCS 5 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1011
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1012
   * \return MCS 5 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1013
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1014
  static WifiMode GetHeMcs5 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1015
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1016
   * Return MCS 6 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1017
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1018
   * \return MCS 6 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1019
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1020
  static WifiMode GetHeMcs6 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1021
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1022
   * Return MCS 7 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1023
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1024
   * \return MCS 7 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1025
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1026
  static WifiMode GetHeMcs7 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1027
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1028
   * Return MCS 8 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1029
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1030
   * \return MCS 8 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1031
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1032
  static WifiMode GetHeMcs8 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1033
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1034
   * Return MCS 9 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1035
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1036
   * \return MCS 9 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1037
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1038
  static WifiMode GetHeMcs9 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1039
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1040
   * Return MCS 10 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1041
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1042
   * \return MCS 10 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1043
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1044
  static WifiMode GetHeMcs10 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1045
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1046
   * Return MCS 11 from HE MCS values.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1047
   *
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1048
   * \return MCS 11 from HE MCS values
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1049
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1050
  static WifiMode GetHeMcs11 ();
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1051
11999
50fa1325ca2b wifi: (fixes #2320) Add method to check whether a WifiTxVector contains a valid combination of WifiMode, number of spatial streams and channel width
Matías Richart <matis18@gmail.com>
parents: 11945
diff changeset
  1052
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1053
   * Public method used to fire a PhyTxBegin trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1054
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1055
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1056
   * \param packet the packet being transmitted
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1057
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1058
  void NotifyTxBegin (Ptr<const Packet> packet);
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1059
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1060
   * Public method used to fire a PhyTxEnd trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1061
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1062
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1063
   * \param packet the packet that was transmitted
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1064
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1065
  void NotifyTxEnd (Ptr<const Packet> packet);
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1066
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1067
   * Public method used to fire a PhyTxDrop trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1068
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1069
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1070
   * \param packet the packet that was failed to transmitted
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1071
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1072
  void NotifyTxDrop (Ptr<const Packet> packet);
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1073
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1074
   * Public method used to fire a PhyRxBegin trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1075
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1076
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1077
   * \param packet the packet being received
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1078
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1079
  void NotifyRxBegin (Ptr<const Packet> packet);
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1080
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1081
   * Public method used to fire a PhyRxEnd trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1082
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1083
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1084
   * \param packet the packet received
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1085
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1086
  void NotifyRxEnd (Ptr<const Packet> packet);
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1087
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1088
   * Public method used to fire a PhyRxDrop trace.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1089
   * Implemented for encapsulation purposes.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1090
   *
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1091
   * \param packet the packet that was not successfully received
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1092
   */
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1093
  void NotifyRxDrop (Ptr<const Packet> packet);
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1094
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1095
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1096
   * Public method used to fire a MonitorSniffer trace for a wifi packet being received.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1097
   * Implemented for encapsulation purposes.
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1098
   *
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1099
   * \param packet the packet being received
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1100
   * \param channelFreqMhz the frequency in MHz at which the packet is
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1101
   *        received. Note that in real devices this is normally the
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1102
   *        frequency to which  the receiver is tuned, and this can be
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1103
   *        different than the frequency at which the packet was originally
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1104
   *        transmitted. This is because it is possible to have the receiver
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1105
   *        tuned on a given channel and still to be able to receive packets
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1106
   *        on a nearby channel.
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
  1107
   * \param txVector the TXVECTOR that holds rx parameters
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1108
   * \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1109
   *        and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
13078
db3315a68299 wifi: Update documentation for previous two changesets
Tom Henderson <tomh@tomh.org>
parents: 12951
diff changeset
  1110
   * \param signalNoise signal power and noise power in dBm (noise power includes the noise figure)
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1111
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1112
  void NotifyMonitorSniffRx (Ptr<const Packet> packet,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1113
                             uint16_t channelFreqMhz,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1114
                             WifiTxVector txVector,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1115
                             MpduInfo aMpdu,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1116
                             SignalNoiseDbm signalNoise);
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1117
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1118
  /**
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1119
   * TracedCallback signature for monitor mode receive events.
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1120
   *
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1121
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1122
   * \param packet the packet being received
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1123
   * \param channelFreqMhz the frequency in MHz at which the packet is
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1124
   *        received. Note that in real devices this is normally the
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1125
   *        frequency to which  the receiver is tuned, and this can be
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1126
   *        different than the frequency at which the packet was originally
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1127
   *        transmitted. This is because it is possible to have the receiver
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1128
   *        tuned on a given channel and still to be able to receive packets
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1129
   *        on a nearby channel.
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
  1130
   * \param txVector the TXVECTOR that holds rx parameters
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1131
   * \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1132
   *        and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
11492
2e3b8610f78b rename snrDb to signalNoiseDbm
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11481
diff changeset
  1133
   * \param signalNoise signal power and noise power in dBm
11606
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1134
   * \todo WifiTxVector should be passed by const reference because
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1135
   * of its size.
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1136
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1137
  typedef void (* MonitorSnifferRxCallback)(Ptr<const Packet> packet,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1138
                                            uint16_t channelFreqMhz,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1139
                                            WifiTxVector txVector,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1140
                                            MpduInfo aMpdu,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1141
                                            SignalNoiseDbm signalNoise);
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1142
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1143
  /**
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1144
   * Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted.
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1145
   * Implemented for encapsulation purposes.
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1146
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1147
   * \param packet the packet being transmitted
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1148
   * \param channelFreqMhz the frequency in MHz at which the packet is
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1149
   *        transmitted.
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
  1150
   * \param txVector the TXVECTOR that holds tx parameters
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1151
   * \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1152
   *        and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1153
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1154
  void NotifyMonitorSniffTx (Ptr<const Packet> packet,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1155
                             uint16_t channelFreqMhz,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1156
                             WifiTxVector txVector,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1157
                             MpduInfo aMpdu);
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1158
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1159
  /**
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1160
   * TracedCallback signature for monitor mode transmit events.
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1161
   *
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1162
   * \param packet the packet being transmitted
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1163
   * \param channelFreqMhz the frequency in MHz at which the packet is
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1164
   *        transmitted.
11570
1bf102a32c67 cleanup
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11492
diff changeset
  1165
   * \param txVector the TXVECTOR that holds tx parameters
11479
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1166
   * \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
a3dcf66928f3 add support for HT MCS and A-MPDU in radiotap headers
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11452
diff changeset
  1167
   *        and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
11606
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1168
   * \todo WifiTxVector should be passed by const reference because
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1169
   * of its size.
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1170
   */
12429
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1171
  typedef void (* MonitorSnifferTxCallback)(const Ptr<const Packet> packet,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1172
                                            uint16_t channelFreqMhz,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1173
                                            WifiTxVector txVector,
d12f1640acca wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12413
diff changeset
  1174
                                            MpduInfo aMpdu);
11086
65914b1ed5b3 TracedCallback function signatures, the rest.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11083
diff changeset
  1175
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1176
  /**
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1177
   * Assign a fixed random variable stream number to the random variables
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1178
   * used by this model. Return the number of streams (possibly zero) that
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1179
   * have been assigned.
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1180
   *
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1181
   * \param stream first stream index to use
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1182
   * \return the number of stream indices assigned by this model
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1183
   */
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1184
  virtual int64_t AssignStreams (int64_t stream);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1185
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1186
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1187
   * Sets the energy detection threshold (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1188
   * The energy of a received signal should be higher than
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1189
   * this threshold (dbm) to allow the PHY layer to detect the signal.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1190
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1191
   * \param threshold the energy detction threshold in dBm
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1192
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1193
  void SetEdThreshold (double threshold);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1194
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1195
   * Return the energy detection threshold (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1196
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1197
   * \return the energy detection threshold in dBm
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1198
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1199
  double GetEdThreshold (void) const;
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1200
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1201
   * Sets the CCA threshold (dBm). The energy of a received signal
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1202
   * should be higher than this threshold to allow the PHY
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1203
   * layer to declare CCA BUSY state.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1204
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1205
   * \param threshold the CCA threshold in dBm
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1206
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1207
  void SetCcaMode1Threshold (double threshold);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1208
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1209
   * Return the CCA threshold (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1210
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1211
   * \return the CCA threshold in dBm
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1212
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1213
  double GetCcaMode1Threshold (void) const;
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1214
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1215
   * Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1216
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1217
   * \param noiseFigureDb noise figure in dB
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1218
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1219
  void SetRxNoiseFigure (double noiseFigureDb);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1220
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1221
   * Sets the minimum available transmission power level (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1222
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1223
   * \param start the minimum transmission power level (dBm)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1224
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1225
  void SetTxPowerStart (double start);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1226
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1227
   * Return the minimum available transmission power level (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1228
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1229
   * \return the minimum available transmission power level (dBm)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1230
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1231
  double GetTxPowerStart (void) const;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1232
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1233
   * Sets the maximum available transmission power level (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1234
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1235
   * \param end the maximum transmission power level (dBm)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1236
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1237
  void SetTxPowerEnd (double end);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1238
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1239
   * Return the maximum available transmission power level (dBm).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1240
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1241
   * \return the maximum available transmission power level (dBm)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1242
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1243
  double GetTxPowerEnd (void) const;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1244
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1245
   * Sets the number of transmission power levels available between the
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1246
   * minimum level and the maximum level. Transmission power levels are
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1247
   * equally separated (in dBm) with the minimum and the maximum included.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1248
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1249
   * \param n the number of available levels
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1250
   */
13296
53ed08ebfab6 wifi: Fix uint_t types (based on Robert Ammon's patch)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13273
diff changeset
  1251
  void SetNTxPower (uint8_t n);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1252
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1253
   * Return the number of available transmission power levels.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1254
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1255
   * \return the number of available transmission power levels
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1256
   */
13296
53ed08ebfab6 wifi: Fix uint_t types (based on Robert Ammon's patch)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13273
diff changeset
  1257
  uint8_t GetNTxPower (void) const;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1258
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1259
   * Sets the transmission gain (dB).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1260
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1261
   * \param gain the transmission gain in dB
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1262
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1263
  void SetTxGain (double gain);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1264
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1265
   * Return the transmission gain (dB).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1266
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1267
   * \return the transmission gain in dB
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1268
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1269
  double GetTxGain (void) const;
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1270
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1271
   * Sets the reception gain (dB).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1272
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1273
   * \param gain the reception gain in dB
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1274
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1275
  void SetRxGain (double gain);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1276
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1277
   * Return the reception gain (dB).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1278
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1279
   * \return the reception gain in dB
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1280
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1281
  double GetRxGain (void) const;
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1282
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1283
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1284
   * Sets the device this PHY is associated with.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1285
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1286
   * \param device the device this PHY is associated with
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1287
   */
12940
9b6857031ad4 wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12855
diff changeset
  1288
  void SetDevice (const Ptr<NetDevice> device);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1289
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1290
   * Return the device this PHY is associated with
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1291
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1292
   * \return the device this PHY is associated with
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1293
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1294
  Ptr<NetDevice> GetDevice (void) const;
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1295
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1296
   * \brief assign a mobility model to this device
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1297
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1298
   * This method allows a user to specify a mobility model that should be
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1299
   * associated with this physical layer.  Calling this method is optional
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1300
   * and only necessary if the user wants to override the mobility model
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1301
   * that is aggregated to the node.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1302
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1303
   * \param mobility the mobility model this PHY is associated with
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1304
   */
12940
9b6857031ad4 wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12855
diff changeset
  1305
  void SetMobility (const Ptr<MobilityModel> mobility);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1306
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1307
   * Return the mobility model this PHY is associated with.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1308
   * This method will return either the mobility model that has been
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1309
   * explicitly set by a call to YansWifiPhy::SetMobility(), or else
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1310
   * will return the mobility model (if any) that has been aggregated
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1311
   * to the node.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1312
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1313
   * \return the mobility model this PHY is associated with
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1314
   */
12436
5661e19df213 wifi: Add missing const
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12431
diff changeset
  1315
  Ptr<MobilityModel> GetMobility (void) const;
8981
7e1c95c4d1a7 Replace src/wifi usage of RandomVariable with RandomVariableStream
Mitch Watrous
parents: 8867
diff changeset
  1316
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1317
  /**
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1318
   * \param freq the operating center frequency (MHz) on this node.
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1319
   */
12951
51a7df2fd8a2 wifi: (fixes #2673) Update WiFi spectrum model when channel is switched at run-time
Tom Henderson <tomh@tomh.org>
parents: 12942
diff changeset
  1320
  virtual void SetFrequency (uint16_t freq);
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1321
  /**
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1322
   * \return the operating center frequency (MHz)
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1323
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1324
  uint16_t GetFrequency (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1325
  /**
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1326
   * \param antennas the number of antennas on this node.
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1327
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1328
  void SetNumberOfAntennas (uint8_t antennas);
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1329
  /**
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1330
   * \return the number of antennas on this device
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1331
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1332
  uint8_t GetNumberOfAntennas (void) const;
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1333
  /**
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1334
   * \param streams the maximum number of supported TX spatial streams.
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1335
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1336
  void SetMaxSupportedTxSpatialStreams (uint8_t streams);
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1337
  /**
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1338
   * \return the maximum number of supported TX spatial streams
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1339
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1340
  uint8_t GetMaxSupportedTxSpatialStreams (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1341
  /**
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1342
   * \param streams the maximum number of supported RX spatial streams.
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1343
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1344
  void SetMaxSupportedRxSpatialStreams (uint8_t streams);
12413
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1345
  /**
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1346
   * \return the maximum number of supported RX spatial streams
f379a30efa16 wifi: (fixes #2533) Improve 802.11n MIMO PHY abstraction
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12381
diff changeset
  1347
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1348
  uint8_t GetMaxSupportedRxSpatialStreams (void) const;
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1349
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1350
   * Enable or disable support for HT/VHT short guard interval.
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1351
   *
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1352
   * \param shortGuardInterval Enable or disable support for short guard interval
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1353
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1354
  void SetShortGuardInterval (bool shortGuardInterval);
11442
a0bc7041194d cleanup wifi-phy
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11424
diff changeset
  1355
  /**
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1356
   * Return whether short guard interval is supported.
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1357
   *
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1358
   * \return true if short guard interval is supported, false otherwise
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1359
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1360
  bool GetShortGuardInterval (void) const;
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1361
  /**
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1362
   * \param guardInterval the supported HE guard interval
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1363
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1364
  void SetGuardInterval (Time guardInterval);
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1365
  /**
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1366
   * \return the supported HE guard interval
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1367
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1368
  Time GetGuardInterval (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1369
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1370
   * Enable or disable LDPC.
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1371
   * \param ldpc Enable or disable LDPC
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1372
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1373
  void SetLdpc (bool ldpc);
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1374
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1375
   * Return if LDPC is supported.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1376
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1377
   * \return true if LDPC is supported, false otherwise
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1378
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1379
  bool GetLdpc (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1380
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1381
   * Enable or disable STBC.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1382
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1383
   * \param stbc Enable or disable STBC
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1384
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1385
  void SetStbc (bool stbc);
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1386
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1387
   * Return whether STBC is supported.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1388
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1389
   * \return true if STBC is supported, false otherwise
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1390
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1391
  bool GetStbc (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1392
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1393
   * Enable or disable Greenfield support.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1394
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1395
   * \param greenfield Enable or disable Greenfield
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1396
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1397
  void SetGreenfield (bool greenfield);
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1398
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1399
   * Return whether Greenfield is supported.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1400
   *
10424
9d29c9a5ddcb doxygen warnings for wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10139
diff changeset
  1401
   * \return true if Greenfield is supported, false otherwise
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1402
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1403
  bool GetGreenfield (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1404
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1405
   * Enable or disable short PLCP preamble.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1406
   *
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11773
diff changeset
  1407
   * \param preamble sets whether short PLCP preamble is supported or not
11679
2370b31068b5 Bug 2003 [wifi] - Missing DSSS short PLCP preamble
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11628
diff changeset
  1408
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1409
  void SetShortPlcpPreambleSupported (bool preamble);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1410
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1411
   * Return whether short PLCP preamble is supported.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1412
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1413
   * \returns if short PLCP preamble is supported or not
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1414
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1415
  bool GetShortPlcpPreambleSupported (void) const;
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1416
11679
2370b31068b5 Bug 2003 [wifi] - Missing DSSS short PLCP preamble
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11628
diff changeset
  1417
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1418
   * Sets the error rate model.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1419
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1420
   * \param rate the error rate model
11679
2370b31068b5 Bug 2003 [wifi] - Missing DSSS short PLCP preamble
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11628
diff changeset
  1421
   */
12940
9b6857031ad4 wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12855
diff changeset
  1422
  void SetErrorRateModel (const Ptr<ErrorRateModel> rate);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1423
  /**
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1424
   * Sets the frame capture model.
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1425
   *
13190
f102a302c598 wifi: Fix typo
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13078
diff changeset
  1426
   * \param frameCaptureModel the frame capture model
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1427
   */
13190
f102a302c598 wifi: Fix typo
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13078
diff changeset
  1428
  void SetFrameCaptureModel (const Ptr<FrameCaptureModel> frameCaptureModel);
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1429
  /**
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1430
   * Sets the wifi radio energy model.
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1431
   *
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1432
   * \param wifiRadioEnergyModel the wifi radio energy model
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1433
   */
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1434
  void SetWifiRadioEnergyModel (const Ptr<WifiRadioEnergyModel> wifiRadioEnergyModel);
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1435
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1436
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
  1437
   * \return the channel width
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1438
   */
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1439
  uint16_t GetChannelWidth (void) const;
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1440
  /**
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11606
diff changeset
  1441
   * \param channelwidth channel width
10139
17a71cd49da3 partial 802.11n support
Ghada Badawy <gbadawy@gmail.com>
parents: 8981
diff changeset
  1442
   */
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1443
  virtual void SetChannelWidth (uint16_t channelwidth);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1444
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1445
   * \param channelwidth channel width (in MHz) to support
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1446
   */
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1447
  void AddSupportedChannelWidth (uint16_t channelwidth);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1448
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1449
   * \return a vector containing the supported channel widths, values in MHz
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1450
   */
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1451
  std::vector<uint16_t> GetSupportedChannelWidthSet (void) const;
12430
b257d1c76c3b wifi: (fixes #2552) Remove remaining code duplication between Yans and Spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12429
diff changeset
  1452
12694
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1453
  /**
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1454
   * Get the power of the given power level in dBm.
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1455
   * In SpectrumWifiPhy implementation, the power levels are equally spaced (in dBm).
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1456
   *
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1457
   * \param power the power level
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1458
   *
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1459
   * \return the transmission power in dBm at the given power level
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1460
   */
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1461
  double GetPowerDbm (uint8_t power) const;
5209b094838e wifi: add RRPAA wifi rate control (patch from Matias Richart)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12691
diff changeset
  1462
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1463
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1464
protected:
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1465
  // Inherited
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1466
  virtual void DoInitialize (void);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1467
  virtual void DoDispose (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1468
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1469
  /**
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1470
   * The default implementation does nothing and returns true.  This method
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1471
   * is typically called internally by SetChannelNumber ().
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1472
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1473
   * \brief Perform any actions necessary when user changes channel number
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1474
   * \param id channel number to try to switch to
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1475
   * \return true if WifiPhy can actually change the number; false if not
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1476
   * \see SetChannelNumber
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1477
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1478
  bool DoChannelSwitch (uint8_t id);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1479
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1480
   * The default implementation does nothing and returns true.  This method
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1481
   * is typically called internally by SetFrequency ().
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1482
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1483
   * \brief Perform any actions necessary when user changes frequency
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1484
   * \param frequency frequency to try to switch to
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1485
   * \return true if WifiPhy can actually change the frequency; false if not
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1486
   * \see SetFrequency
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1487
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1488
  bool DoFrequencySwitch (uint16_t frequency);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1489
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1490
  /**
12381
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1491
   * Check if Phy state should move to CCA busy state based on current
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1492
   * state of interference tracker.  In this model, CCA becomes busy when
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1493
   * the aggregation of all signals as tracked by the InterferenceHelper
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1494
   * class is higher than the CcaMode1Threshold
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1495
   */
53973ae23218 wifi: Use WifiPhyTag in YansWifiPhy in order to avoid code duplication for each new PHY parameter
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12273
diff changeset
  1496
  void SwitchMaybeToCcaBusy (void);
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1497
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1498
  InterferenceHelper m_interference;   //!< Pointer to InterferenceHelper
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1499
  Ptr<UniformRandomVariable> m_random; //!< Provides uniform random variables.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1500
  Ptr<WifiPhyStateHelper> m_state;     //!< Pointer to WifiPhyStateHelper
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1501
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1502
  uint16_t m_mpdusNum;                 //!< carries the number of expected mpdus that are part of an A-MPDU
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1503
  bool m_plcpSuccess;                  //!< Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received
13231
5c966501b84d wifi: fix wrong uint types
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13228
diff changeset
  1504
  uint32_t m_txMpduReferenceNumber;    //!< A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU
5c966501b84d wifi: fix wrong uint types
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13228
diff changeset
  1505
  uint32_t m_rxMpduReferenceNumber;    //!< A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1506
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1507
  EventId m_endRxEvent;                //!< the end reeive event
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1508
  EventId m_endPlcpRxEvent;            //!< the end PLCP receive event
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1509
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1510
private:
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1511
  /**
12273
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1512
   * \brief post-construction setting of frequency and/or channel number
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1513
   *
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1514
   * This method exists to handle the fact that two attribute values,
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1515
   * Frequency and ChannelNumber, are coupled.  The initialization of
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1516
   * these values needs to be deferred until after attribute construction
12273
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1517
   * time, to avoid static initialization order issues.  This method is
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1518
   * typically called either when ConfigureStandard () is called or when
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1519
   * DoInitialize () is called.
12273
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1520
   */
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1521
  void InitializeFrequencyChannelNumber (void);
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1522
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1523
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1524
   * supported rates for 802.11a standard.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1525
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1526
  void Configure80211a (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1527
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1528
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1529
   * supported rates for 802.11b standard.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1530
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1531
  void Configure80211b (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1532
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1533
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1534
   * supported rates for 802.11g standard.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1535
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1536
  void Configure80211g (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1537
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1538
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1539
   * supported rates for 802.11a standard with 10MHz channel spacing.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1540
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1541
  void Configure80211_10Mhz (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1542
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1543
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1544
   * supported rates for 802.11a standard with 5MHz channel spacing.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1545
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1546
  void Configure80211_5Mhz ();
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1547
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1548
   * Configure WifiPhy with appropriate channel frequency and
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1549
   * supported rates for holland.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1550
   */
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1551
  void ConfigureHolland (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1552
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1553
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1554
   * supported rates for 802.11n standard.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1555
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1556
  void Configure80211n (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1557
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1558
   * Configure WifiPhy with appropriate channel frequency and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1559
   * supported rates for 802.11ac standard.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1560
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1561
  void Configure80211ac (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1562
  /**
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1563
   * Configure WifiPhy with appropriate channel frequency and
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1564
   * supported rates for 802.11ax standard.
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1565
   */
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1566
  void Configure80211ax (void);
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1567
  /**
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1568
   * Configure the device Mcs set with the appropriate HtMcs modes for
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1569
   * the number of available transmit spatial streams
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1570
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1571
  void ConfigureHtDeviceMcsSet (void);
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1572
  /**
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1573
   * Configure the PHY-level parameters for different Wi-Fi standard.
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1574
   * This method is called when defaults for each standard must be
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1575
   * selected.
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1576
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1577
   * \param standard the Wi-Fi standard
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1578
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1579
  void ConfigureDefaultsForStandard (WifiPhyStandard standard);
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1580
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1581
   * Configure the PHY-level parameters for different Wi-Fi standard.
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1582
   * This method is called when the Frequency or ChannelNumber attributes
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1583
   * are set by the user.  If the Frequency or ChannelNumber are valid for
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1584
   * the standard, they are used instead.
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1585
   *
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1586
   * \param standard the Wi-Fi standard
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1587
   */
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1588
  void ConfigureChannelForStandard (WifiPhyStandard standard);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1589
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1590
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1591
   * Look for channel number matching the frequency and width
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1592
   * \param frequency The center frequency to use
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1593
   * \param width The channel width to use
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1594
   * \return the channel number if found, zero if not
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1595
   */
13508
22f9111d86b8 wifi: Fix frequency width to uint16_t
Robert Ammon <ammo6818@vandals.uidaho.edu>
parents: 13496
diff changeset
  1596
  uint8_t FindChannelNumberForFrequencyWidth (uint16_t frequency, uint16_t width) const;
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1597
  /**
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1598
   * Lookup frequency/width pair for channelNumber/standard pair
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1599
   * \param channelNumber The channel number to check
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1600
   * \param standard The WifiPhyStandard to check
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1601
   * \return the FrequencyWidthPair found
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1602
   */
12501
1613279456fe wifi: Channel number coded on 1 byte
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12500
diff changeset
  1603
  FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard (uint8_t channelNumber, WifiPhyStandard standard) const;
13312
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
  1604
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1605
  /**
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1606
   * Due to newly arrived signal, the current reception cannot be continued and has to be aborted
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1607
   *
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1608
   */
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1609
  void AbortCurrentReception (void);
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1610
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1611
  /**
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1612
   * Eventually switch to CCA busy
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1613
   */
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1614
  void MaybeCcaBusyDuration (void);
13312
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
  1615
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1616
  /**
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1617
   * Starting receiving the packet after having detected the medium is idle or after a reception switch.
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1618
   *
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1619
   * \param packet the arriving packet
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1620
   * \param txVector the TXVECTOR of the arriving packet
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1621
   * \param mpdutype the type of the MPDU as defined in WifiPhy::MpduType.
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1622
   * \param rxPowerW the receive power in W
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1623
   * \param rxDuration the duration needed for the reception of the packet
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1624
   * \param event the corresponding event of the first time the packet arrives
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1625
   */
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1626
  void StartRx (Ptr<Packet> packet,
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1627
                WifiTxVector txVector,
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1628
                MpduType mpdutype,
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1629
                double rxPowerW,
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1630
                Time rxDuration,
13468
64f744da5cfe wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13463
diff changeset
  1631
                Ptr<Event> event);
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1632
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1633
  /**
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1634
   * The trace source fired when a packet begins the transmission process on
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1635
   * the medium.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1636
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1637
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1638
   */
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1639
  TracedCallback<Ptr<const Packet> > m_phyTxBeginTrace;
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1640
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1641
  /**
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1642
   * The trace source fired when a packet ends the transmission process on
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1643
   * the medium.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1644
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1645
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1646
   */
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1647
  TracedCallback<Ptr<const Packet> > m_phyTxEndTrace;
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1648
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1649
  /**
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1650
   * The trace source fired when the phy layer drops a packet as it tries
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1651
   * to transmit it.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1652
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1653
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1654
   */
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1655
  TracedCallback<Ptr<const Packet> > m_phyTxDropTrace;
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1656
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1657
  /**
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1658
   * The trace source fired when a packet begins the reception process from
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1659
   * the medium.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1660
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1661
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1662
   */
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1663
  TracedCallback<Ptr<const Packet> > m_phyRxBeginTrace;
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1664
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1665
  /**
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1666
   * The trace source fired when a packet ends the reception process from
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1667
   * the medium.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1668
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1669
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1670
   */
4264
9d2e96c4e6e4 Piles of changes for tracing rework
Craig Dowell <craigdo@ee.washington.edu>
parents: 4263
diff changeset
  1671
  TracedCallback<Ptr<const Packet> > m_phyRxEndTrace;
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1672
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1673
  /**
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1674
   * The trace source fired when the phy layer drops a packet it has received.
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1675
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1676
   * \see class CallBackTraceSource
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1677
   */
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1678
  TracedCallback<Ptr<const Packet> > m_phyRxDropTrace;
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1679
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1680
  /**
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1681
   * A trace source that emulates a wifi device in monitor mode
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1682
   * sniffing a packet being received.
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1683
   *
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1684
   * As a reference with the real world, firing this trace
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1685
   * corresponds in the madwifi driver to calling the function
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1686
   * ieee80211_input_monitor()
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1687
   *
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1688
   * \see class CallBackTraceSource
11606
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1689
   * \todo WifiTxVector and signalNoiseDbm should be be passed as
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1690
   * const  references because of their sizes.
4263
fec2f830d015 trace consistency changes
Craig Dowell <craigdo@ee.washington.edu>
parents: 4039
diff changeset
  1691
   */
12501
1613279456fe wifi: Channel number coded on 1 byte
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12500
diff changeset
  1692
  TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbm> m_phyMonitorSniffRxTrace;
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1693
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1694
  /**
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1695
   * A trace source that emulates a wifi device in monitor mode
7141
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1696
   * sniffing a packet being transmitted.
072fb225b714 run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents: 7139
diff changeset
  1697
   *
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1698
   * As a reference with the real world, firing this trace
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1699
   * corresponds in the madwifi driver to calling the function
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1700
   * ieee80211_input_monitor()
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1701
   *
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1702
   * \see class CallBackTraceSource
11606
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1703
   * \todo WifiTxVector should be passed by const reference because
98fa74311b21 [doxygen] Revise TracedCallback function signatures for const.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11570
diff changeset
  1704
   * of its size.
4492
3ebeb7bf3c15 added support for radiotap and prism headers
Nicola Baldo <nbaldo@cttc.es>
parents: 4470
diff changeset
  1705
   */
12501
1613279456fe wifi: Channel number coded on 1 byte
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12500
diff changeset
  1706
  TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo> m_phyMonitorSniffTxTrace;
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1707
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1708
  /**
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1709
   * This vector holds the set of transmission modes that this
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1710
   * WifiPhy(-derived class) can support. In conversation we call this
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1711
   * the DeviceRateSet (not a term you'll find in the standard), and
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1712
   * it is a superset of standard-defined parameters such as the
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1713
   * OperationalRateSet, and the BSSBasicRateSet (which, themselves,
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1714
   * have a superset/subset relationship).
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1715
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1716
   * Mandatory rates relevant to this WifiPhy can be found by
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1717
   * iterating over this vector looking for WifiMode objects for which
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1718
   * WifiMode::IsMandatory() is true.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1719
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1720
   * A quick note is appropriate here (well, here is as good a place
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1721
   * as any I can find)...
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1722
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1723
   * In the standard there is no text that explicitly precludes
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1724
   * production of a device that does not support some rates that are
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1725
   * mandatory (according to the standard) for PHYs that the device
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1726
   * happens to fully or partially support.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1727
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1728
   * This approach is taken by some devices which choose to only support,
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1729
   * for example, 6 and 9 Mbps ERP-OFDM rates for cost and power
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1730
   * consumption reasons (i.e., these devices don't need to be designed
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1731
   * for and waste current on the increased linearity requirement of
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1732
   * higher-order constellations when 6 and 9 Mbps more than meet their
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1733
   * data requirements). The wording of the standard allows such devices
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1734
   * to have an OperationalRateSet which includes 6 and 9 Mbps ERP-OFDM
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1735
   * rates, despite 12 and 24 Mbps being "mandatory" rates for the
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1736
   * ERP-OFDM PHY.
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1737
   *
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1738
   * Now this doesn't actually have any impact on code, yet. It is,
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1739
   * however, something that we need to keep in mind for the
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1740
   * future. Basically, the key point is that we can't be making
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1741
   * assumptions like "the Operational Rate Set will contain all the
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1742
   * mandatory rates".
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1743
   */
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1744
  WifiModeList m_deviceRateSet;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1745
  WifiModeList m_deviceMcsSet; //!< the device MCS set
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1746
13228
70fe96e8ec6a wifi: change some uint32_t to uint8_t
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13223
diff changeset
  1747
  std::vector<uint8_t> m_bssMembershipSelectorSet; //!< the BSS membership selector set
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1748
13463
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1749
  WifiPhyStandard m_standard;               //!< WifiPhyStandard
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1750
  bool m_isConstructed;                     //!< true when ready to set frequency
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1751
  uint16_t m_channelCenterFrequency;        //!< Center frequency in MHz
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1752
  uint16_t m_initialFrequency;              //!< Store frequency until initialization
12273
ab16a91c88ef wifi: Fix SpectrumWifiPhy valgrind issues
Tom Henderson <tomh@tomh.org>
parents: 12240
diff changeset
  1753
  bool m_frequencyChannelNumberInitialized; //!< Store initialization state
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1754
  uint16_t m_channelWidth;                  //!< Channel width
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1755
13463
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1756
  double   m_edThresholdW;        //!< Energy detection threshold in watts
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1757
  double   m_ccaMode1ThresholdW;  //!< Clear channel assessment (CCA) threshold in watts
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1758
  double   m_txGainDb;            //!< Transmission gain (dB)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1759
  double   m_rxGainDb;            //!< Reception gain (dB)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1760
  double   m_txPowerBaseDbm;      //!< Minimum transmission power (dBm)
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1761
  double   m_txPowerEndDbm;       //!< Maximum transmission power (dBm)
13296
53ed08ebfab6 wifi: Fix uint_t types (based on Robert Ammon's patch)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13273
diff changeset
  1762
  uint8_t  m_nTxPower;            //!< Number of available transmission power levels
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1763
13463
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1764
  bool     m_ldpc;               //!< Flag if LDPC is used
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1765
  bool     m_stbc;               //!< Flag if STBC is used
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1766
  bool     m_greenfield;         //!< Flag if GreenField format is supported
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1767
  bool     m_shortGuardInterval; //!< Flag if HT/VHT short guard interval is supported
795db66be36e wifi: Fix valgrind errors
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13448
diff changeset
  1768
  bool     m_shortPreamble;      //!< Flag if short PLCP preamble is supported
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1769
12583
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1770
  Time m_guardInterval; //!< Supported HE guard interval
40a9ab9779c6 wifi: Add initial support for 802.11ax
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12575
diff changeset
  1771
12502
8f352a31ddb3 wifi: Fix some more integer max values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12501
diff changeset
  1772
  uint8_t m_numberOfAntennas;  //!< Number of transmitters
8f352a31ddb3 wifi: Fix some more integer max values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12501
diff changeset
  1773
  uint8_t m_txSpatialStreams;  //!< Number of supported TX spatial streams
8f352a31ddb3 wifi: Fix some more integer max values
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12501
diff changeset
  1774
  uint8_t m_rxSpatialStreams;  //!< Number of supported RX spatial streams
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1775
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1776
  typedef std::map<ChannelNumberStandardPair,FrequencyWidthPair> ChannelToFrequencyWidthMap; //!< channel to frequency width map typedef
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12583
diff changeset
  1777
  static ChannelToFrequencyWidthMap m_channelToFrequencyWidth; //!< the channel to frequency width map
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1778
13496
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1779
  std::vector<uint16_t> m_supportedChannelWidthSet; //!< Supported channel width
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1780
  uint8_t               m_channelNumber;            //!< Operating channel number
df02bf906b2b wifi: Use uint16_t for channel widths to prepare 802.11ad support and silent some Visual Studio compiler warnings
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13486
diff changeset
  1781
  uint8_t               m_initialChannelNumber;     //!< Initial channel number
12215
ffa8e03e95f4 wifi: (fixes #2412) Align WifiPhy frequency and channel number
Tom Henderson <tomh@tomh.org>
parents: 12113
diff changeset
  1782
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1783
  Time m_channelSwitchDelay;     //!< Time required to switch between channel
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1784
  uint32_t m_totalAmpduSize;     //!< Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1785
  double m_totalAmpduNumSymbols; //!< Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU
12575
b7a6b3b9a5c0 wifi: Cleanup files after refactoring
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12571
diff changeset
  1786
12240
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1787
  Ptr<NetDevice>     m_device;   //!< Pointer to the device
5ef266be632e wifi: remove code duplication in yans and spectrum
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12215
diff changeset
  1788
  Ptr<MobilityModel> m_mobility; //!< Pointer to the mobility model
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1789
13468
64f744da5cfe wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13463
diff changeset
  1790
  Ptr<Event> m_currentEvent; //!< Hold the current event
12855
99b57d734bde wifi: Add frame capture support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12716
diff changeset
  1791
  Ptr<FrameCaptureModel> m_frameCaptureModel; //!< Frame capture model
13273
6437fd5d3f98 wifi: (fixes #2809) Stop wifi devices when energy is depleted
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13257
diff changeset
  1792
  Ptr<WifiRadioEnergyModel> m_wifiRadioEnergyModel; //!< Wifi radio energy model
13312
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
  1793
7865825507eb wifi: (fixes #2831) trigger reassociation if PHY capabilities changed
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13296
diff changeset
  1794
  Callback<void> m_capabilitiesChangedCallback; //!< Callback when PHY capabilities changed
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1795
};
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1796
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
  1797
/**
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
  1798
 * \param os          output stream
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
  1799
 * \param state       wifi state to stringify
10483
e3a02ed14587 [doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents: 10424
diff changeset
  1800
 * \return output stream
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
  1801
 */
13354
c2034663c810 wifi: Refactor WifiPhy and WifiPhyStateHelper to eliminate circular declaration of classes (based on Robert Ammon's patch)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 13337
diff changeset
  1802
std::ostream& operator<< (std::ostream& os, WifiPhyState state);
5820
1c02054740eb Renaming WifiPhy state SYNC to RX to avoid confusion with "synchronizing".
Timo Bingmann <tbns@idlebox.net>
parents: 5189
diff changeset
  1803
11450
9f4ae69f12b7 cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11442
diff changeset
  1804
} //namespace ns3
1889
41589561e4a7 WifiPhy class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1805
1890
a2b30c6456c9 Phy80211 -> WifiPhy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1889
diff changeset
  1806
#endif /* WIFI_PHY_H */