handle RTS/CTS/DATA/ACK transactions. More...
#include <mac-low.h>
handle RTS/CTS/DATA/ACK transactions.
Definition at line 273 of file mac-low.h.
typedef Callback<void, Ptr<Packet> , WifiMacHeader const*> ns3::MacLow::MacLowRxCallback |
typedef std::vector<MacLowNavListener *> ns3::MacLow::NavListeners [private] |
typedef std::vector<MacLowNavListener *>::const_iterator ns3::MacLow::NavListenersCI [private] |
ns3::MacLow::MacLow | ( | ) |
Definition at line 247 of file mac-low.cc.
References m_lastNavDuration, m_lastNavStart, NS_LOG_FUNCTION, and ns3::Seconds().
ns3::MacLow::~MacLow | ( | ) | [virtual] |
Definition at line 265 of file mac-low.cc.
References NS_LOG_FUNCTION.
Time ns3::MacLow::CalculateOverallTxTime | ( | Ptr< const Packet > | packet, | |
WifiMacHeader const * | hdr, | |||
MacLowTransmissionParameters const & | params | |||
) | const [private] |
Definition at line 716 of file mac-low.cc.
References GetAckDuration(), ns3::WifiMacHeader::GetAddr1(), GetCtsDuration(), GetDataTxMode(), GetRtsSize(), GetRtsTxMode(), GetSifs(), GetSize(), m_phy, ns3::MacLowTransmissionParameters::MustSendRts(), ns3::MacLowTransmissionParameters::MustWaitAck(), ns3::Seconds(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by CalculateTransmissionTime().
Time ns3::MacLow::CalculateTransmissionTime | ( | Ptr< const Packet > | packet, | |
WifiMacHeader const * | hdr, | |||
MacLowTransmissionParameters const & | parameters | |||
) | const |
packet | to send (does not include the 802.11 MAC header and checksum) | |
hdr | header associated to the packet to send. | |
parameters | transmission parameters of packet. |
This transmission time includes the time required for the next packet transmission if one was selected.
Definition at line 740 of file mac-low.cc.
References CalculateOverallTxTime(), GetDataTxMode(), ns3::MacLowTransmissionParameters::GetNextPacketSize(), GetSifs(), ns3::MacLowTransmissionParameters::HasNextPacket(), m_phy, and ns3::WIFI_PREAMBLE_LONG.
void ns3::MacLow::CancelAllEvents | ( | void | ) | [private] |
Definition at line 280 of file mac-low.cc.
References ns3::MacLowTransmissionListener::Cancel(), ns3::EventId::Cancel(), ns3::EventId::IsRunning(), m_ctsTimeoutEvent, m_fastAckFailedTimeoutEvent, m_fastAckTimeoutEvent, m_listener, m_normalAckTimeoutEvent, m_sendAckEvent, m_sendCtsEvent, m_sendDataEvent, m_superFastAckTimeoutEvent, m_waitSifsEvent, and NS_LOG_FUNCTION.
Referenced by DoDispose(), and StartTransmission().
void ns3::MacLow::CtsTimeout | ( | void | ) | [private] |
Definition at line 854 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), GetStation(), m_currentHdr, m_currentPacket, m_listener, ns3::MacLowTransmissionListener::MissedCts(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStation::ReportRtsFailed().
Referenced by SendRtsForPacket().
void ns3::MacLow::DoDispose | ( | void | ) | [private, virtual] |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
Reimplemented from ns3::Object.
Definition at line 271 of file mac-low.cc.
References CancelAllEvents(), m_phy, m_stationManager, and NS_LOG_FUNCTION.
void ns3::MacLow::DoNavResetNow | ( | Time | duration | ) | [private] |
Definition at line 805 of file mac-low.cc.
References m_lastNavStart, m_navListeners, and ns3::Now().
Referenced by NavCounterResetCtsMissed(), and NotifyNav().
bool ns3::MacLow::DoNavStartNow | ( | Time | duration | ) | [private] |
Definition at line 815 of file mac-low.cc.
References m_lastNavDuration, m_lastNavStart, m_navListeners, and ns3::Now().
Referenced by NotifyNav().
void ns3::MacLow::FastAckFailedTimeout | ( | void | ) | [private] |
Definition at line 1134 of file mac-low.cc.
References m_listener, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ReceiveError().
void ns3::MacLow::FastAckTimeout | ( | void | ) | [private] |
Definition at line 883 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), GetStation(), m_currentHdr, m_listener, m_phy, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStation::ReportDataFailed().
Referenced by StartDataTxTimers().
void ns3::MacLow::ForwardDown | ( | Ptr< const Packet > | packet, | |
WifiMacHeader const * | hdr, | |||
WifiMode | txMode | |||
) | [private] |
Definition at line 833 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetDuration(), ns3::WifiMacHeader::GetSequenceControl(), ns3::WifiMacHeader::GetTypeString(), m_currentHdr, m_phy, NotifyNav(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by SendAckAfterData(), SendCtsAfterRts(), SendDataAfterCts(), SendDataPacket(), and SendRtsForPacket().
Time ns3::MacLow::GetAckDuration | ( | Mac48Address | to, | |
WifiMode | dataTxMode | |||
) | const [private] |
Definition at line 663 of file mac-low.cc.
References GetAckSize(), GetAckTxModeForData(), m_phy, and ns3::WIFI_PREAMBLE_LONG.
Referenced by CalculateOverallTxTime(), SendAckAfterData(), SendDataAfterCts(), SendDataPacket(), and SendRtsForPacket().
uint32_t ns3::MacLow::GetAckSize | ( | void | ) | const [private] |
Definition at line 649 of file mac-low.cc.
References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_ACK.
Referenced by GetAckDuration().
Time ns3::MacLow::GetAckTimeout | ( | void | ) | const |
Definition at line 390 of file mac-low.cc.
References m_ackTimeout.
Referenced by StartDataTxTimers().
WifiMode ns3::MacLow::GetAckTxModeForData | ( | Mac48Address | to, | |
WifiMode | dataTxMode | |||
) | const [private] |
Definition at line 709 of file mac-low.cc.
References ns3::WifiRemoteStation::GetAckMode(), and GetStation().
Referenced by GetAckDuration(), and SendAckAfterData().
Mac48Address ns3::MacLow::GetAddress | ( | void | ) | const |
Definition at line 385 of file mac-low.cc.
References m_self.
Mac48Address ns3::MacLow::GetBssid | ( | void | ) | const |
Definition at line 415 of file mac-low.cc.
References m_bssid.
Time ns3::MacLow::GetCtsDuration | ( | Mac48Address | to, | |
WifiMode | rtsTxMode | |||
) | const [private] |
Definition at line 669 of file mac-low.cc.
References GetCtsSize(), GetCtsTxModeForRts(), m_phy, and ns3::WIFI_PREAMBLE_LONG.
Referenced by CalculateOverallTxTime(), SendCtsAfterRts(), and SendRtsForPacket().
uint32_t ns3::MacLow::GetCtsSize | ( | void | ) | const [private] |
Definition at line 675 of file mac-low.cc.
References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_CTS.
Referenced by GetCtsDuration().
Time ns3::MacLow::GetCtsTimeout | ( | void | ) | const |
Definition at line 395 of file mac-low.cc.
References m_ctsTimeout.
Referenced by SendRtsForPacket().
WifiMode ns3::MacLow::GetCtsTxModeForRts | ( | Mac48Address | to, | |
WifiMode | rtsTxMode | |||
) | const [private] |
Definition at line 704 of file mac-low.cc.
References ns3::WifiRemoteStation::GetCtsMode(), and GetStation().
Referenced by GetCtsDuration(), and SendCtsAfterRts().
WifiMode ns3::MacLow::GetDataTxMode | ( | Ptr< const Packet > | packet, | |
const WifiMacHeader * | hdr | |||
) | const [private] |
Definition at line 695 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStation::GetDataMode(), ns3::WifiMacTrailer::GetSerializedSize(), ns3::WifiMacHeader::GetSize(), and GetStation().
Referenced by CalculateOverallTxTime(), CalculateTransmissionTime(), SendDataAfterCts(), SendDataPacket(), SendRtsForPacket(), and StartDataTxTimers().
Time ns3::MacLow::GetPifs | ( | void | ) | const |
uint32_t ns3::MacLow::GetRtsSize | ( | void | ) | const [private] |
Definition at line 656 of file mac-low.cc.
References ns3::WifiMacHeader::GetSize(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_RTS.
Referenced by CalculateOverallTxTime(), and SendRtsForPacket().
WifiMode ns3::MacLow::GetRtsTxMode | ( | Ptr< const Packet > | packet, | |
const WifiMacHeader * | hdr | |||
) | const [private] |
Definition at line 689 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiRemoteStation::GetRtsMode(), and GetStation().
Referenced by CalculateOverallTxTime(), and SendRtsForPacket().
Time ns3::MacLow::GetSifs | ( | void | ) | const |
Definition at line 400 of file mac-low.cc.
References m_sifs.
Referenced by CalculateOverallTxTime(), CalculateTransmissionTime(), NotifyNav(), ReceiveError(), ReceiveOk(), SendAckAfterData(), SendCtsAfterRts(), SendDataAfterCts(), SendDataPacket(), SendRtsForPacket(), and StartDataTxTimers().
uint32_t ns3::MacLow::GetSize | ( | Ptr< const Packet > | packet, | |
const WifiMacHeader * | hdr | |||
) | const [private] |
Definition at line 682 of file mac-low.cc.
References ns3::WifiMacTrailer::GetSerializedSize(), and ns3::WifiMacHeader::GetSize().
Referenced by CalculateOverallTxTime(), SendDataAfterCts(), SendRtsForPacket(), StartDataTxTimers(), and StartTransmission().
Time ns3::MacLow::GetSlotTime | ( | void | ) | const |
WifiRemoteStation * ns3::MacLow::GetStation | ( | Mac48Address | to | ) | const [private] |
Definition at line 1059 of file mac-low.cc.
References m_stationManager.
Referenced by CtsTimeout(), FastAckTimeout(), GetAckTxModeForData(), GetCtsTxModeForRts(), GetDataTxMode(), GetRtsTxMode(), NormalAckTimeout(), ReceiveOk(), and SuperFastAckTimeout().
bool ns3::MacLow::IsNavZero | ( | void | ) | const [private] |
Definition at line 1046 of file mac-low.cc.
References m_lastNavDuration, m_lastNavStart, and ns3::Simulator::Now().
Referenced by ReceiveOk().
void ns3::MacLow::MaybeCancelPrevious | ( | void | ) | [private] |
void ns3::MacLow::NavCounterResetCtsMissed | ( | Time | rtsEndRxTime | ) | [private] |
Definition at line 796 of file mac-low.cc.
References DoNavResetNow(), m_phy, and ns3::Seconds().
Referenced by NotifyNav().
void ns3::MacLow::NormalAckTimeout | ( | void | ) | [private] |
Definition at line 869 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), GetStation(), m_currentHdr, m_listener, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStation::ReportDataFailed().
Referenced by StartDataTxTimers().
void ns3::MacLow::NotifyNav | ( | const WifiMacHeader & | hdr, | |
WifiMode | txMode, | |||
WifiPreamble | preamble | |||
) | [private] |
A STA that used information from an RTS frame as the most recent basis to update its NAV setting is permitted to reset its NAV if no PHY-RXSTART.indication is detected from the PHY during a period with a duration of (2 * aSIFSTime) + (CTS_Time) + (2 * aSlotTime) starting at the PHY-RXEND.indication corresponding to the detection of the RTS frame. The “CTS_Time” shall be calculated using the length of the CTS frame and the data rate at which the RTS frame used for the most recent NAV update was received.
Definition at line 755 of file mac-low.cc.
References DoNavResetNow(), DoNavStartNow(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetDuration(), ns3::WifiMacHeader::GetSerializedSize(), GetSifs(), GetSlotTime(), ns3::WifiMacHeader::IsCfpoll(), ns3::WifiMacHeader::IsRts(), m_bssid, m_lastNavStart, m_navCounterResetCtsMissed, m_phy, m_self, NavCounterResetCtsMissed(), ns3::Simulator::Now(), NS_ASSERT, ns3::Simulator::Schedule(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_CTS.
Referenced by ForwardDown(), and ReceiveOk().
Time ns3::MacLow::NowUs | ( | void | ) | const [private] |
packet | packet received. |
This method is typically invoked by the lower PHY layer to notify the MAC layer that a packet was unsuccessfully received.
Definition at line 478 of file mac-low.cc.
References FastAckFailedTimeout(), GetSifs(), ns3::EventId::IsExpired(), m_fastAckFailedTimeoutEvent, m_txParams, ns3::MacLowTransmissionParameters::MustWaitFastAck(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().
Referenced by SetPhy().
packet | packet received |
This method is typically invoked by the lower PHY layer to notify the MAC layer that a packet was successfully received.
Definition at line 492 of file mac-low.cc.
References ns3::EventId::Cancel(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetDuration(), GetSifs(), ns3::WifiPhyRxTag::GetSnr(), GetStation(), ns3::WifiMacHeader::GetTypeString(), ns3::WifiPhyTxTag::GetWifiMode(), ns3::WifiPhyTxTag::GetWifiPreamble(), ns3::MacLowTransmissionListener::GotAck(), ns3::MacLowTransmissionListener::GotCts(), ns3::MacLowTransmissionParameters::HasNextPacket(), ns3::WifiMacHeader::IsAck(), ns3::Mac48Address::IsBroadcast(), ns3::WifiMacHeader::IsCtl(), ns3::WifiMacHeader::IsCts(), ns3::WifiMacHeader::IsData(), ns3::EventId::IsExpired(), ns3::WifiMacHeader::IsMgt(), IsNavZero(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsQosNoAck(), ns3::WifiMacHeader::IsRts(), ns3::EventId::IsRunning(), m_ctsTimeoutEvent, m_currentHdr, m_currentPacket, m_fastAckTimeoutEvent, m_listener, m_normalAckTimeoutEvent, m_rxCallback, m_self, m_sendAckEvent, m_sendCtsEvent, m_sendDataEvent, m_superFastAckTimeoutEvent, m_txParams, m_waitSifsEvent, ns3::MacLowTransmissionParameters::MustWaitAck(), ns3::MacLowTransmissionParameters::MustWaitFastAck(), ns3::MacLowTransmissionParameters::MustWaitNormalAck(), NotifyNav(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiRemoteStation::ReportDataOk(), ns3::WifiRemoteStation::ReportRtsOk(), ns3::WifiRemoteStation::ReportRxOk(), ns3::Simulator::Schedule(), SendAckAfterData(), SendCtsAfterRts(), SendDataAfterCts(), and WaitSifsAfterEndTx().
Referenced by SetPhy().
void ns3::MacLow::RegisterNavListener | ( | MacLowNavListener * | listener | ) |
listener | listen to NAV events for every incoming and outgoing packet. |
Definition at line 426 of file mac-low.cc.
References m_navListeners.
void ns3::MacLow::SendAckAfterData | ( | Mac48Address | source, | |
Time | duration, | |||
WifiMode | txMode, | |||
double | rtsSnr | |||
) | [private] |
Definition at line 1144 of file mac-low.cc.
References ForwardDown(), GetAckDuration(), GetAckTxModeForData(), GetSifs(), ns3::MicroSeconds(), NS_ASSERT, NS_LOG_FUNCTION, ns3::SnrTag::Set(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetDuration(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_ACK.
Referenced by ReceiveOk().
void ns3::MacLow::SendCtsAfterRts | ( | Mac48Address | source, | |
Time | duration, | |||
WifiMode | txMode, | |||
double | rtsSnr | |||
) | [private] |
Definition at line 1065 of file mac-low.cc.
References ForwardDown(), GetCtsDuration(), GetCtsTxModeForRts(), GetSifs(), ns3::MicroSeconds(), NS_ASSERT, NS_LOG_FUNCTION, ns3::SnrTag::Set(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetDuration(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_CTS.
Referenced by ReceiveOk().
void ns3::MacLow::SendCurrentTxPacket | ( | void | ) | [private] |
void ns3::MacLow::SendDataAfterCts | ( | Mac48Address | source, | |
Time | duration, | |||
WifiMode | txMode | |||
) | [private] |
Definition at line 1097 of file mac-low.cc.
References ForwardDown(), GetAckDuration(), ns3::WifiMacHeader::GetAddr1(), GetDataTxMode(), GetSifs(), GetSize(), m_currentHdr, m_currentPacket, m_phy, ns3::MicroSeconds(), NS_ASSERT, NS_LOG_FUNCTION, ns3::Seconds(), ns3::WifiMacHeader::SetDuration(), StartDataTxTimers(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by ReceiveOk().
void ns3::MacLow::SendDataPacket | ( | void | ) | [private] |
Definition at line 1004 of file mac-low.cc.
References ForwardDown(), GetAckDuration(), ns3::WifiMacHeader::GetAddr1(), GetDataTxMode(), ns3::MacLowTransmissionParameters::GetDurationId(), ns3::MacLowTransmissionParameters::GetNextPacketSize(), GetSifs(), ns3::MacLowTransmissionParameters::HasDurationId(), ns3::MacLowTransmissionParameters::HasNextPacket(), m_currentHdr, m_currentPacket, m_phy, m_txParams, ns3::MacLowTransmissionParameters::MustWaitAck(), NS_LOG_FUNCTION, ns3::Seconds(), ns3::WifiMacHeader::SetDuration(), StartDataTxTimers(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by StartTransmission().
void ns3::MacLow::SendRtsForPacket | ( | void | ) | [private] |
Definition at line 921 of file mac-low.cc.
References CtsTimeout(), ForwardDown(), GetAckDuration(), ns3::WifiMacHeader::GetAddr1(), GetCtsDuration(), GetCtsTimeout(), GetDataTxMode(), ns3::MacLowTransmissionParameters::GetDurationId(), GetRtsSize(), GetRtsTxMode(), GetSifs(), GetSize(), ns3::MacLowTransmissionParameters::HasDurationId(), ns3::EventId::IsExpired(), m_ctsTimeoutEvent, m_currentHdr, m_currentPacket, m_phy, m_self, m_txParams, NS_ASSERT, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetDuration(), ns3::WifiMacHeader::SetNoMoreFragments(), ns3::WifiMacHeader::SetNoRetry(), ns3::WifiMacHeader::SetType(), ns3::WIFI_MAC_CTL_RTS, and ns3::WIFI_PREAMBLE_LONG.
Referenced by StartTransmission().
void ns3::MacLow::SetAckTimeout | ( | Time | ackTimeout | ) |
Definition at line 355 of file mac-low.cc.
References m_ackTimeout.
void ns3::MacLow::SetAddress | ( | Mac48Address | ad | ) |
Definition at line 350 of file mac-low.cc.
References m_self.
void ns3::MacLow::SetBssid | ( | Mac48Address | ad | ) |
Definition at line 380 of file mac-low.cc.
References m_bssid.
void ns3::MacLow::SetCtsTimeout | ( | Time | ctsTimeout | ) |
Definition at line 360 of file mac-low.cc.
References m_ctsTimeout.
Definition at line 337 of file mac-low.cc.
References m_phy, ns3::MakeCallback(), ReceiveError(), and ReceiveOk().
void ns3::MacLow::SetPifs | ( | Time | pifs | ) |
Definition at line 375 of file mac-low.cc.
References m_pifs.
void ns3::MacLow::SetRxCallback | ( | Callback< void, Ptr< Packet >, const WifiMacHeader * > | callback | ) |
callback | the callback which receives every incoming packet. |
This callback typically forwards incoming packets to an instance of ns3::MacRxMiddle.
Definition at line 421 of file mac-low.cc.
References m_rxCallback.
void ns3::MacLow::SetSifs | ( | Time | sifs | ) |
Definition at line 365 of file mac-low.cc.
References m_sifs.
void ns3::MacLow::SetSlotTime | ( | Time | slotTime | ) |
Definition at line 370 of file mac-low.cc.
References m_slotTime.
void ns3::MacLow::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | manager | ) |
Definition at line 344 of file mac-low.cc.
References m_stationManager.
void ns3::MacLow::StartDataTxTimers | ( | void | ) | [private] |
Definition at line 967 of file mac-low.cc.
References FastAckTimeout(), GetAckTimeout(), GetDataTxMode(), GetPifs(), GetSifs(), GetSize(), ns3::MacLowTransmissionParameters::HasNextPacket(), ns3::EventId::IsExpired(), m_currentHdr, m_currentPacket, m_fastAckTimeoutEvent, m_listener, m_normalAckTimeoutEvent, m_phy, m_superFastAckTimeoutEvent, m_txParams, m_waitSifsEvent, ns3::MacLowTransmissionParameters::MustWaitFastAck(), ns3::MacLowTransmissionParameters::MustWaitNormalAck(), ns3::MacLowTransmissionParameters::MustWaitSuperFastAck(), NormalAckTimeout(), NS_ASSERT, ns3::Simulator::Schedule(), SuperFastAckTimeout(), WaitSifsAfterEndTx(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by SendDataAfterCts(), and SendDataPacket().
void ns3::MacLow::StartTransmission | ( | Ptr< const Packet > | packet, | |
WifiMacHeader const * | hdr, | |||
MacLowTransmissionParameters | parameters, | |||
MacLowTransmissionListener * | listener | |||
) |
packet | packet to send | |
hdr | 802.11 header for packet to send | |
parameters | the transmission parameters to use for this packet. | |
listener | listen to transmission events. |
Start the transmission of the input packet and notify the listener of transmission events.
Definition at line 433 of file mac-low.cc.
References CancelAllEvents(), ns3::WifiMacHeader::GetAddr1(), GetSize(), m_currentHdr, m_currentPacket, m_listener, m_phy, m_txParams, ns3::MacLowTransmissionParameters::MustSendRts(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, SendDataPacket(), and SendRtsForPacket().
void ns3::MacLow::SuperFastAckTimeout | ( | void | ) | [private] |
Definition at line 901 of file mac-low.cc.
References ns3::WifiMacHeader::GetAddr1(), GetStation(), ns3::MacLowTransmissionListener::GotAck(), m_currentHdr, m_listener, m_phy, ns3::MacLowTransmissionListener::MissedAck(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::WifiRemoteStation::ReportDataFailed().
Referenced by StartDataTxTimers().
void ns3::MacLow::WaitSifsAfterEndTx | ( | void | ) | [private] |
Definition at line 1128 of file mac-low.cc.
References m_listener, and ns3::MacLowTransmissionListener::StartNext().
Referenced by ReceiveOk(), and StartDataTxTimers().
Time ns3::MacLow::m_ackTimeout [private] |
Definition at line 417 of file mac-low.h.
Referenced by GetAckTimeout(), and SetAckTimeout().
Mac48Address ns3::MacLow::m_bssid [private] |
Definition at line 416 of file mac-low.h.
Referenced by GetBssid(), NotifyNav(), and SetBssid().
Time ns3::MacLow::m_ctsTimeout [private] |
Definition at line 418 of file mac-low.h.
Referenced by GetCtsTimeout(), and SetCtsTimeout().
EventId ns3::MacLow::m_ctsTimeoutEvent [private] |
Definition at line 404 of file mac-low.h.
Referenced by CancelAllEvents(), ReceiveOk(), and SendRtsForPacket().
WifiMacHeader ns3::MacLow::m_currentHdr [private] |
Definition at line 412 of file mac-low.h.
Referenced by CtsTimeout(), FastAckTimeout(), ForwardDown(), NormalAckTimeout(), ReceiveOk(), SendDataAfterCts(), SendDataPacket(), SendRtsForPacket(), StartDataTxTimers(), StartTransmission(), and SuperFastAckTimeout().
Ptr<Packet> ns3::MacLow::m_currentPacket [private] |
Definition at line 411 of file mac-low.h.
Referenced by CtsTimeout(), ReceiveOk(), SendDataAfterCts(), SendDataPacket(), SendRtsForPacket(), StartDataTxTimers(), and StartTransmission().
Definition at line 403 of file mac-low.h.
Referenced by CancelAllEvents(), and ReceiveError().
EventId ns3::MacLow::m_fastAckTimeoutEvent [private] |
Definition at line 401 of file mac-low.h.
Referenced by CancelAllEvents(), ReceiveOk(), and StartDataTxTimers().
Time ns3::MacLow::m_lastNavDuration [private] |
Definition at line 424 of file mac-low.h.
Referenced by DoNavStartNow(), IsNavZero(), and MacLow().
Time ns3::MacLow::m_lastNavStart [private] |
Definition at line 423 of file mac-low.h.
Referenced by DoNavResetNow(), DoNavStartNow(), IsNavZero(), MacLow(), and NotifyNav().
Definition at line 414 of file mac-low.h.
Referenced by CancelAllEvents(), CtsTimeout(), FastAckFailedTimeout(), FastAckTimeout(), NormalAckTimeout(), ReceiveOk(), StartDataTxTimers(), StartTransmission(), SuperFastAckTimeout(), and WaitSifsAfterEndTx().
Definition at line 409 of file mac-low.h.
Referenced by NotifyNav().
NavListeners ns3::MacLow::m_navListeners [private] |
Definition at line 398 of file mac-low.h.
Referenced by DoNavResetNow(), DoNavStartNow(), and RegisterNavListener().
EventId ns3::MacLow::m_normalAckTimeoutEvent [private] |
Definition at line 400 of file mac-low.h.
Referenced by CancelAllEvents(), ReceiveOk(), and StartDataTxTimers().
Ptr<WifiPhy> ns3::MacLow::m_phy [private] |
Definition at line 393 of file mac-low.h.
Referenced by CalculateOverallTxTime(), CalculateTransmissionTime(), DoDispose(), FastAckTimeout(), ForwardDown(), GetAckDuration(), GetCtsDuration(), NavCounterResetCtsMissed(), NotifyNav(), SendDataAfterCts(), SendDataPacket(), SendRtsForPacket(), SetPhy(), StartDataTxTimers(), StartTransmission(), and SuperFastAckTimeout().
Time ns3::MacLow::m_pifs [private] |
MacLowRxCallback ns3::MacLow::m_rxCallback [private] |
Definition at line 395 of file mac-low.h.
Referenced by ReceiveOk(), and SetRxCallback().
Mac48Address ns3::MacLow::m_self [private] |
Definition at line 415 of file mac-low.h.
Referenced by GetAddress(), NotifyNav(), ReceiveOk(), SendRtsForPacket(), and SetAddress().
EventId ns3::MacLow::m_sendAckEvent [private] |
Definition at line 406 of file mac-low.h.
Referenced by CancelAllEvents(), and ReceiveOk().
EventId ns3::MacLow::m_sendCtsEvent [private] |
Definition at line 405 of file mac-low.h.
Referenced by CancelAllEvents(), and ReceiveOk().
EventId ns3::MacLow::m_sendDataEvent [private] |
Definition at line 407 of file mac-low.h.
Referenced by CancelAllEvents(), and ReceiveOk().
Time ns3::MacLow::m_sifs [private] |
Time ns3::MacLow::m_slotTime [private] |
Definition at line 420 of file mac-low.h.
Referenced by GetSlotTime(), and SetSlotTime().
Definition at line 394 of file mac-low.h.
Referenced by DoDispose(), GetStation(), and SetWifiRemoteStationManager().
Definition at line 402 of file mac-low.h.
Referenced by CancelAllEvents(), ReceiveOk(), and StartDataTxTimers().
Definition at line 413 of file mac-low.h.
Referenced by ReceiveError(), ReceiveOk(), SendDataPacket(), SendRtsForPacket(), StartDataTxTimers(), and StartTransmission().
EventId ns3::MacLow::m_waitSifsEvent [private] |
Definition at line 408 of file mac-low.h.
Referenced by CancelAllEvents(), ReceiveOk(), and StartDataTxTimers().