src/wave/model/wave-mac-low.cc
author Sébastien Deronne <sebastien.deronne@gmail.com>
Thu, 03 Sep 2015 22:16:49 +0200
changeset 11628 243b71de25a0
parent 11330 995dac2d45cd
child 11639 b3b5505b8dc4
permissions -rw-r--r--
add support for IEEE 802.11ac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     2
/*
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     3
 * Copyright (c) 2008 INRIA
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     4
 * Copyright (c) 2013 Dalian University of Technology
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     5
 *
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License version 2 as
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     8
 * published by the Free Software Foundation;
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
     9
 *
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    13
 * GNU General Public License for more details.
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    14
 *
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    18
 *
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    19
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    20
 *         Junling Bu <linlinjavaer@gmail.com>
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    21
 */
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    22
#include "ns3/log.h"
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    23
#include "wave-mac-low.h"
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    24
#include "higher-tx-tag.h"
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    25
10968
2d29fee2b7b8 [Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10459
diff changeset
    26
namespace ns3 {
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    27
10968
2d29fee2b7b8 [Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10459
diff changeset
    28
NS_LOG_COMPONENT_DEFINE ("WaveMacLow");
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    29
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    30
NS_OBJECT_ENSURE_REGISTERED (WaveMacLow);
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    31
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    32
TypeId
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    33
WaveMacLow::GetTypeId (void)
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    34
{
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    35
  static TypeId tid = TypeId ("ns3::WaveMacLow")
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    36
    .SetParent<MacLow> ()
11330
995dac2d45cd SetGroupName for wave module
Tom Henderson <tomh@tomh.org>
parents: 11161
diff changeset
    37
    .SetGroupName ("Wave")
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    38
    .AddConstructor<WaveMacLow> ()
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    39
  ;
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    40
  return tid;
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    41
}
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    42
WaveMacLow::WaveMacLow ()
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    43
{
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    44
  NS_LOG_FUNCTION (this);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    45
}
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    46
WaveMacLow::~WaveMacLow ()
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    47
{
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    48
  NS_LOG_FUNCTION (this);
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    49
}
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    50
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    51
void
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    52
WaveMacLow::SetWaveNetDevice (Ptr<WaveNetDevice> device)
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    53
{
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    54
  m_scheduler  =  device->GetChannelScheduler ();
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    55
  m_coordinator =  device->GetChannelCoordinator ();
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    56
  NS_ASSERT (m_scheduler != 0 && m_coordinator != 0);
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    57
}
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    58
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    59
WifiTxVector
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    60
WaveMacLow::GetDataTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    61
{
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    62
  NS_LOG_FUNCTION (this << packet << hdr);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    63
  HigherLayerTxVectorTag datatag;
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    64
  bool found;
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    65
  found = ConstCast<Packet> (packet)->PeekPacketTag (datatag);
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    66
  // if high layer has not controlled transmit parameters, the real transmit parameters
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    67
  // will be determined by MAC layer itself.
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    68
  if (!found)
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    69
    {
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    70
      return MacLow::GetDataTxVector (packet, hdr);
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    71
    }
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    72
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    73
  // if high layer has set the transmit parameters with non-adaption mode,
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    74
  // the real transmit parameters are determined by high layer.
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    75
  if (!datatag.IsAdaptable ())
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    76
    {
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    77
      return datatag.GetTxVector ();
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    78
    }
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    79
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    80
  // if high layer has set the transmit parameters with non-adaption mode,
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    81
  // the real transmit parameters are determined by both high layer and MAC layer.
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    82
  WifiTxVector txHigher = datatag.GetTxVector ();
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    83
  WifiTxVector txMac = MacLow::GetDataTxVector (packet, hdr);
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    84
  WifiTxVector txAdapter;
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    85
  // the DataRate set by higher layer is the minimum data rate
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    86
  // which is the lower bound for the actual data rate.
11628
243b71de25a0 add support for IEEE 802.11ac
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 11330
diff changeset
    87
  if (txHigher.GetMode ().GetDataRate (txHigher.GetChannelWidth (), txHigher.IsShortGuardInterval (), 1) > txMac.GetMode ().GetDataRate (txMac.GetChannelWidth (), txMac.IsShortGuardInterval (), 1))
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    88
    {
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    89
      txAdapter.SetMode (txHigher.GetMode ());
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    90
    }
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    91
  else
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    92
    {
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    93
      txAdapter.SetMode (txMac.GetMode ());
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    94
    }
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    95
  // the TxPwr_Level set by higher layer is the maximum transmit
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    96
  // power which is the upper bound for the actual transmit power;
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
    97
  txAdapter.SetTxPowerLevel (std::min (txHigher.GetTxPowerLevel (), txMac.GetTxPowerLevel ()));
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    98
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
    99
  return txAdapter;
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
   100
}
11161
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   101
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   102
void
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   103
WaveMacLow::StartTransmission (Ptr<const Packet> packet,
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   104
                               const WifiMacHeader* hdr,
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   105
                               MacLowTransmissionParameters params,
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   106
                               MacLowTransmissionListener *listener)
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   107
{
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   108
  NS_LOG_FUNCTION (this << packet << hdr << params << listener);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   109
  Ptr<WifiPhy> phy = MacLow::GetPhy ();
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   110
  uint32_t curChannel = phy->GetChannelNumber ();
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   111
  // if current channel access is not AlternatingAccess, just do as MacLow.
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   112
  if (!m_scheduler->IsAlternatingAccessAssigned (curChannel))
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   113
    {
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   114
      MacLow::StartTransmission (packet, hdr, params, listener);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   115
      return;
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   116
    }
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   117
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   118
  Time transmissionTime = MacLow::CalculateTransmissionTime (packet, hdr, params);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   119
  Time remainingTime = m_coordinator->NeedTimeToGuardInterval ();
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   120
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   121
  if (transmissionTime > remainingTime)
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   122
    {
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   123
      // The attempt for this transmission will be canceled;
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   124
      // and this packet will be pending for next transmission by EdcaTxopN class
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   125
      NS_LOG_DEBUG ("Because the required transmission time = " << transmissionTime.GetMilliSeconds ()
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   126
                                                                << "ms exceeds the remainingTime = " << remainingTime.GetMilliSeconds ()
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   127
                                                                << "ms, currently this packet will not be transmitted.");
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   128
    }
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   129
  else
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   130
    {
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   131
      MacLow::StartTransmission (packet, hdr, params, listener);
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   132
    }
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   133
}
e25365d372fb IEEE 1609.4 MAC extension
Junling Bu <linlinjavaer@gmail.com>
parents: 10968
diff changeset
   134
10459
f2e90c12a44f base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
diff changeset
   135
} // namespace ns3