#include <PrimitiveFrameSequences.h>
◆ completeStep()
Implements inet::ieee80211::IFrameSequence.
424 auto receiveStep = check_and_cast<IReceiveStep *>(context->getStep(
firstStep +
step));
426 auto receivedPacket = receiveStep->getReceivedFrame();
427 const auto& receivedHeader = receivedPacket->peekAtFront<Ieee80211MacHeader>();
428 return context->isForUs(receivedHeader) && receivedHeader->getType() ==
ST_BLOCKACK;
431 throw cRuntimeError(
"Unknown step");
◆ getHistory()
| virtual std::string inet::ieee80211::BlockAckReqBlockAckFs::getHistory |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ prepareStep()
Implements inet::ieee80211::IFrameSequence.
395 auto blockAckReqParams = context->getQoSContext()->ackPolicy->computeBlockAckReqParameters(context->getInProgressFrames(), context->getQoSContext()->txopProcedure);
396 auto receiverAddr = std::get<0>(blockAckReqParams);
397 auto startingSequenceNumber = std::get<1>(blockAckReqParams);
398 auto tid = std::get<2>(blockAckReqParams);
399 auto blockAckReq = context->getQoSContext()->blockAckProcedure->buildBasicBlockAckReqFrame(receiverAddr, tid, startingSequenceNumber);
400 auto blockAckPacket =
new Packet(
"BasicBlockAckReq", blockAckReq);
401 blockAckPacket->insertAtBack(makeShared<Ieee80211MacTrailer>());
402 return new TransmitStep(blockAckPacket, context->getIfs(),
true);
405 auto txStep = check_and_cast<ITransmitStep *>(context->getLastStep());
406 auto packet = txStep->getFrameToTransmit();
407 auto blockAckReq = packet->peekAtFront<Ieee80211BlockAckReq>();
408 return new ReceiveStep(context->getQoSContext()->ackPolicy->getBlockAckTimeout(packet, blockAckReq));
413 throw cRuntimeError(
"Unknown step");
◆ startSequence()
| void inet::ieee80211::BlockAckReqBlockAckFs::startSequence |
( |
FrameSequenceContext * |
context, |
|
|
int |
firstStep |
|
) |
| |
|
overridevirtual |
◆ firstStep
| int inet::ieee80211::BlockAckReqBlockAckFs::firstStep = -1 |
|
protected |
◆ step
| int inet::ieee80211::BlockAckReqBlockAckFs::step = -1 |
|
protected |
The documentation for this class was generated from the following files: