#include <DcfFs.h>
|
| | DcfFs () |
| |
| virtual int | selectDcfSequence (AlternativesFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual int | selectSelfCtsOrRtsCts (AlternativesFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual int | selectMulticastDataOrMgmt (AlternativesFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | hasMoreFragments (RepeatingFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | isSelfCtsNeeded (OptionalFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | isRtsCtsNeeded (OptionalFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | isCtsOrRtsCtsNeeded (OptionalFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | isBroadcastManagementOrGroupDataSequenceNeeded (AlternativesFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual bool | isFragFrameSequenceNeeded (AlternativesFs *frameSequence, FrameSequenceContext *context) |
| |
| virtual | ~AlternativesFs () |
| |
| | AlternativesFs (std::vector< IFrameSequence * > elements, std::function< int(AlternativesFs *, FrameSequenceContext *)> selector) |
| |
| virtual int | getStep () |
| |
| virtual int | selectSequence (FrameSequenceContext *context) |
| |
| virtual void | startSequence (FrameSequenceContext *context, int firstStep) override |
| |
| virtual IFrameSequenceStep * | prepareStep (FrameSequenceContext *context) override |
| |
| virtual bool | completeStep (FrameSequenceContext *context) override |
| |
| virtual std::string | getHistory () const override |
| |
| virtual | ~IFrameSequence () |
| |
◆ DcfFs()
| inet::ieee80211::DcfFs::DcfFs |
( |
| ) |
|
26 new SequentialFs({
new OptionalFs(
new AlternativesFs({
new SelfCtsFs(),
new SequentialFs({
new RtsFs(),
new CtsFs()})},
30 new LastFrameAckFs()})},
◆ hasMoreFragments()
55 return context->getInProgressFrames()->hasInProgressFrames() && context->getInProgressFrames()->getFrameToTransmit()->peekAtFront<Ieee80211MacHeader>()->getMoreFragments();
Referenced by DcfFs().
◆ isBroadcastManagementOrGroupDataSequenceNeeded()
78 if (context->getInProgressFrames()->hasInProgressFrames()) {
79 auto frameToTransmit = context->getInProgressFrames()->getFrameToTransmit();
80 return frameToTransmit->peekAtFront<Ieee80211MacHeader>()->getReceiverAddress().isMulticast();
Referenced by selectDcfSequence().
◆ isCtsOrRtsCtsNeeded()
73 return selfCts || rtsCts;
Referenced by DcfFs().
◆ isFragFrameSequenceNeeded()
94 return context->getInProgressFrames()->hasInProgressFrames() && dynamicPtrCast<const Ieee80211DataOrMgmtHeader>(context->getInProgressFrames()->getFrameToTransmit()->peekAtFront<Ieee80211MacHeader>());
Referenced by selectDcfSequence().
◆ isRtsCtsNeeded()
65 auto protectedFrame = context->getInProgressFrames()->getFrameToTransmit();
66 return context->getRtsPolicy()->isRtsNeeded(protectedFrame, protectedFrame->peekAtFront<Ieee80211MacHeader>());
Referenced by isCtsOrRtsCtsNeeded(), and selectSelfCtsOrRtsCts().
◆ isSelfCtsNeeded()
◆ selectDcfSequence()
39 if (multicastMgmtOrDataSequence)
return 0;
40 else if (fragFrameSequence)
return 1;
41 else throw cRuntimeError(
"One alternative must be chosen");
◆ selectMulticastDataOrMgmt()
88 auto frameToTransmit = context->getInProgressFrames()->getFrameToTransmit();
89 return dynamicPtrCast<const Ieee80211MgmtHeader>(frameToTransmit->peekAtFront<Ieee80211MacHeader>()) ? 0 : 1;
Referenced by DcfFs().
◆ selectSelfCtsOrRtsCts()
48 if (selfCts)
return 0;
49 else if (rtsCts)
return 1;
50 else throw cRuntimeError(
"One alternative must be chosen");
Referenced by DcfFs().
The documentation for this class was generated from the following files: