ns-3
ns3::MacLowTransmissionParameters Class Reference

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

#include <mac-low.h>

List of all members.

Public Member Functions

void EnableAck (void)
void EnableFastAck (void)
void EnableSuperFastAck (void)
void EnableBasicBlockAck (void)
void EnableCompressedBlockAck (void)
void EnableMultiTidBlockAck (void)
void EnableRts (void)
void EnableNextData (uint32_t size)
void EnableOverrideDurationId (Time durationId)
void DisableAck (void)
void DisableRts (void)
void DisableNextData (void)
void DisableOverrideDurationId (void)
bool MustWaitAck (void) const
bool MustWaitNormalAck (void) const
bool MustWaitFastAck (void) const
bool MustWaitSuperFastAck (void) const
bool MustWaitBasicBlockAck (void) const
bool MustWaitCompressedBlockAck (void) const
bool MustWaitMultiTidBlockAck (void) const
bool MustSendRts (void) const
bool HasDurationId (void) const
Time GetDurationId (void) const
bool HasNextPacket (void) const
uint32_t GetNextPacketSize (void) const

Friends

std::ostream & operator<< (std::ostream &os, const MacLowTransmissionParameters &params)

Detailed Description

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.


Member Function Documentation

Do not wait for Ack after data transmission. Typically used for Broadcast and multicast frames.

Do not attempt to send data burst after current transmission

Do not force the duration/id field of the packet: its value is automatically calculated by the MacLow before calling WifiPhy::Send.

References ns3::Seconds().

Do not send rts and wait for cts before sending data.

Wait ACKTimeout for an ACK. If we get an ACK on time, call MacLowTransmissionListener::GotAck. Call MacLowTransmissionListener::MissedAck otherwise.

Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.

Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.

This is really complicated but it is needed for proper HCCA support.

NOT IMPLEMENTED FOR NOW

Parameters:
sizesize 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::StartNext at the end of the current transmission + SIFS.

Parameters:
durationIdthe value to set in the duration/Id field of the outgoing packet.

Ignore all other durationId calculation and simply force the packet's durationId field to this value.

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.

Returns:
the duration/id forced by EnableOverrideDurationId

References NS_ASSERT, and ns3::Seconds().

Returns:
the size specified by EnableNextData.

References HasNextPacket(), and NS_ASSERT.

Referenced by ns3::MacLow::CalculateTransmissionTime().

Returns:
true if a duration/id was forced with EnableOverrideDurationId, false otherwise.

References ns3::Seconds().

Returns:
true if EnableNextData was called, false otherwise.

Referenced by ns3::MacLow::CalculateTransmissionTime(), GetNextPacketSize(), and ns3::MacLow::ReceiveOk().

Returns:
true if RTS should be sent and CTS waited for before sending data, false otherwise.

Referenced by ns3::MacLow::StartTransmission().

Returns:
true if must wait for ACK after data transmission, false otherwise.

This methods returns true when any of MustWaitNormalAck, MustWaitFastAck, or MustWaitSuperFastAck return true.

Referenced by ns3::MacLow::ReceiveOk().

Returns:
true if block ack mechanism is used, false otherwise.
See also:
EnableBlockAck

Referenced by ns3::MacLow::ReceiveOk().

Returns:
true if compressed block ack mechanism is used, false otherwise.
See also:
EnableCompressedBlockAck

Referenced by ns3::MacLow::ReceiveOk().

Returns:
true if fast ack protocol should be used, false otherwise.
See also:
EnableFastAck

Referenced by ns3::MacLow::ReceiveError(), and ns3::MacLow::ReceiveOk().

Returns:
true if multi-tid block ack mechanism is used, false otherwise.
See also:
EnableMultiTidBlockAck
Returns:
true if normal ACK protocol should be used, false otherwise.
See also:
EnableAck

Referenced by ns3::MacLow::ReceiveOk().

Returns:
true if super fast ack protocol should be used, false otherwise.
See also:
EnableSuperFastAck

The documentation for this class was generated from the following files: