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-- |
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 |