A Discrete-Event Network Simulator
API
ns3::MacLowAggregationCapableTransmissionListener Class Referenceabstract

listen for block ack events. More...

#include "mac-low.h"

+ Inheritance diagram for ns3::MacLowAggregationCapableTransmissionListener:

Public Member Functions

 MacLowAggregationCapableTransmissionListener ()
 
virtual ~MacLowAggregationCapableTransmissionListener ()
 
virtual void BlockAckInactivityTimeout (Mac48Address originator, uint8_t tid)=0
 Typically is called in order to notify EdcaTxopN that a block ack inactivity timeout occurs for the block ack agreement identified by the pair originator, tid. More...
 
virtual void CompleteMpduTx (Ptr< const Packet > packet, WifiMacHeader hdr, Time tstamp)
 This function stores an MPDU (part of an A-MPDU) in blockackagreement (i.e. More...
 
virtual void CompleteTransfer (Mac48Address address, uint8_t tid)
 
virtual bool GetBlockAckAgreementExists (Mac48Address address, uint8_t tid)=0
 
virtual Mac48Address GetDestAddressForAggregation (const WifiMacHeader &hdr)
 
virtual Ptr< MpduAggregatorGetMpduAggregator (void) const
 
virtual Ptr< MsduAggregatorGetMsduAggregator (void) const
 
virtual uint16_t GetNextSequenceNumberfor (WifiMacHeader *hdr)
 Return the next sequence number for the given header. More...
 
virtual uint32_t GetNOutstandingPackets (Mac48Address recipient, uint8_t tid)
 
virtual uint32_t GetNRetryNeededPackets (Mac48Address recipient, uint8_t tid) const
 
virtual Ptr< WifiMacQueueGetQueue (void)=0
 Returns the EDCA queue to check if there are packets that can be aggregated with a Block Ack. More...
 
virtual Mac48Address GetSrcAddressForAggregation (const WifiMacHeader &hdr)
 
virtual Ptr< const PacketPeekNextPacketInBaQueue (WifiMacHeader &header, Mac48Address recipient, uint8_t tid, Time *timestamp)
 
virtual uint16_t PeekNextSequenceNumberfor (WifiMacHeader *hdr)
 Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e. More...
 
virtual void RemoveFromBaQueue (uint8_t tid, Mac48Address recipient, uint16_t seqnumber)
 Remove a packet after you peek in the retransmit queue and get it. More...
 
virtual void SetAmpdu (Mac48Address dest, bool enableAmpdu)
 

Detailed Description

listen for block ack events.

Definition at line 205 of file mac-low.h.

Constructor & Destructor Documentation

ns3::MacLowAggregationCapableTransmissionListener::MacLowAggregationCapableTransmissionListener ( )

Definition at line 70 of file mac-low.cc.

ns3::MacLowAggregationCapableTransmissionListener::~MacLowAggregationCapableTransmissionListener ( )
virtual

Definition at line 73 of file mac-low.cc.

Member Function Documentation

virtual void ns3::MacLowAggregationCapableTransmissionListener::BlockAckInactivityTimeout ( Mac48Address  originator,
uint8_t  tid 
)
pure virtual

Typically is called in order to notify EdcaTxopN that a block ack inactivity timeout occurs for the block ack agreement identified by the pair originator, tid.

Rx station maintains an inactivity timer for each block ack agreement. Timer is reset when a frame with ack policy block ack or a block ack request are received. When this timer reaches zero this method is called and a delba frame is scheduled for transmission.

Parameters
originatorMAC address of the data originator
tid

Implemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Referenced by ns3::MacLow::CreateBlockAckAgreement(), and ns3::MacLow::ResetBlockAckInactivityTimerIfNeeded().

+ Here is the caller graph for this function:

void ns3::MacLowAggregationCapableTransmissionListener::CompleteMpduTx ( Ptr< const Packet packet,
WifiMacHeader  hdr,
Time  tstamp 
)
virtual

This function stores an MPDU (part of an A-MPDU) in blockackagreement (i.e.

the sender is waiting for a blockack containing the sequence number of this MPDU). It also calls NotifyMpdu transmission that updates the status of OriginatorBlockAckAgreement.

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 83 of file mac-low.cc.

void ns3::MacLowAggregationCapableTransmissionListener::CompleteTransfer ( Mac48Address  address,
uint8_t  tid 
)
virtual
Parameters
addressaddress of peer station involved in block ack mechanism.
tidtraffic ID of transmitted packet.

Calls CompleteAmpduTransfer that resets the status of OriginatorBlockAckAgreement after the transfer of an A-MPDU with ImmediateBlockAck policy (i.e. no BAR is scheduled)

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 79 of file mac-low.cc.

virtual bool ns3::MacLowAggregationCapableTransmissionListener::GetBlockAckAgreementExists ( Mac48Address  address,
uint8_t  tid 
)
pure virtual
Parameters
recipientaddress of the peer station
tidtraffic ID.
Returns
true if a block ack agreement exists, false otherwise

Checks if a block ack agreement exists with station addressed by recipient for tid tid.

Implemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Mac48Address ns3::MacLowAggregationCapableTransmissionListener::GetDestAddressForAggregation ( const WifiMacHeader hdr)
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 131 of file mac-low.cc.

Ptr< MpduAggregator > ns3::MacLowAggregationCapableTransmissionListener::GetMpduAggregator ( void  ) const
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 121 of file mac-low.cc.

Ptr< MsduAggregator > ns3::MacLowAggregationCapableTransmissionListener::GetMsduAggregator ( void  ) const
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 116 of file mac-low.cc.

uint16_t ns3::MacLowAggregationCapableTransmissionListener::GetNextSequenceNumberfor ( WifiMacHeader hdr)
virtual

Return the next sequence number for the given header.

Parameters
hdrWi-Fi header
Returns
the next sequence number

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 87 of file mac-low.cc.

uint32_t ns3::MacLowAggregationCapableTransmissionListener::GetNOutstandingPackets ( Mac48Address  recipient,
uint8_t  tid 
)
virtual
Parameters
recipientaddress of peer station involved in block ack mechanism.
tidtraffic ID.
Returns
the number of packets buffered for a specified agreement

Returns number of packets buffered for a specified agreement.

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 106 of file mac-low.cc.

uint32_t ns3::MacLowAggregationCapableTransmissionListener::GetNRetryNeededPackets ( Mac48Address  recipient,
uint8_t  tid 
) const
virtual
Parameters
recipientaddress of peer station involved in block ack mechanism.
tidtraffic ID.
Returns
the number of packets for a specific agreement that need retransmission

Returns number of packets for a specific agreement that need retransmission.

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 111 of file mac-low.cc.

virtual Ptr<WifiMacQueue> ns3::MacLowAggregationCapableTransmissionListener::GetQueue ( void  )
pure virtual

Returns the EDCA queue to check if there are packets that can be aggregated with a Block Ack.

Implemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Mac48Address ns3::MacLowAggregationCapableTransmissionListener::GetSrcAddressForAggregation ( const WifiMacHeader hdr)
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 126 of file mac-low.cc.

Ptr< const Packet > ns3::MacLowAggregationCapableTransmissionListener::PeekNextPacketInBaQueue ( WifiMacHeader header,
Mac48Address  recipient,
uint8_t  tid,
Time timestamp 
)
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 97 of file mac-low.cc.

uint16_t ns3::MacLowAggregationCapableTransmissionListener::PeekNextSequenceNumberfor ( WifiMacHeader hdr)
virtual

Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e.

the current sequence number remains unchanged).

Parameters
hdrWi-Fi header
Returns
the next sequence number

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 92 of file mac-low.cc.

void ns3::MacLowAggregationCapableTransmissionListener::RemoveFromBaQueue ( uint8_t  tid,
Mac48Address  recipient,
uint16_t  seqnumber 
)
virtual

Remove a packet after you peek in the retransmit queue and get it.

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 102 of file mac-low.cc.

void ns3::MacLowAggregationCapableTransmissionListener::SetAmpdu ( Mac48Address  dest,
bool  enableAmpdu 
)
virtual

Reimplemented in ns3::EdcaTxopN::AggregationCapableTransmissionListener.

Definition at line 76 of file mac-low.cc.


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