Public Types | Public Member Functions | Friends

ns3::OriginatorBlockAckAgreement Class Reference

Inheritance diagram for ns3::OriginatorBlockAckAgreement:
Inheritance graph
[legend]
Collaboration diagram for ns3::OriginatorBlockAckAgreement:
Collaboration graph
[legend]

List of all members.

Public Types

enum  State { PENDING, ESTABLISHED, INACTIVE, UNSUCCESSFUL }

Public Member Functions

 OriginatorBlockAckAgreement (Mac48Address recipient, uint8_t tid)
void SetState (enum State state)
bool IsPending (void) const
bool IsEstablished (void) const
bool IsInactive (void) const
bool IsUnsuccessful (void) const
void NotifyMpduTransmission (void)
bool NeedBlockAckRequest (void) const
void CompleteExchange (void)

Friends

class BlockAckManager

Member Enumeration Documentation

Represents the state for this agreement.

PENDING: If an agreement is in PENDING state it means that an ADDBARequest frame was sent to recipient in order to setup the block ack and the originator is waiting for the relative ADDBAResponse frame.

ESTABLISHED: The block ack is active and all packets relative to this agreement are transmitted with ack policy set to block ack.

INACTIVE: In our implementation, block ack tear-down happens only if an inactivity timeout occurs so we could have an active block ack but a number of packets that doesn't reach the value of m_blockAckThreshold (see ns3::BlockAckManager). In these conditions the agreement becomes INACTIVE until that the number of packets reaches the value of m_blockAckThreshold again.

UNSUCCESSFUL (not used for now): The agreement's state becomes UNSUCCESSFUL if:

  • its previous state was PENDING and an ADDBAResponse frame wasn't received from recipient station within an interval of time defined by m_bAckSetupTimeout attribute in ns3::WifiMac.
  • an ADDBAResponse frame is received from recipient and the Status Code field is set to failure.

In both cases for station addressed by BlockAckAgreement::m_peer and for TID BlockAckAgreement::m_tid block ack mechanism won't be used.


Member Function Documentation

bool ns3::OriginatorBlockAckAgreement::NeedBlockAckRequest ( void   )  const

Returns true if all packets for which a block ack was negotiated have been transmitted so a block ack request is needed in order to acknowledge them.

void ns3::OriginatorBlockAckAgreement::NotifyMpduTransmission ( void   ) 

Notifies a packet's transmission with ack policy Block Ack.


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