add support for block ack in MacLowTransmissionParameters

This commit is contained in:
Mirko Banchi
2010-02-03 20:34:50 +01:00
parent cf232568a6
commit e2faaaf1df
2 changed files with 73 additions and 1 deletions

View File

@@ -146,6 +146,21 @@ MacLowTransmissionParameters::EnableSuperFastAck (void)
{
m_waitAck = ACK_SUPER_FAST;
}
void
MacLowTransmissionParameters::EnableBasicBlockAck (void)
{
m_waitAck = BLOCK_ACK_BASIC;
}
void
MacLowTransmissionParameters::EnableCompressedBlockAck (void)
{
m_waitAck = BLOCK_ACK_COMPRESSED;
}
void
MacLowTransmissionParameters::EnableMultiTidBlockAck (void)
{
m_waitAck = BLOCK_ACK_MULTI_TID;
}
void
MacLowTransmissionParameters::EnableFastAck (void)
{
@@ -191,6 +206,21 @@ MacLowTransmissionParameters::MustWaitSuperFastAck (void) const
{
return (m_waitAck == ACK_SUPER_FAST);
}
bool
MacLowTransmissionParameters::MustWaitBasicBlockAck (void) const
{
return (m_waitAck == BLOCK_ACK_BASIC)?true:false;
}
bool
MacLowTransmissionParameters::MustWaitCompressedBlockAck (void) const
{
return (m_waitAck == BLOCK_ACK_COMPRESSED)?true:false;
}
bool
MacLowTransmissionParameters::MustWaitMultiTidBlockAck (void) const
{
return (m_waitAck == BLOCK_ACK_MULTI_TID)?true:false;
}
bool
MacLowTransmissionParameters::MustSendRts (void) const
{
@@ -239,6 +269,15 @@ std::ostream &operator << (std::ostream &os, const MacLowTransmissionParameters
case MacLowTransmissionParameters::ACK_SUPER_FAST:
os << "super-fast";
break;
case MacLowTransmissionParameters::BLOCK_ACK_BASIC:
os << "basic-block-ack";
break;
case MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED:
os << "compressed-block-ack";
break;
case MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID:
os << "multi-tid-block-ack";
break;
}
os << "]";
return os;

View File

@@ -156,6 +156,18 @@ public:
* MacLowTransmissionListener::MissedAck
*/
void EnableSuperFastAck (void);
/**
* Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.
*/
void EnableBasicBlockAck (void);
/**
* Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.
*/
void EnableCompressedBlockAck (void);
/**
* NOT IMPLEMENTED FOR NOW
*/
void EnableMultiTidBlockAck (void);
/**
* Send a RTS, and wait CTSTimeout for a CTS. If we get a
* CTS on time, call MacLowTransmissionListener::GotCts
@@ -232,6 +244,24 @@ public:
* \sa EnableSuperFastAck
*/
bool MustWaitSuperFastAck (void) const;
/**
* \returns true if block ack mechanism is used, false otherwise.
*
* \sa EnableBlockAck
*/
bool MustWaitBasicBlockAck (void) const;
/**
* \returns true if compressed block ack mechanism is used, false otherwise.
*
* \sa EnableCompressedBlockAck
*/
bool MustWaitCompressedBlockAck (void) const;
/**
* \returns true if multi-tid block ack mechanism is used, false otherwise.
*
* \sa EnableMultiTidBlockAck
*/
bool MustWaitMultiTidBlockAck (void) const;
/**
* \returns true if RTS should be sent and CTS waited for before
* sending data, false otherwise.
@@ -262,7 +292,10 @@ private:
ACK_NONE,
ACK_NORMAL,
ACK_FAST,
ACK_SUPER_FAST
ACK_SUPER_FAST,
BLOCK_ACK_BASIC,
BLOCK_ACK_COMPRESSED,
BLOCK_ACK_MULTI_TID
} m_waitAck;
bool m_sendRts;
Time m_overrideDurationId;