src/devices/wifi/wifi-remote-station-manager.h
author Duy Nguyen <duy@soe.ucsc.edu>
Fri, 25 Sep 2009 22:25:58 -0700
changeset 5260 a9154b34d4d5
parent 5166 9d48acef10b3
child 6065 0f012e7d9128
permissions -rw-r--r--
Fixed minstrel error: unnecessary UpdateStats in DoGetRtsMode
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
1912
028e1945d5b2 fix copyright statement
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1911
diff changeset
     3
 * Copyright (c) 2005,2006,2007 INRIA
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as 
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    20
#ifndef WIFI_REMOTE_STATION_MANAGER_H
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    21
#define WIFI_REMOTE_STATION_MANAGER_H
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    23
#include <vector>
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include <utility>
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ns3/mac48-address.h"
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
    26
#include "ns3/packet.h"
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    27
#include "ns3/object.h"
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
    28
#include "ns3/traced-value.h"
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
    29
#include "wifi-mode.h"
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
namespace ns3 {
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    33
class WifiRemoteStation;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    34
class NonUnicastWifiRemoteStation;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    35
class WifiPhy;
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2530
diff changeset
    37
/**
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
    38
 * \brief hold a list of per-remote-station state.
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2530
diff changeset
    39
 *
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
    40
 * \sa ns3::WifiRemoteStation.
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2530
diff changeset
    41
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    42
class WifiRemoteStationManager : public Object
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    43
{
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    44
private:
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    45
  typedef std::vector<WifiMode> BasicModes;
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
public:
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    47
  typedef BasicModes::const_iterator BasicModesIterator;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    48
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    49
  static TypeId GetTypeId (void);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    50
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    51
  WifiRemoteStationManager ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    52
  virtual ~WifiRemoteStationManager ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    53
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    54
  virtual void SetupPhy (Ptr<WifiPhy> phy);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    55
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    56
  uint32_t GetMaxSsrc (void) const;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    57
  uint32_t GetMaxSlrc (void) const;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    58
  uint32_t GetRtsCtsThreshold (void) const;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    59
  uint32_t GetFragmentationThreshold (void) const;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    60
  void SetMaxSsrc (uint32_t maxSsrc);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    61
  void SetMaxSlrc (uint32_t maxSlrc);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    62
  void SetRtsCtsThreshold (uint32_t threshold);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    63
  void SetFragmentationThreshold (uint32_t threshold);
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
  
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    65
  // Invoked in a STA upon dis-association
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    66
  // or in an AP upon reboot
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    67
  void Reset (void);
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    68
  // Invoked in a STA upon association to store
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    69
  // the set of rates which belong to the 
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    70
  // BSSBasicRateSet of the associated AP
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    71
  // and which are supported locally.
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    72
  // Invoked in an AP to configure the BSSBasicRateSet
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    73
  void AddBasicMode (WifiMode mode);
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    74
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    75
  WifiMode GetDefaultMode (void) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    76
  uint32_t GetNBasicModes (void) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    77
  WifiMode GetBasicMode (uint32_t i) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    78
  BasicModesIterator BeginBasicModes (void) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    79
  BasicModesIterator EndBasicModes (void) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    80
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
    81
  bool IsLowLatency (void) const;
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
    82
4324
951aec5a7b9a bug 531: Adds NonUnicastMode attribute to WifiRemoteStationManager
Timo Bingmann <timo.bingmann@student.kit.edu>
parents: 3745
diff changeset
    83
  WifiMode GetNonUnicastMode (void) const;
951aec5a7b9a bug 531: Adds NonUnicastMode attribute to WifiRemoteStationManager
Timo Bingmann <timo.bingmann@student.kit.edu>
parents: 3745
diff changeset
    84
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    85
  WifiRemoteStation *Lookup (Mac48Address address);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    86
  WifiRemoteStation *LookupNonUnicast (void);
2530
05f9cec44621 avoid memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2524
diff changeset
    87
protected:
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
    88
  friend class WifiRemoteStation;
2530
05f9cec44621 avoid memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2524
diff changeset
    89
  virtual void DoDispose (void);
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    90
private:
4733
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
    91
  typedef std::vector <WifiRemoteStation *> Stations;
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    92
  virtual class WifiRemoteStation *CreateStation (void) = 0;
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
  Stations m_stations;
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    94
  WifiMode m_defaultTxMode;
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    95
  NonUnicastWifiRemoteStation *m_nonUnicast;
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
    96
  BasicModes m_basicModes;
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
    97
  bool m_isLowLatency;
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    98
  uint32_t m_maxSsrc;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
    99
  uint32_t m_maxSlrc;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   100
  uint32_t m_rtsCtsThreshold;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   101
  uint32_t m_fragmentationThreshold;
4324
951aec5a7b9a bug 531: Adds NonUnicastMode attribute to WifiRemoteStationManager
Timo Bingmann <timo.bingmann@student.kit.edu>
parents: 3745
diff changeset
   102
  WifiMode m_nonUnicastMode;
4733
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   103
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   104
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   105
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   106
   * Public method used to fire a MacTxRtsFailed trace.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   107
   * Implemented for encapsulation purposes.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   108
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   109
  void NotifyTxRtsFailed (Mac48Address address);  
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   110
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   111
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   112
   * Public method used to fire a MacTxDataFailed trace.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   113
   * Implemented for encapsulation purposes. 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   114
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   115
  void NotifyTxDataFailed (Mac48Address address);  
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   116
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   117
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   118
   * Public method used to fire a MacTxFinalRtsFailed trace.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   119
   * Implemented for encapsulation purposes.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   120
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   121
  void NotifyTxFinalRtsFailed (Mac48Address address);  
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   122
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   123
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   124
   * Public method used to fire a MacTxFinalDataFailed trace.
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   125
   * Implemented for encapsulation purposes. 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   126
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   127
  void NotifyTxFinalDataFailed (Mac48Address address);    
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   128
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   129
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   130
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   131
   * The trace source fired when the transmission of a RTS has failed
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   132
   *
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   133
   * \see class CallBackTraceSource
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   134
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   135
  TracedCallback<Mac48Address> m_macTxRtsFailed;
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   136
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   137
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   138
   * The trace source fired when the transmission of a data packet has failed 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   139
   *
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   140
   * \see class CallBackTraceSource
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   141
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   142
  TracedCallback<Mac48Address> m_macTxDataFailed;
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   143
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   144
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   145
   * The trace source fired when the transmission of a RTS has
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   146
   * exceeded the maximum number of attempts
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   147
   *
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   148
   * \see class CallBackTraceSource
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   149
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   150
  TracedCallback<Mac48Address> m_macTxFinalRtsFailed;
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   151
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   152
  /**
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   153
   * The trace source fired when the transmission of a data packet has
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   154
   * exceeded the maximum number of attempts
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   155
   *
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   156
   * \see class CallBackTraceSource
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   157
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   158
  TracedCallback<Mac48Address> m_macTxFinalDataFailed;
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   159
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   160
};
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   161
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   162
} // namespace ns3
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   163
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   164
namespace ns3 {
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   165
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   166
/**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   167
 * \brief hold per-remote-station state.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   168
 *
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   169
 * The state in this class is used to keep track
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   170
 * of association status if we are in an infrastructure
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   171
 * network and to perform the selection of tx parameters
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   172
 * on a per-packet basis.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   173
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   174
class WifiRemoteStation {
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   175
public:
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   176
  
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   177
  static TypeId GetTypeId (void);
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   178
  
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   179
  WifiRemoteStation ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   180
  virtual ~WifiRemoteStation ();
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   181
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   182
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   183
   * Invoked in an AP upon disassociation of a
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   184
   * specific STA.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   185
   */
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
   186
  void Reset (void);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   187
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   188
   * Invoked in a STA or AP to store the set of 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   189
   * modes supported by a destination which is
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   190
   * also supported locally.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   191
   * The set of supported modes includes
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   192
   * the BSSBasicRateSet.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   193
   */
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
   194
  void AddSupportedMode (WifiMode mode);
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   195
2003
335dc094e52a support BRAND_NEW station in adhoc code. initialize the supported rates.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1982
diff changeset
   196
  bool IsBrandNew (void) const;
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   197
  bool IsAssociated (void) const;
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   198
  bool IsWaitAssocTxOk (void) const;
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   199
  void RecordWaitAssocTxOk (void);
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   200
  void RecordGotAssocTxOk (void);
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   201
  void RecordGotAssocTxFailed (void);
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   202
  void RecordDisassociated (void);
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   203
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   204
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   205
   * \param packet the packet to queue
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   206
   * \param fullPacketSize the size of the packet after its 802.11 MAC header has been added.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   207
   *
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   208
   * This method is typically invoked just before queuing a packet for transmission.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   209
   * It is a no-op unless the IsLowLatency attribute of the attached ns3::WifiRemoteStationManager
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   210
   * is set to false, in which case, the tx parameters of the packet are calculated and stored in
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   211
   * the packet as a tag. These tx parameters are later retrieved from GetDadaMode and GetRtsMode.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   212
   */
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   213
  void PrepareForQueue (Ptr<const Packet> packet, uint32_t fullPacketSize);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   214
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   215
   * \param packet the packet to send
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   216
   * \param fullPacketSize the size of the packet after its 802.11 MAC header has been added.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   217
   * \returns the transmission mode to use to send this packet
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   218
   */
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   219
  WifiMode GetDataMode (Ptr<const Packet> packet, uint32_t fullPacketSize);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   220
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   221
   * \param packet the packet to send
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   222
   * \returns the transmission mode to use to send the RTS prior to the
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   223
   *          transmission of the data packet itself.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   224
   */
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   225
  WifiMode GetRtsMode (Ptr<const Packet> packet);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   226
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   227
   * Should be invoked whenever the RtsTimeout associated to a transmission
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   228
   * attempt expires.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   229
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   230
  void ReportRtsFailed (void);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   231
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   232
   * Should be invoked whenever the AckTimeout associated to a transmission
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   233
   * attempt expires.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   234
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   235
  void ReportDataFailed (void);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   236
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   237
   * Should be invoked whenever we receive the Cts associated to an RTS 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   238
   * we just sent.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   239
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   240
  void ReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   241
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   242
   * Should be invoked whenever we receive the Ack associated to a data packet
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   243
   * we just sent.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   244
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   245
  void ReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   246
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   247
   * Should be invoked after calling ReportRtsFailed if 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   248
   * NeedRtsRetransmission returns false
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   249
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   250
  void ReportFinalRtsFailed (void);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   251
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   252
   * Should be invoked after calling ReportDataFailed if 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   253
   * NeedDataRetransmission returns false
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   254
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   255
  void ReportFinalDataFailed (void);
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   256
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   257
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   258
   * \param rxSnr the snr of the packet received
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   259
   * \param txMode the transmission mode used for the packet received.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   260
   *
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   261
   * Should be invoked whenever a packet is successfully received.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   262
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   263
  void ReportRxOk (double rxSnr, WifiMode txMode);
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   264
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   265
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   266
   * \param packet the packet to send
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   267
   * \returns true if we want to use an RTS/CTS handshake for this
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   268
   *          packet before sending it, false otherwise.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   269
   */
2349
b1df486516a4 allow rate control algorithms to control more per-packet parameters.
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2269
diff changeset
   270
  virtual bool NeedRts (Ptr<const Packet> packet);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   271
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   272
   * \param packet the packet to send
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   273
   * \returns true if we want to restart a failed RTS/CTS 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   274
   *          handshake, false otherwise.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   275
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   276
  virtual bool NeedRtsRetransmission (Ptr<const Packet> packet);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   277
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   278
   * \param packet the packet to send
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   279
   * \returns true if we want to resend a packet 
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   280
   *          after a failed transmission attempt, false otherwise.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   281
   */
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   282
  virtual bool NeedDataRetransmission (Ptr<const Packet> packet);
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   283
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   284
  /**
3185
c859e129a934 fix dox warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3154
diff changeset
   285
   * \param packet the packet to send
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   286
   * \returns true if this packet should be fragmented, false otherwise.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   287
   */
2349
b1df486516a4 allow rate control algorithms to control more per-packet parameters.
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2269
diff changeset
   288
  virtual bool NeedFragmentation (Ptr<const Packet> packet);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   289
  /**
3185
c859e129a934 fix dox warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3154
diff changeset
   290
   * \param packet the packet to send
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   291
   * \param fragmentNumber the fragment index of the next fragment to send (starts at zero).
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   292
   * \returns the size of the corresponding fragment.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   293
   */
2349
b1df486516a4 allow rate control algorithms to control more per-packet parameters.
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2269
diff changeset
   294
  virtual uint32_t GetFragmentSize (Ptr<const Packet> packet, uint32_t fragmentNumber);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   295
  /**
3185
c859e129a934 fix dox warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3154
diff changeset
   296
   * \param packet the packet to send
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   297
   * \param fragmentNumber the fragment index of the next fragment to send (starts at zero).
3745
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   298
   * \returns the offset within the original packet where this fragment starts.
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   299
   */
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   300
  virtual uint32_t GetFragmentOffset (Ptr<const Packet> packet, uint32_t fragmentNumber);
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   301
  /**
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   302
   * \param packet the packet to send
73e7bb607014 bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3185
diff changeset
   303
   * \param fragmentNumber the fragment index of the next fragment to send (starts at zero).
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   304
   * \returns true if this is the last fragment, false otherwise.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   305
   */
2349
b1df486516a4 allow rate control algorithms to control more per-packet parameters.
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2269
diff changeset
   306
  virtual bool IsLastFragment (Ptr<const Packet> packet, uint32_t fragmentNumber);
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   307
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   308
  /**
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   309
   * \param rtsMode the transmission mode used to send an RTS we just received
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   310
   * \returns the transmission mode to use for the CTS to complete the RTS/CTS
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   311
   *          handshake.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   312
   */
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   313
  WifiMode GetCtsMode (WifiMode rtsMode);
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   314
  /**
3185
c859e129a934 fix dox warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3154
diff changeset
   315
   * \param dataMode the transmission mode used to send an ACK we just received
3154
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   316
   * \returns the transmission mode to use for the ACK to complete the data/ACK
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   317
   *          handshake.
aa61e5f85334 doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2784
diff changeset
   318
   */
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   319
  WifiMode GetAckMode (WifiMode dataMode);
4692
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   320
  /**
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   321
   * \return exponentially weighted average SLRC, this is used by Airtime link metric of 802.11s
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   322
   */
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   323
  double GetAvgSlrc () const;
4733
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   324
  /** 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   325
   * set the address of the remote stationt represented by this instance of WifiRemoteStation
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   326
   * 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   327
   * @param address the MAC address of the remote station
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   328
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   329
  void SetAddress(Mac48Address address);
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   330
  /** 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   331
   * get the address of the remote stationt represented by this instance of WifiRemoteStation
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   332
   * 
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   333
   * @return the MAC address of the remote station
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   334
   */
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   335
  Mac48Address GetAddress();
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   336
private:
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2508
diff changeset
   337
  virtual Ptr<WifiRemoteStationManager> GetManager (void) const = 0;
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   338
  virtual WifiMode DoGetDataMode (uint32_t size) = 0;
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2003
diff changeset
   339
  virtual WifiMode DoGetRtsMode (void) = 0;
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   340
  virtual void DoReportRtsFailed (void) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   341
  virtual void DoReportDataFailed (void) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   342
  virtual void DoReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   343
  virtual void DoReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   344
  virtual void DoReportFinalRtsFailed (void) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   345
  virtual void DoReportFinalDataFailed (void) = 0;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   346
  virtual void DoReportRxOk (double rxSnr, WifiMode txMode) = 0;
4343
4772bf5bc4b3 cleanup
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4324
diff changeset
   347
protected:
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
   348
  uint32_t GetNSupportedModes (void) const;
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
   349
  WifiMode GetSupportedMode (uint32_t i) const;
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   350
private:
4343
4772bf5bc4b3 cleanup
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4324
diff changeset
   351
  typedef std::vector<WifiMode> SupportedModes;
4772bf5bc4b3 cleanup
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4324
diff changeset
   352
  uint32_t GetNFragments (Ptr<const Packet> packet);
1911
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   353
  bool IsIn (WifiMode mode) const;
e24ae66c6918 use WifiMode rather than mode indexes in MacStations API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1908
diff changeset
   354
  WifiMode GetControlAnswerMode (WifiMode reqMode);
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   355
  enum {
2003
335dc094e52a support BRAND_NEW station in adhoc code. initialize the supported rates.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1982
diff changeset
   356
    BRAND_NEW,
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   357
    DISASSOC,
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   358
    WAIT_ASSOC_TX_OK,
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   359
    GOT_ASSOC_TX_OK
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   360
  } m_state;
1930
ec22299cf6bb rework MacStations to handle correctly Supported vs Basic rate sets and add IdealMacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1913
diff changeset
   361
  SupportedModes m_modes;
2784
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   362
  TracedValue<uint32_t> m_ssrc;
49006cbbfac7 GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents: 2602
diff changeset
   363
  TracedValue<uint32_t> m_slrc;
4692
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   364
  double m_avgSlrcCoefficient;
f4cd995f1718 Review issue 88093: Minor changes in wifi module needed by 802.11s
Pavel Boyko <boyko@iitp.ru>
parents: 4343
diff changeset
   365
  double m_avgSlrc;
4733
96a3881940c4 new trace sources for WifiRemoteStationManager
Nicola Baldo <nbaldo@cttc.es>
parents: 4692
diff changeset
   366
  Mac48Address m_address;
1906
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   367
};
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   368
c0901f40bd7e move mac-station code in mac-stations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1893
diff changeset
   369
} // namespace ns3 
1893
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   370
d72388b06b22 add MacStations to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   371
#endif /* MAC_STATIONS_H */