The preferred way to declare instances of CommandLine is now through a macro: COMMANDLINE (cmd). This enables us to add the CommandLine::Usage() message to the Doxygen for the program.
New ...FailSafe () variants of the Config is used to connect PDCP TraceSources of eNB and UE in RadioBearerStatsConnector class. It is required for the simulations using RLC SM where PDCP objects are not created for data radio bearers.
T310 timer in LteUeRrc class is stopped if the UE receives RRCConnectionReconfiguration including the mobilityControlInfo. This change is introduced following the 3GPP standard TS36331 sec 5.3.5.4.
+
The wifi High Latency tags have been removed. They required quite some hacks and were not really needed. The only rate manager (Onoe) that was making use of them has been adjusted to get rid of them.
Changes to build system:
diff --git a/src/mesh/model/dot11s/airtime-metric.cc b/src/mesh/model/dot11s/airtime-metric.cc
index ce9ca17e8..c3399b666 100644
--- a/src/mesh/model/dot11s/airtime-metric.cc
+++ b/src/mesh/model/dot11s/airtime-metric.cc
@@ -80,7 +80,7 @@ AirtimeLinkMetricCalculator::CalculateMetric (Mac48Address peerAddress, PtrGetWifiRemoteStationManager ()->GetDataTxVector (peerAddress, &m_testHeader, m_testFrame).GetMode();
+ WifiMode mode = mac->GetWifiRemoteStationManager ()->GetDataTxVector (m_testHeader).GetMode();
//obtain frame error rate:
double failAvg = mac->GetWifiRemoteStationManager ()->GetInfo (peerAddress).GetFrameErrorRate ();
if (failAvg == 1)
diff --git a/src/wifi/model/aarf-wifi-manager.cc b/src/wifi/model/aarf-wifi-manager.cc
index 1018ff63b..334cfa5af 100644
--- a/src/wifi/model/aarf-wifi-manager.cc
+++ b/src/wifi/model/aarf-wifi-manager.cc
@@ -292,10 +292,4 @@ AarfWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-AarfWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/aarf-wifi-manager.h b/src/wifi/model/aarf-wifi-manager.h
index 0e0b9a5fa..3198a3b92 100644
--- a/src/wifi/model/aarf-wifi-manager.h
+++ b/src/wifi/model/aarf-wifi-manager.h
@@ -68,7 +68,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
uint32_t m_minTimerThreshold; ///< minimum timer threshold
uint32_t m_minSuccessThreshold; ///< minimum success threshold
diff --git a/src/wifi/model/aarfcd-wifi-manager.cc b/src/wifi/model/aarfcd-wifi-manager.cc
index ebaa17837..b3b8c8a04 100644
--- a/src/wifi/model/aarfcd-wifi-manager.cc
+++ b/src/wifi/model/aarfcd-wifi-manager.cc
@@ -371,12 +371,6 @@ AarfcdWifiManager::DoNeedRts (WifiRemoteStation *st,
return station->m_rtsOn;
}
-bool
-AarfcdWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
void
AarfcdWifiManager::CheckRts (AarfcdWifiRemoteStation *station)
{
diff --git a/src/wifi/model/aarfcd-wifi-manager.h b/src/wifi/model/aarfcd-wifi-manager.h
index f7db62b6a..b8b9062a6 100644
--- a/src/wifi/model/aarfcd-wifi-manager.h
+++ b/src/wifi/model/aarfcd-wifi-manager.h
@@ -84,7 +84,6 @@ private:
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
bool DoNeedRts (WifiRemoteStation *station,
Ptr packet, bool normally);
- bool IsLowLatency (void) const;
/**
* Check if the use of RTS for the given station can be turned off.
diff --git a/src/wifi/model/amrr-wifi-manager.cc b/src/wifi/model/amrr-wifi-manager.cc
index 6fee038ba..aa7aa507c 100644
--- a/src/wifi/model/amrr-wifi-manager.cc
+++ b/src/wifi/model/amrr-wifi-manager.cc
@@ -403,10 +403,4 @@ AmrrWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-AmrrWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/amrr-wifi-manager.h b/src/wifi/model/amrr-wifi-manager.h
index 6377d3bec..f65aabbe2 100644
--- a/src/wifi/model/amrr-wifi-manager.h
+++ b/src/wifi/model/amrr-wifi-manager.h
@@ -71,7 +71,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
/**
* Update the mode used to send to the given station.
diff --git a/src/wifi/model/aparf-wifi-manager.cc b/src/wifi/model/aparf-wifi-manager.cc
index 8cffe237f..2529eeed3 100644
--- a/src/wifi/model/aparf-wifi-manager.cc
+++ b/src/wifi/model/aparf-wifi-manager.cc
@@ -391,10 +391,4 @@ AparfWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-AparfWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/aparf-wifi-manager.h b/src/wifi/model/aparf-wifi-manager.h
index ff93c02ce..a8dda080c 100644
--- a/src/wifi/model/aparf-wifi-manager.h
+++ b/src/wifi/model/aparf-wifi-manager.h
@@ -84,7 +84,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
/** Check for initializations.
*
diff --git a/src/wifi/model/arf-wifi-manager.cc b/src/wifi/model/arf-wifi-manager.cc
index db80bd11d..e7fc36e23 100644
--- a/src/wifi/model/arf-wifi-manager.cc
+++ b/src/wifi/model/arf-wifi-manager.cc
@@ -269,10 +269,4 @@ ArfWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-ArfWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/arf-wifi-manager.h b/src/wifi/model/arf-wifi-manager.h
index 523df4b0d..15faacf9e 100644
--- a/src/wifi/model/arf-wifi-manager.h
+++ b/src/wifi/model/arf-wifi-manager.h
@@ -74,7 +74,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
uint32_t m_timerThreshold; ///< timer threshold
uint32_t m_successThreshold; ///< success threshold
diff --git a/src/wifi/model/cara-wifi-manager.cc b/src/wifi/model/cara-wifi-manager.cc
index 2770f67a0..2674251fd 100644
--- a/src/wifi/model/cara-wifi-manager.cc
+++ b/src/wifi/model/cara-wifi-manager.cc
@@ -251,10 +251,4 @@ CaraWifiManager::DoNeedRts (WifiRemoteStation *st,
return normally || station->m_failed >= m_probeThreshold;
}
-bool
-CaraWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/cara-wifi-manager.h b/src/wifi/model/cara-wifi-manager.h
index b58734b89..9d479dcd8 100644
--- a/src/wifi/model/cara-wifi-manager.h
+++ b/src/wifi/model/cara-wifi-manager.h
@@ -72,7 +72,6 @@ private:
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
bool DoNeedRts (WifiRemoteStation *station,
Ptr packet, bool normally);
- bool IsLowLatency (void) const;
uint32_t m_timerTimeout; ///< timer threshold
uint32_t m_successThreshold; ///< success threshold
diff --git a/src/wifi/model/constant-rate-wifi-manager.cc b/src/wifi/model/constant-rate-wifi-manager.cc
index 83931e7c3..f410a8872 100644
--- a/src/wifi/model/constant-rate-wifi-manager.cc
+++ b/src/wifi/model/constant-rate-wifi-manager.cc
@@ -134,10 +134,4 @@ ConstantRateWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return WifiTxVector (m_ctlMode, GetDefaultTxPowerLevel (), GetPreambleForTransmission (m_ctlMode.GetModulationClass (), GetShortPreambleEnabled (), UseGreenfieldForDestination (GetAddress (st))), ConvertGuardIntervalToNanoSeconds (m_ctlMode, GetShortGuardIntervalSupported (st), NanoSeconds (GetGuardInterval (st))), 1, 1, 0, GetChannelWidthForTransmission (m_ctlMode, GetChannelWidth (st)), GetAggregation (st), false);
}
-bool
-ConstantRateWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/constant-rate-wifi-manager.h b/src/wifi/model/constant-rate-wifi-manager.h
index ceacd3738..c61bde666 100644
--- a/src/wifi/model/constant-rate-wifi-manager.h
+++ b/src/wifi/model/constant-rate-wifi-manager.h
@@ -60,7 +60,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
WifiMode m_dataMode; //!< Wifi mode for unicast Data frames
WifiMode m_ctlMode; //!< Wifi mode for RTS frames
diff --git a/src/wifi/model/ideal-wifi-manager.cc b/src/wifi/model/ideal-wifi-manager.cc
index 96e4df3e0..ebec5a8a6 100644
--- a/src/wifi/model/ideal-wifi-manager.cc
+++ b/src/wifi/model/ideal-wifi-manager.cc
@@ -572,10 +572,4 @@ IdealWifiManager::GetLastObservedSnrForChannelWidth (IdealWifiRemoteStation *sta
return snr;
}
-bool
-IdealWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/ideal-wifi-manager.h b/src/wifi/model/ideal-wifi-manager.h
index f4c951b4c..e5c670144 100644
--- a/src/wifi/model/ideal-wifi-manager.h
+++ b/src/wifi/model/ideal-wifi-manager.h
@@ -77,7 +77,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
/**
* Reset the station, invoked if the maximum amount of retries has failed.
diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc
index 67c6ef110..7b62815ab 100644
--- a/src/wifi/model/mac-low.cc
+++ b/src/wifi/model/mac-low.cc
@@ -1275,15 +1275,13 @@ MacLow::GetCtsDuration (WifiTxVector ctsTxVector) const
WifiTxVector
MacLow::GetRtsTxVector (Ptr item) const
{
- Mac48Address to = item->GetHeader ().GetAddr1 ();
- return m_stationManager->GetRtsTxVector (to, item->GetPacket ());
+ return m_stationManager->GetRtsTxVector (item->GetHeader ().GetAddr1 ());
}
WifiTxVector
MacLow::GetDataTxVector (Ptr item) const
{
- Mac48Address to = item->GetHeader ().GetAddr1 ();
- return m_stationManager->GetDataTxVector (to, &item->GetHeader (), item->GetPacket ());
+ return m_stationManager->GetDataTxVector (item->GetHeader ());
}
Time
diff --git a/src/wifi/model/minstrel-ht-wifi-manager.cc b/src/wifi/model/minstrel-ht-wifi-manager.cc
index a08c76125..6741cfc3d 100644
--- a/src/wifi/model/minstrel-ht-wifi-manager.cc
+++ b/src/wifi/model/minstrel-ht-wifi-manager.cc
@@ -1000,12 +1000,6 @@ MinstrelHtWifiManager::CountRetries (MinstrelHtWifiRemoteStation *station)
}
}
-bool
-MinstrelHtWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
uint16_t
MinstrelHtWifiManager::GetNextSample (MinstrelHtWifiRemoteStation *station)
{
diff --git a/src/wifi/model/minstrel-ht-wifi-manager.h b/src/wifi/model/minstrel-ht-wifi-manager.h
index 2434eb6c7..2cfae02db 100644
--- a/src/wifi/model/minstrel-ht-wifi-manager.h
+++ b/src/wifi/model/minstrel-ht-wifi-manager.h
@@ -239,7 +239,6 @@ private:
void DoReportAmpduTxStatus (WifiRemoteStation *station,
uint8_t nSuccessfulMpdus, uint8_t nFailedMpdus,
double rxSnr, double dataSnr, uint16_t dataChannelWidth);
- bool IsLowLatency (void) const;
bool DoNeedRetransmission (WifiRemoteStation *st, Ptr packet, bool normally);
/**
diff --git a/src/wifi/model/minstrel-wifi-manager.cc b/src/wifi/model/minstrel-wifi-manager.cc
index 7c461a2e4..b9fcce931 100644
--- a/src/wifi/model/minstrel-wifi-manager.cc
+++ b/src/wifi/model/minstrel-wifi-manager.cc
@@ -891,12 +891,6 @@ MinstrelWifiManager::DoNeedRetransmission (WifiRemoteStation *st, Ptr packet, bool normally);
- bool IsLowLatency (void) const;
/**
* Estimate the TxTime of a packet with a given mode.
diff --git a/src/wifi/model/onoe-wifi-manager.cc b/src/wifi/model/onoe-wifi-manager.cc
index 3bbaec98b..0fc3cc610 100644
--- a/src/wifi/model/onoe-wifi-manager.cc
+++ b/src/wifi/model/onoe-wifi-manager.cc
@@ -38,6 +38,7 @@ NS_LOG_COMPONENT_DEFINE ("OnoeWifiManager");
struct OnoeWifiRemoteStation : public WifiRemoteStation
{
Time m_nextModeUpdate; ///< next mode update
+ bool m_rateBlocked; ///< whether the rate cannot be changed
uint32_t m_shortRetry; ///< short retry
uint32_t m_longRetry; ///< long retry
uint32_t m_tx_ok; ///< transmit OK
@@ -113,6 +114,7 @@ OnoeWifiManager::DoCreateStation (void) const
NS_LOG_FUNCTION (this);
OnoeWifiRemoteStation *station = new OnoeWifiRemoteStation ();
station->m_nextModeUpdate = Simulator::Now () + m_updatePeriod;
+ station->m_rateBlocked = false;
station->m_shortRetry = 0;
station->m_longRetry = 0;
station->m_tx_ok = 0;
@@ -135,6 +137,7 @@ OnoeWifiManager::DoReportRtsFailed (WifiRemoteStation *st)
NS_LOG_FUNCTION (this << st);
OnoeWifiRemoteStation *station = static_cast (st);
station->m_shortRetry++;
+ station->m_rateBlocked = true; // do not change rate for retransmission
}
void
@@ -143,12 +146,15 @@ OnoeWifiManager::DoReportDataFailed (WifiRemoteStation *st)
NS_LOG_FUNCTION (this << st);
OnoeWifiRemoteStation *station = static_cast (st);
station->m_longRetry++;
+ station->m_rateBlocked = true; // do not change rate for retransmission
}
void
-OnoeWifiManager::DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)
+OnoeWifiManager::DoReportRtsOk (WifiRemoteStation *st, double ctsSnr, WifiMode ctsMode, double rtsSnr)
{
- NS_LOG_FUNCTION (this << station << ctsSnr << ctsMode << rtsSnr);
+ NS_LOG_FUNCTION (this << st << ctsSnr << ctsMode << rtsSnr);
+ OnoeWifiRemoteStation *station = static_cast (st);
+ station->m_rateBlocked = true; // do not change rate
}
void
@@ -160,6 +166,7 @@ OnoeWifiManager::DoReportDataOk (WifiRemoteStation *st,
OnoeWifiRemoteStation *station = static_cast (st);
UpdateRetry (station);
station->m_tx_ok++;
+ station->m_rateBlocked = false; // we can change the rate for next packet
}
void
@@ -169,6 +176,7 @@ OnoeWifiManager::DoReportFinalRtsFailed (WifiRemoteStation *st)
OnoeWifiRemoteStation *station = static_cast (st);
UpdateRetry (station);
station->m_tx_err++;
+ station->m_rateBlocked = false; // we can change the rate for next packet
}
void
@@ -178,6 +186,7 @@ OnoeWifiManager::DoReportFinalDataFailed (WifiRemoteStation *st)
OnoeWifiRemoteStation *station = static_cast (st);
UpdateRetry (station);
station->m_tx_err++;
+ station->m_rateBlocked = false; // we can change the rate for next packet
}
void
@@ -193,7 +202,7 @@ void
OnoeWifiManager::UpdateMode (OnoeWifiRemoteStation *station)
{
NS_LOG_FUNCTION (this << station);
- if (Simulator::Now () < station->m_nextModeUpdate)
+ if (Simulator::Now () < station->m_nextModeUpdate || station->m_rateBlocked)
{
return;
}
@@ -356,10 +365,4 @@ OnoeWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-OnoeWifiManager::IsLowLatency (void) const
-{
- return false;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/onoe-wifi-manager.h b/src/wifi/model/onoe-wifi-manager.h
index 4539fd6a1..4c9a1219d 100644
--- a/src/wifi/model/onoe-wifi-manager.h
+++ b/src/wifi/model/onoe-wifi-manager.h
@@ -72,7 +72,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
/**
* Update the number of retry (both short and long).
diff --git a/src/wifi/model/parf-wifi-manager.cc b/src/wifi/model/parf-wifi-manager.cc
index a98f78693..d30a0ff9d 100644
--- a/src/wifi/model/parf-wifi-manager.cc
+++ b/src/wifi/model/parf-wifi-manager.cc
@@ -363,10 +363,4 @@ ParfWifiManager::DoGetRtsTxVector (WifiRemoteStation *st)
return rtsTxVector;
}
-bool
-ParfWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/parf-wifi-manager.h b/src/wifi/model/parf-wifi-manager.h
index 5e94e7d12..fb398643b 100644
--- a/src/wifi/model/parf-wifi-manager.h
+++ b/src/wifi/model/parf-wifi-manager.h
@@ -72,7 +72,6 @@ private:
void DoReportFinalDataFailed (WifiRemoteStation *station);
WifiTxVector DoGetDataTxVector (WifiRemoteStation *station);
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
- bool IsLowLatency (void) const;
/** Check for initializations.
*
diff --git a/src/wifi/model/qos-txop.cc b/src/wifi/model/qos-txop.cc
index 542718365..151b4b18c 100644
--- a/src/wifi/model/qos-txop.cc
+++ b/src/wifi/model/qos-txop.cc
@@ -1452,7 +1452,6 @@ QosTxop::PushFront (Ptr packet, const WifiMacHeader &hdr)
{
NS_LOG_FUNCTION (this << packet << &hdr);
WifiMacTrailer fcs;
- m_stationManager->PrepareForQueue (hdr.GetAddr1 (), packet);
m_queue->PushFront (Create (packet, hdr));
StartAccessIfNeeded ();
}
diff --git a/src/wifi/model/rraa-wifi-manager.cc b/src/wifi/model/rraa-wifi-manager.cc
index f4866d0b7..429d1b428 100644
--- a/src/wifi/model/rraa-wifi-manager.cc
+++ b/src/wifi/model/rraa-wifi-manager.cc
@@ -473,10 +473,4 @@ RraaWifiManager::GetThresholds (RraaWifiRemoteStation *station, uint8_t index) c
return GetThresholds (station, mode);
}
-bool
-RraaWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} //namespace ns3
diff --git a/src/wifi/model/rraa-wifi-manager.h b/src/wifi/model/rraa-wifi-manager.h
index 2003d5db5..de7ef9f18 100644
--- a/src/wifi/model/rraa-wifi-manager.h
+++ b/src/wifi/model/rraa-wifi-manager.h
@@ -91,7 +91,6 @@ private:
WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
bool DoNeedRts (WifiRemoteStation *st,
Ptr packet, bool normally);
- bool IsLowLatency (void) const;
/**
* Check for initializations.
diff --git a/src/wifi/model/rrpaa-wifi-manager.cc b/src/wifi/model/rrpaa-wifi-manager.cc
index 09dea2bcf..61f116be3 100644
--- a/src/wifi/model/rrpaa-wifi-manager.cc
+++ b/src/wifi/model/rrpaa-wifi-manager.cc
@@ -611,10 +611,4 @@ RrpaaWifiManager::GetThresholds (RrpaaWifiRemoteStation *station, uint8_t index)
return GetThresholds (station, mode);
}
-bool
-RrpaaWifiManager::IsLowLatency (void) const
-{
- return true;
-}
-
} // namespace ns3
diff --git a/src/wifi/model/rrpaa-wifi-manager.h b/src/wifi/model/rrpaa-wifi-manager.h
index 045d105ec..f8ff2e1fd 100644
--- a/src/wifi/model/rrpaa-wifi-manager.h
+++ b/src/wifi/model/rrpaa-wifi-manager.h
@@ -116,7 +116,6 @@ private:
virtual WifiTxVector DoGetRtsTxVector (WifiRemoteStation *station);
virtual bool DoNeedRts (WifiRemoteStation *st,
Ptr packet, bool normally);
- virtual bool IsLowLatency (void) const;
/**
* Check for initializations.
diff --git a/src/wifi/model/tx-vector-tag.cc b/src/wifi/model/tx-vector-tag.cc
deleted file mode 100644
index a1f9dadd6..000000000
--- a/src/wifi/model/tx-vector-tag.cc
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Mathieu Lacage
- */
-
-#include "tx-vector-tag.h"
-
-/***************************************************************
- * Packet Mode Tagger
- ***************************************************************/
-
-namespace ns3 {
-
-HighLatencyDataTxVectorTag::HighLatencyDataTxVectorTag ()
-{
-}
-
-HighLatencyDataTxVectorTag::HighLatencyDataTxVectorTag (WifiTxVector dataTxVector)
- : m_dataTxVector (dataTxVector)
-{
-}
-
-WifiTxVector
-HighLatencyDataTxVectorTag::GetDataTxVector (void) const
-{
- return m_dataTxVector;
-}
-
-TypeId
-HighLatencyDataTxVectorTag::GetTypeId (void)
-{
- static TypeId tid = TypeId ("ns3::HighLatencyDataTxVectorTag")
- .SetParent ()
- .SetGroupName ("Wifi")
- .AddConstructor ()
- ;
- return tid;
-}
-
-TypeId
-HighLatencyDataTxVectorTag::GetInstanceTypeId (void) const
-{
- return GetTypeId ();
-}
-
-uint32_t
-HighLatencyDataTxVectorTag::GetSerializedSize (void) const
-{
- return sizeof (WifiTxVector);
-}
-
-void
-HighLatencyDataTxVectorTag::Serialize (TagBuffer i) const
-{
- i.Write ((uint8_t *)&m_dataTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyDataTxVectorTag::Deserialize (TagBuffer i)
-{
- i.Read ((uint8_t *)&m_dataTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyDataTxVectorTag::Print (std::ostream &os) const
-{
- os << "Data=" << m_dataTxVector;
-}
-
-HighLatencyRtsTxVectorTag::HighLatencyRtsTxVectorTag ()
-{
-}
-
-HighLatencyRtsTxVectorTag::HighLatencyRtsTxVectorTag (WifiTxVector rtsTxVector)
- : m_rtsTxVector (rtsTxVector)
-{
-}
-
-WifiTxVector
-HighLatencyRtsTxVectorTag::GetRtsTxVector (void) const
-{
- return m_rtsTxVector;
-}
-
-TypeId
-HighLatencyRtsTxVectorTag::GetTypeId (void)
-{
- static TypeId tid = TypeId ("ns3::HighLatencyRtsTxVectorTag")
- .SetParent ()
- .SetGroupName ("Wifi")
- .AddConstructor ()
- ;
- return tid;
-}
-
-TypeId
-HighLatencyRtsTxVectorTag::GetInstanceTypeId (void) const
-{
- return GetTypeId ();
-}
-
-uint32_t
-HighLatencyRtsTxVectorTag::GetSerializedSize (void) const
-{
- return sizeof (WifiTxVector);
-}
-
-void
-HighLatencyRtsTxVectorTag::Serialize (TagBuffer i) const
-{
- i.Write ((uint8_t *)&m_rtsTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyRtsTxVectorTag::Deserialize (TagBuffer i)
-{
- i.Read ((uint8_t *)&m_rtsTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyRtsTxVectorTag::Print (std::ostream &os) const
-{
- os << "Rts=" << m_rtsTxVector;
-}
-
-HighLatencyCtsToSelfTxVectorTag::HighLatencyCtsToSelfTxVectorTag ()
-{
-}
-
-HighLatencyCtsToSelfTxVectorTag::HighLatencyCtsToSelfTxVectorTag (WifiTxVector ctsToSelfTxVector)
- : m_ctsToSelfTxVector (ctsToSelfTxVector)
-{
-}
-
-WifiTxVector
-HighLatencyCtsToSelfTxVectorTag::GetCtsToSelfTxVector (void) const
-{
- return m_ctsToSelfTxVector;
-}
-
-TypeId
-HighLatencyCtsToSelfTxVectorTag::GetTypeId (void)
-{
- static TypeId tid = TypeId ("ns3::HighLatencyCtsToSelfTxVectorTag")
- .SetParent ()
- .SetGroupName ("Wifi")
- .AddConstructor ()
- ;
- return tid;
-}
-
-TypeId
-HighLatencyCtsToSelfTxVectorTag::GetInstanceTypeId (void) const
-{
- return GetTypeId ();
-}
-
-uint32_t
-HighLatencyCtsToSelfTxVectorTag::GetSerializedSize (void) const
-{
- return sizeof (WifiTxVector);
-}
-
-void
-HighLatencyCtsToSelfTxVectorTag::Serialize (TagBuffer i) const
-{
- i.Write ((uint8_t *)&m_ctsToSelfTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyCtsToSelfTxVectorTag::Deserialize (TagBuffer i)
-{
- i.Read ((uint8_t *)&m_ctsToSelfTxVector, sizeof (WifiTxVector));
-}
-
-void
-HighLatencyCtsToSelfTxVectorTag::Print (std::ostream &os) const
-{
- os << "Cts To Self=" << m_ctsToSelfTxVector;
-}
-
-} //namespace ns3
diff --git a/src/wifi/model/tx-vector-tag.h b/src/wifi/model/tx-vector-tag.h
deleted file mode 100644
index a851c8552..000000000
--- a/src/wifi/model/tx-vector-tag.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Mathieu Lacage
- */
-
-#ifndef TX_VECTOR_TAG_H
-#define TX_VECTOR_TAG_H
-
-#include "ns3/tag.h"
-#include "wifi-tx-vector.h"
-
-/***************************************************************
- * Packet Mode Tagger
- ***************************************************************/
-
-namespace ns3 {
-
-/**
- * HighLatencyDataTxVectorTag class
- */
-class HighLatencyDataTxVectorTag : public Tag
-{
-public:
- HighLatencyDataTxVectorTag ();
- /**
- * Constructor
- *
- * \param dataTxVector TXVECTOR for data frames
- */
- HighLatencyDataTxVectorTag (WifiTxVector dataTxVector);
- /**
- * \returns the transmission mode to use to send this packet
- */
- WifiTxVector GetDataTxVector (void) const;
-
- /**
- * \brief Get the type ID.
- * \return the object TypeId
- */
- static TypeId GetTypeId (void);
- virtual TypeId GetInstanceTypeId (void) const;
- virtual uint32_t GetSerializedSize (void) const;
- virtual void Serialize (TagBuffer i) const;
- virtual void Deserialize (TagBuffer i);
- virtual void Print (std::ostream &os) const;
-
-private:
- WifiTxVector m_dataTxVector; ///< TXVECTOR for data frames
-};
-
-/**
- * HighLatencyRtsTxVectorTag class
- */
-class HighLatencyRtsTxVectorTag : public Tag
-{
-public:
- HighLatencyRtsTxVectorTag ();
- /**
- * Constructor
- *
- * \param rtsTxVector TXVECTOR for RTS frames
- */
- HighLatencyRtsTxVectorTag (WifiTxVector rtsTxVector);
- /**
- * \returns the transmission mode to use to send the RTS prior to the
- * transmission of the data packet itself.
- */
- WifiTxVector GetRtsTxVector (void) const;
-
- /**
- * \brief Get the type ID.
- * \return the object TypeId
- */
- static TypeId GetTypeId (void);
- virtual TypeId GetInstanceTypeId (void) const;
- virtual uint32_t GetSerializedSize (void) const;
- virtual void Serialize (TagBuffer i) const;
- virtual void Deserialize (TagBuffer i);
- virtual void Print (std::ostream &os) const;
-
-private:
- WifiTxVector m_rtsTxVector; ///< TXVECTOR for data frames
-};
-
-/**
- * HighLatencyCtsToSelfTxVectorTag class
- */
-class HighLatencyCtsToSelfTxVectorTag : public Tag
-{
-public:
- HighLatencyCtsToSelfTxVectorTag ();
- /**
- * Constructor
- *
- * \param ctsToSelfTxVector TXVECTOR for CTS-to-self frames
- */
- HighLatencyCtsToSelfTxVectorTag (WifiTxVector ctsToSelfTxVector);
- /**
- * \returns the transmission mode to use for the CTS-to-self.
- */
- WifiTxVector GetCtsToSelfTxVector (void) const;
-
- /**
- * \brief Get the type ID.
- * \return the object TypeId
- */
- static TypeId GetTypeId (void);
- virtual TypeId GetInstanceTypeId (void) const;
- virtual uint32_t GetSerializedSize (void) const;
- virtual void Serialize (TagBuffer i) const;
- virtual void Deserialize (TagBuffer i);
- virtual void Print (std::ostream &os) const;
-
-private:
- WifiTxVector m_ctsToSelfTxVector; ///< TXVECTOR for CTS-to-self frames
-};
-
-} //namespace ns3
-
-#endif /* TX_VECTOR_TAG_H */
diff --git a/src/wifi/model/txop.cc b/src/wifi/model/txop.cc
index d5c973874..073723bad 100644
--- a/src/wifi/model/txop.cc
+++ b/src/wifi/model/txop.cc
@@ -319,7 +319,6 @@ Txop::Queue (Ptr packet, const WifiMacHeader &hdr)
// remove the priority tag attached, if any
SocketPriorityTag priorityTag;
packet->RemovePacketTag (priorityTag);
- m_stationManager->PrepareForQueue (hdr.GetAddr1 (), packet);
if (m_channelAccessManager->NeedBackoffUponAccess (this))
{
GenerateBackoff ();
diff --git a/src/wifi/model/wifi-remote-station-manager.cc b/src/wifi/model/wifi-remote-station-manager.cc
index ef9f36f0c..dbcadcb0c 100644
--- a/src/wifi/model/wifi-remote-station-manager.cc
+++ b/src/wifi/model/wifi-remote-station-manager.cc
@@ -33,7 +33,6 @@
#include "vht-configuration.h"
#include "he-configuration.h"
#include "wifi-net-device.h"
-#include "tx-vector-tag.h"
namespace ns3 {
@@ -47,16 +46,6 @@ WifiRemoteStationManager::GetTypeId (void)
static TypeId tid = TypeId ("ns3::WifiRemoteStationManager")
.SetParent