INET Framework for OMNeT++/OMNEST
inet::LengthBasedFragmenterPolicy Class Reference

#include <LengthBasedFragmenterPolicy.h>

Inheritance diagram for inet::LengthBasedFragmenterPolicy:
inet::IFragmenterPolicy

Protected Member Functions

virtual void initialize (int stage) override
 
virtual std::vector< bcomputeFragmentLengths (Packet *packet) const override
 

Protected Attributes

b minFragmentLength = b(-1)
 
b maxFragmentLength = b(-1)
 
b roundingLength = b(-1)
 
b fragmentHeaderLength = b(-1)
 

Additional Inherited Members

Member Function Documentation

◆ computeFragmentLengths()

std::vector< b > inet::LengthBasedFragmenterPolicy::computeFragmentLengths ( Packet packet) const
overrideprotectedvirtual

Implements inet::IFragmenterPolicy.

25 {
26  Enter_Method("computeFragmentLengths");
27  std::vector<b> fragmentLengths;
28  if (maxFragmentLength >= packet->getTotalLength())
29  fragmentLengths.push_back(packet->getTotalLength());
30  else {
31  b remainingLength = packet->getTotalLength();
32  for (int i = 0; fragmentHeaderLength + remainingLength > maxFragmentLength; i++) {
33  auto fragmentLength = maxFragmentLength - fragmentHeaderLength;
34  fragmentLengths.push_back(fragmentLength);
35  remainingLength -= fragmentLength;
36  }
37  if (remainingLength != b(0))
38  fragmentLengths.push_back(remainingLength);
39  }
40  return fragmentLengths;
41 }

◆ initialize()

void inet::LengthBasedFragmenterPolicy::initialize ( int  stage)
overrideprotectedvirtual
15 {
16  if (stage == INITSTAGE_LOCAL) {
17  minFragmentLength = b(par("minFragmentLength"));
18  maxFragmentLength = b(par("maxFragmentLength"));
19  roundingLength = b(par("roundingLength"));
20  fragmentHeaderLength = b(par("fragmentHeaderLength"));
21  }
22 }

Member Data Documentation

◆ fragmentHeaderLength

b inet::LengthBasedFragmenterPolicy::fragmentHeaderLength = b(-1)
protected

◆ maxFragmentLength

b inet::LengthBasedFragmenterPolicy::maxFragmentLength = b(-1)
protected

◆ minFragmentLength

b inet::LengthBasedFragmenterPolicy::minFragmentLength = b(-1)
protected

Referenced by initialize().

◆ roundingLength

b inet::LengthBasedFragmenterPolicy::roundingLength = b(-1)
protected

Referenced by initialize().


The documentation for this class was generated from the following files:
inet::LengthBasedFragmenterPolicy::maxFragmentLength
b maxFragmentLength
Definition: LengthBasedFragmenterPolicy.h:19
inet::LengthBasedFragmenterPolicy::minFragmentLength
b minFragmentLength
Definition: LengthBasedFragmenterPolicy.h:18
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::LengthBasedFragmenterPolicy::fragmentHeaderLength
b fragmentHeaderLength
Definition: LengthBasedFragmenterPolicy.h:21
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::LengthBasedFragmenterPolicy::roundingLength
b roundingLength
Definition: LengthBasedFragmenterPolicy.h:20