src/devices/wifi/dcf-manager.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 19 Nov 2007 16:20:30 +0100
changeset 2145 8f3c8ef34b0a
parent 2138 0e57bc8e2f94
child 2282 6320b3a7f382
permissions -rw-r--r--
use a simple request/grant scheme for dcf accesses
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     2
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     3
#include "ns3/nstime.h"
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     4
#include "ns3/event-id.h"
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     5
#include <vector>
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     6
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     7
namespace ns3 {
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     8
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
     9
class MacParameters;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    10
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    11
class DcfState
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    12
{
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    13
public:
2100
1b8cc486edd9 initialize more state variables
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2099
diff changeset
    14
  DcfState ();
1b8cc486edd9 initialize more state variables
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2099
diff changeset
    15
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    16
  virtual ~DcfState ();
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    17
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    18
  void SetAifsn (uint32_t aifsn);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    19
  void SetCwBounds (uint32_t minCw, uint32_t maxCw);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    20
  void ResetCw (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    21
  void UpdateFailedCw (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    22
  void StartBackoffNow (uint32_t nSlots);
2138
0e57bc8e2f94 make the GetCw method public to allow DcaTxop to pick a random backoff duration
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2123
diff changeset
    23
  uint32_t GetCw (void) const;
2145
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    24
  bool IsAccessRequested (void) const;
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    25
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    26
private:
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    27
  friend class DcfManager;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    28
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    29
  uint32_t GetAifsn (void) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    30
  uint32_t GetBackoffSlots (void) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    31
  Time GetBackoffStart (void) const;
2122
ee136bc4f214 keep track of the last time a backoff was updated.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2107
diff changeset
    32
  void UpdateBackoffSlotsNow (uint32_t nSlots, Time backoffUpdateBound);
2145
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    33
  void NotifyAccessRequested (void);
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    34
  void NotifyAccessGranted (void);
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    35
  void NotifyCollision (void);
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    36
  void NotifyInternalCollision (void);
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    37
2145
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    38
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    39
  virtual void DoNotifyAccessGranted (void) = 0;
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    40
  virtual void DoNotifyInternalCollision (void) = 0;
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    41
  virtual void DoNotifyCollision (void) = 0;
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    42
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    43
  uint32_t m_aifsn;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    44
  uint32_t m_backoffSlots;
2123
af94e972806a add a small comment
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2122
diff changeset
    45
  // the backoffStart variable is used to keep track of the
af94e972806a add a small comment
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2122
diff changeset
    46
  // time at which a backoff was started or the time at which
af94e972806a add a small comment
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2122
diff changeset
    47
  // the backoff counter was last updated.
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    48
  Time m_backoffStart;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    49
  uint32_t m_cwMin;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    50
  uint32_t m_cwMax;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    51
  uint32_t m_cw;
2145
8f3c8ef34b0a use a simple request/grant scheme for dcf accesses
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2138
diff changeset
    52
  bool m_accessRequested;
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    53
};
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    54
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    55
class DcfManager
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    56
{
2096
4e282663666c add missing method implementations
mlacage@thira.inria.fr
parents: 2095
diff changeset
    57
public:
2099
de25c6d81572 initialize state variables
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2096
diff changeset
    58
  DcfManager ();
de25c6d81572 initialize state variables
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2096
diff changeset
    59
2105
e883a100109a get rid of MacParameters from DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2100
diff changeset
    60
  void SetSlotTime (Time slotTime);
e883a100109a get rid of MacParameters from DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2100
diff changeset
    61
  void SetSifs (Time sifs);
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    62
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    63
  // at the lowest mandatory rate.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    64
  // used for EIFS calculation.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    65
  void SetAckTxDuration (Time ackTxDuration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    66
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    67
  void Add (DcfState *dcf);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    68
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    69
  void RequestAccess (DcfState *state);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    70
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    71
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    72
   * \param duration expected duration of reception
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    73
   *
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    74
   * Notify the DCF that a packet reception started 
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    75
   * for the expected duration.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    76
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    77
  void NotifyRxStartNow (Time duration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    78
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    79
   * Notify the DCF that a packet reception was just
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    80
   * completed successfully.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    81
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    82
  void NotifyRxEndOkNow (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    83
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    84
   * Notify the DCF that a packet reception was just
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    85
   * completed unsuccessfully.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    86
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    87
  void NotifyRxEndErrorNow (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    88
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    89
   * \param duration expected duration of transmission
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    90
   *
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    91
   * Notify the DCF that a packet transmission was
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    92
   * just started and is expected to last for the specified
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    93
   * duration.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    94
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    95
  void NotifyTxStartNow (Time duration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    96
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    97
   * \param duration expected duration of cca busy period
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    98
   *
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
    99
   * Notify the DCF that a CCA busy period has just started.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   100
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   101
  void NotifyCcaBusyStartNow (Time duration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   102
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   103
   * \param duration the value of the received NAV.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   104
   *
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   105
   * Called at end of rx
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   106
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   107
  void NotifyNavResetNow (Time duration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   108
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   109
   * \param duration the value of the received NAV.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   110
   *
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   111
   * Called at end of rx
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   112
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   113
  void NotifyNavStartNow (Time duration);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   114
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   115
private:
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   116
  void UpdateBackoff (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   117
  Time MostRecent (Time a, Time b) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   118
  Time MostRecent (Time a, Time b, Time c) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   119
  Time MostRecent (Time a, Time b, Time c, Time d) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   120
  /**
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   121
   * Access will never be granted to the medium _before_
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   122
   * the time returned by this method.
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   123
   * 
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   124
   * \returns the absolute time at which access could start to 
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   125
   * be granted
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   126
   */
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   127
  Time GetAccessGrantStart (void) const;
2107
9adb9e6d7bc7 improve debugging output. introduce GetBackoffStartFor and GetBackoffEndFor
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2105
diff changeset
   128
  Time GetBackoffStartFor (DcfState *state);
9adb9e6d7bc7 improve debugging output. introduce GetBackoffStartFor and GetBackoffEndFor
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2105
diff changeset
   129
  Time GetBackoffEndFor (DcfState *state);
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   130
  void DoRestartAccessTimeoutIfNeeded (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   131
  void AccessTimeout (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   132
  void DoGrantAccess (void);
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   133
  bool IsBusy (void) const;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   134
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   135
  typedef std::vector<DcfState *> States;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   136
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   137
  States m_states;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   138
  Time m_lastNavStart;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   139
  Time m_lastNavDuration;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   140
  Time m_lastRxStart;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   141
  Time m_lastRxDuration;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   142
  bool m_lastRxReceivedOk;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   143
  Time m_lastRxEnd;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   144
  Time m_lastTxStart;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   145
  Time m_lastTxDuration;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   146
  Time m_lastBusyStart;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   147
  Time m_lastBusyDuration;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   148
  bool m_rxing;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   149
  bool m_sleeping;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   150
  Time m_ackTxTime;
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   151
  EventId m_accessTimeout;
2105
e883a100109a get rid of MacParameters from DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2100
diff changeset
   152
  Time m_slotTime;
e883a100109a get rid of MacParameters from DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2100
diff changeset
   153
  Time m_sifs;
2095
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   154
};
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   155
f6ec39e97e4b a new (wholy untested) Dcf implementation
mlacage@thira.inria.fr
parents:
diff changeset
   156
} // namespace ns3