control how a packet is transmitted. More...
#include "mac-low-transmission-parameters.h"
Public Member Functions | |
| MacLowTransmissionParameters () | |
| void | DisableAck (void) | 
| Do not wait for Ack after data transmission.  More... | |
| void | DisableNextData (void) | 
| Do not attempt to send data burst after current transmission.  More... | |
| void | DisableRts (void) | 
| Do not send rts and wait for cts before sending data.  More... | |
| void | EnableAck (void) | 
| Wait ACKTimeout for an ACK.  More... | |
| void | EnableBasicBlockAck (void) | 
| Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.  More... | |
| void | EnableCompressedBlockAck (void) | 
| Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.  More... | |
| void | EnableFastAck (void) | 
| void | EnableMultiTidBlockAck (void) | 
| NOT IMPLEMENTED FOR NOW.  More... | |
| void | EnableNextData (uint32_t size) | 
| void | EnableRts (void) | 
| Send a RTS, and wait CTSTimeout for a CTS.  More... | |
| void | EnableSuperFastAck (void) | 
| uint32_t | GetNextPacketSize (void) const | 
| bool | HasNextPacket (void) const | 
| bool | MustSendRts (void) const | 
| bool | MustWaitAck (void) const | 
| bool | MustWaitBasicBlockAck (void) const | 
| bool | MustWaitCompressedBlockAck (void) const | 
| bool | MustWaitFastAck (void) const | 
| bool | MustWaitMultiTidBlockAck (void) const | 
| bool | MustWaitNormalAck (void) const | 
| bool | MustWaitSuperFastAck (void) const | 
Private Types | |
| enum | {  ACK_NONE, ACK_NORMAL, ACK_FAST, ACK_SUPER_FAST, BLOCK_ACK_BASIC, BLOCK_ACK_COMPRESSED, BLOCK_ACK_MULTI_TID }  | 
| wait ack enumerated type  More... | |
Private Attributes | |
| uint32_t | m_nextSize | 
| the next size  More... | |
| bool | m_sendRts | 
| send an RTS?  More... | |
| enum ns3::MacLowTransmissionParameters:: { ... } | m_waitAck | 
| wait ack enumerated type  More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const MacLowTransmissionParameters ¶ms) | 
| Serialize MacLowTransmissionParameters to ostream in a human-readable form.  More... | |
control how a packet is transmitted.
The ns3::MacLow::StartTransmission method expects an instance of this class to describe how the packet should be transmitted.
Definition at line 39 of file mac-low-transmission-parameters.h.
| ns3::MacLowTransmissionParameters::MacLowTransmissionParameters | ( | ) | 
Definition at line 27 of file mac-low-transmission-parameters.cc.
| void ns3::MacLowTransmissionParameters::DisableAck | ( | void | ) | 
Do not wait for Ack after data transmission.
Typically used for Broadcast and multicast frames.
Definition at line 83 of file mac-low-transmission-parameters.cc.
References ACK_NONE, and m_waitAck.
Referenced by ns3::EdcaTxopN::HasTxop(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::MacLow::SendBlockAckResponse(), and ns3::EdcaTxopN::StartNextPacket().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::DisableNextData | ( | void | ) | 
Do not attempt to send data burst after current transmission.
Definition at line 41 of file mac-low-transmission-parameters.cc.
References m_nextSize.
Referenced by ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::EdcaTxopN::SendAddBaRequest(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::MacLow::SendBlockAckResponse(), ns3::DcaTxop::StartNextFragment(), and ns3::EdcaTxopN::StartNextPacket().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::DisableRts | ( | void | ) | 
Do not send rts and wait for cts before sending data.
Definition at line 95 of file mac-low-transmission-parameters.cc.
References m_sendRts.
Referenced by ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::EdcaTxopN::SendAddBaRequest(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::DcaTxop::StartNextFragment(), and ns3::MacLow::StartTransmission().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableAck | ( | void | ) | 
Wait ACKTimeout for an ACK.
If we get an ACK on time, call MacLowTransmissionListener::GotAck. Call MacLowTransmissionListener::MissedAck otherwise.
Definition at line 77 of file mac-low-transmission-parameters.cc.
References ACK_NORMAL, and m_waitAck.
Referenced by ns3::EdcaTxopN::HasTxop(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::EdcaTxopN::SendAddBaRequest(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::MacLow::SendBlockAckResponse(), ns3::DcaTxop::StartNextFragment(), ns3::EdcaTxopN::StartNextPacket(), and ns3::MacLow::StartTransmission().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableBasicBlockAck | ( | void | ) | 
Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.
Definition at line 53 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_BASIC, and m_waitAck.
Referenced by ns3::EdcaTxopN::SendBlockAckRequest().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableCompressedBlockAck | ( | void | ) | 
Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.
Definition at line 59 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_COMPRESSED, and m_waitAck.
Referenced by ns3::EdcaTxopN::SendBlockAckRequest(), and ns3::MacLow::StartTransmission().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableFastAck | ( | void | ) | 
This is really complicated but it is needed for proper HCCA support.
Definition at line 71 of file mac-low-transmission-parameters.cc.
| void ns3::MacLowTransmissionParameters::EnableMultiTidBlockAck | ( | void | ) | 
NOT IMPLEMENTED FOR NOW.
Definition at line 65 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_MULTI_TID, and m_waitAck.
| void ns3::MacLowTransmissionParameters::EnableNextData | ( | uint32_t | size | ) | 
| size | size of next data to send after current packet is sent. | 
Add the transmission duration of the next data to the durationId of the outgoing packet and call MacLowTransmissionListener::StartNextFragment at the end of the current transmission + SIFS.
Definition at line 35 of file mac-low-transmission-parameters.cc.
References m_nextSize.
Referenced by ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), and ns3::DcaTxop::StartNextFragment().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableRts | ( | void | ) | 
Send a RTS, and wait CTSTimeout for a CTS.
If we get a CTS on time, call MacLowTransmissionListener::GotCts and send data. Otherwise, call MacLowTransmissionListener::MissedCts and do not send data.
Definition at line 89 of file mac-low-transmission-parameters.cc.
References m_sendRts.
Referenced by ns3::MacLow::StartTransmission().
 Here is the caller graph for this function:| void ns3::MacLowTransmissionParameters::EnableSuperFastAck | ( | void | ) | 
Definition at line 47 of file mac-low-transmission-parameters.cc.
References ACK_SUPER_FAST, and m_waitAck.
| uint32_t ns3::MacLowTransmissionParameters::GetNextPacketSize | ( | void | ) | const | 
Definition at line 155 of file mac-low-transmission-parameters.cc.
References HasNextPacket(), m_nextSize, and NS_ASSERT.
Referenced by ns3::MacLow::CalculateTransmissionTime(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), and ns3::MacLow::SendRtsForPacket().
 Here is the call graph for this function:
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::HasNextPacket | ( | void | ) | const | 
Definition at line 149 of file mac-low-transmission-parameters.cc.
References m_nextSize.
Referenced by ns3::MacLow::CalculateTransmissionTime(), GetNextPacketSize(), ns3::EdcaTxopN::GotAck(), ns3::MacLow::ReceiveOk(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), ns3::MacLow::SendRtsForPacket(), and ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustSendRts | ( | void | ) | const | 
Definition at line 143 of file mac-low-transmission-parameters.cc.
References m_sendRts.
Referenced by ns3::MacLow::AggregateToAmpdu(), ns3::MacLow::CalculateOverallTxTime(), and ns3::MacLow::StartTransmission().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitAck | ( | void | ) | const | 
This methods returns true when any of MustWaitNormalAck, MustWaitFastAck, or MustWaitSuperFastAck return true.
Definition at line 101 of file mac-low-transmission-parameters.cc.
References ACK_NONE, and m_waitAck.
Referenced by ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::ReceiveOk(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), and ns3::MacLow::SendRtsForPacket().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitBasicBlockAck | ( | void | ) | const | 
Definition at line 125 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_BASIC, and m_waitAck.
Referenced by ns3::MacLow::ReceiveOk(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), ns3::MacLow::SendRtsForPacket(), and ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitCompressedBlockAck | ( | void | ) | const | 
Definition at line 131 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_COMPRESSED, and m_waitAck.
Referenced by ns3::MacLow::ReceiveOk(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), ns3::MacLow::SendRtsForPacket(), and ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitFastAck | ( | void | ) | const | 
Definition at line 113 of file mac-low-transmission-parameters.cc.
References ACK_FAST, and m_waitAck.
Referenced by ns3::MacLow::ReceiveError(), ns3::MacLow::ReceiveOk(), and ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitMultiTidBlockAck | ( | void | ) | const | 
Definition at line 137 of file mac-low-transmission-parameters.cc.
References BLOCK_ACK_MULTI_TID, and m_waitAck.
| bool ns3::MacLowTransmissionParameters::MustWaitNormalAck | ( | void | ) | const | 
Definition at line 107 of file mac-low-transmission-parameters.cc.
References ACK_NORMAL, and m_waitAck.
Referenced by ns3::MacLow::ReceiveOk(), and ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:| bool ns3::MacLowTransmissionParameters::MustWaitSuperFastAck | ( | void | ) | const | 
Definition at line 119 of file mac-low-transmission-parameters.cc.
References ACK_SUPER_FAST, and m_waitAck.
Referenced by ns3::MacLow::StartDataTxTimers().
 Here is the caller graph for this function:
      
  | 
  friend | 
Serialize MacLowTransmissionParameters to ostream in a human-readable form.
| os | std::ostream | 
| params | MacLowTransmissionParameters | 
Definition at line 161 of file mac-low-transmission-parameters.cc.
      
  | 
  private | 
the next size
Definition at line 176 of file mac-low-transmission-parameters.h.
Referenced by DisableNextData(), EnableNextData(), GetNextPacketSize(), HasNextPacket(), and ns3::operator<<().
      
  | 
  private | 
send an RTS?
Definition at line 188 of file mac-low-transmission-parameters.h.
Referenced by DisableRts(), EnableRts(), MustSendRts(), and ns3::operator<<().
| enum { ... } ns3::MacLowTransmissionParameters::m_waitAck | 
wait ack enumerated type
wait ack
Referenced by DisableAck(), EnableAck(), EnableBasicBlockAck(), EnableCompressedBlockAck(), EnableFastAck(), EnableMultiTidBlockAck(), EnableSuperFastAck(), MustWaitAck(), MustWaitBasicBlockAck(), MustWaitCompressedBlockAck(), MustWaitFastAck(), MustWaitMultiTidBlockAck(), MustWaitNormalAck(), MustWaitSuperFastAck(), and ns3::operator<<().