Public Member Functions | Friends

ns3::MacLowTransmissionParameters Class Reference

control how a packet is transmitted. More...

#include <mac-low.h>

Collaboration diagram for ns3::MacLowTransmissionParameters:
Collaboration graph
[legend]

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

void ns3::MacLowTransmissionParameters::DisableAck ( void   ) 

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

void ns3::MacLowTransmissionParameters::DisableNextData ( void   ) 

Do not attempt to send data burst after current transmission

void ns3::MacLowTransmissionParameters::DisableOverrideDurationId ( void   ) 

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

void ns3::MacLowTransmissionParameters::DisableRts ( void   ) 

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

void ns3::MacLowTransmissionParameters::EnableAck ( void   ) 

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

void ns3::MacLowTransmissionParameters::EnableBasicBlockAck ( void   ) 

Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.

void ns3::MacLowTransmissionParameters::EnableCompressedBlockAck ( void   ) 

Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.

void ns3::MacLowTransmissionParameters::EnableFastAck ( void   ) 

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

void ns3::MacLowTransmissionParameters::EnableMultiTidBlockAck ( void   ) 

NOT IMPLEMENTED FOR NOW

void ns3::MacLowTransmissionParameters::EnableNextData ( uint32_t  size  ) 
Parameters:
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::StartNext at the end of the current transmission + SIFS.

void ns3::MacLowTransmissionParameters::EnableOverrideDurationId ( Time  durationId  ) 
Parameters:
durationId the 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.

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.

void ns3::MacLowTransmissionParameters::EnableSuperFastAck ( void   ) 
Time ns3::MacLowTransmissionParameters::GetDurationId ( void   )  const
Returns:
the duration/id forced by EnableOverrideDurationId
uint32_t ns3::MacLowTransmissionParameters::GetNextPacketSize ( void   )  const
Returns:
the size specified by EnableNextData.
bool ns3::MacLowTransmissionParameters::HasDurationId ( void   )  const
Returns:
true if a duration/id was forced with EnableOverrideDurationId, false otherwise.
bool ns3::MacLowTransmissionParameters::HasNextPacket ( void   )  const
Returns:
true if EnableNextData was called, false otherwise.
bool ns3::MacLowTransmissionParameters::MustSendRts ( void   )  const
Returns:
true if RTS should be sent and CTS waited for before sending data, false otherwise.
bool ns3::MacLowTransmissionParameters::MustWaitAck ( void   )  const
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.

bool ns3::MacLowTransmissionParameters::MustWaitBasicBlockAck ( void   )  const
Returns:
true if block ack mechanism is used, false otherwise.
See also:
EnableBlockAck
bool ns3::MacLowTransmissionParameters::MustWaitCompressedBlockAck ( void   )  const
Returns:
true if compressed block ack mechanism is used, false otherwise.
See also:
EnableCompressedBlockAck
bool ns3::MacLowTransmissionParameters::MustWaitFastAck ( void   )  const
Returns:
true if fast ack protocol should be used, false otherwise.
See also:
EnableFastAck
bool ns3::MacLowTransmissionParameters::MustWaitMultiTidBlockAck ( void   )  const
Returns:
true if multi-tid block ack mechanism is used, false otherwise.
See also:
EnableMultiTidBlockAck
bool ns3::MacLowTransmissionParameters::MustWaitNormalAck ( void   )  const
Returns:
true if normal ACK protocol should be used, false otherwise.
See also:
EnableAck
bool ns3::MacLowTransmissionParameters::MustWaitSuperFastAck ( void   )  const
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 file: