|
INET Framework for OMNeT++/OMNEST
|
IP traffic generator application.
More...
#include <IpvxTrafGen.h>
IP traffic generator application.
See NED for more info.
◆ Kinds
◆ IpvxTrafGen()
| inet::IpvxTrafGen::IpvxTrafGen |
( |
| ) |
|
◆ ~IpvxTrafGen()
| inet::IpvxTrafGen::~IpvxTrafGen |
( |
| ) |
|
|
virtual |
34 cancelAndDelete(
timer);
◆ cancelNextPacket()
| void inet::IpvxTrafGen::cancelNextPacket |
( |
| ) |
|
|
protectedvirtual |
◆ chooseDestAddr()
| L3Address inet::IpvxTrafGen::chooseDestAddr |
( |
| ) |
|
|
protectedvirtual |
◆ handleCrashOperation()
◆ handleMessageWhenUp()
| void inet::IpvxTrafGen::handleMessageWhenUp |
( |
cMessage * |
msg | ) |
|
|
overrideprotectedvirtual |
Implements inet::OperationalMixin< cSimpleModule >.
82 if (msg->getKind() ==
START) {
84 const char *destAddrs = par(
"destAddresses");
85 cStringTokenizer tokenizer(destAddrs);
87 while ((token = tokenizer.nextToken()) !=
nullptr) {
89 L3AddressResolver().tryResolve(token, result);
90 if (result.isUnspecified())
91 EV_ERROR <<
"cannot resolve destination address: " << token << endl;
◆ handleStartOperation()
◆ handleStopOperation()
◆ initialize()
| void inet::IpvxTrafGen::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::OperationalMixin< cSimpleModule >.
42 int protocolId = par(
"protocol");
43 if (protocolId < 143 || protocolId > 254)
44 throw cRuntimeError(
"invalid protocol id %d, accepts only between 143 and 254", protocolId);
47 std::string name =
"prot_" + std::to_string(protocolId);
48 protocol =
new Protocol(name.c_str(), name.c_str());
56 throw cRuntimeError(
"Invalid startTime/stopTime parameters");
61 timer =
new cMessage(
"sendTimer");
◆ isEnabled()
| bool inet::IpvxTrafGen::isEnabled |
( |
| ) |
|
|
protectedvirtual |
◆ numInitStages()
| virtual int inet::IpvxTrafGen::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ printPacket()
| void inet::IpvxTrafGen::printPacket |
( |
Packet * |
msg | ) |
|
|
protectedvirtual |
174 auto *
ctrl = msg->getControlInfo();
175 if (
ctrl !=
nullptr) {
178 Ptr<const L3AddressTagBase> addresses = msg->findTag<L3AddressReq>();
179 if (addresses ==
nullptr)
181 if (addresses !=
nullptr) {
182 src = addresses->getSrcAddress();
183 dest = addresses->getDestAddress();
186 EV_INFO << msg << endl;
187 EV_INFO <<
"Payload length: " << msg->getByteLength() <<
" bytes" << endl;
190 EV_INFO <<
"src: " << src <<
" dest: " << dest <<
" protocol=" <<
protocol <<
"\n";
Referenced by processPacket(), and sendPacket().
◆ processPacket()
| void inet::IpvxTrafGen::processPacket |
( |
Packet * |
msg | ) |
|
|
protectedvirtual |
◆ refreshDisplay()
| void inet::IpvxTrafGen::refreshDisplay |
( |
| ) |
const |
|
overrideprotectedvirtual |
112 getDisplayString().setTagArg(
"t", 0, buf);
◆ scheduleNextPacket()
| void inet::IpvxTrafGen::scheduleNextPacket |
( |
simtime_t |
previous | ) |
|
|
protectedvirtual |
◆ sendPacket()
| void inet::IpvxTrafGen::sendPacket |
( |
| ) |
|
|
protectedvirtual |
149 sprintf(msgName,
"appData-%d",
numSent);
151 Packet *packet =
new Packet(msgName);
153 payload->addTag<CreationTimeTag>()->setCreationTime(simTime());
154 packet->insertAtBack(payload);
158 IL3AddressType *addressType = destAddr.getAddressType();
161 packet->addTag<L3AddressReq>()->setDestAddress(destAddr);
163 EV_INFO <<
"Sending packet: ";
166 send(packet,
"ipOut");
Referenced by handleMessageWhenUp().
◆ startApp()
| void inet::IpvxTrafGen::startApp |
( |
| ) |
|
|
protectedvirtual |
◆ ipvxTrafGenClearProtocols
| void ipvxTrafGenClearProtocols |
( |
| ) |
|
|
friend |
◆ allocatedProtocols
| std::vector< const Protocol * > inet::IpvxTrafGen::allocatedProtocols |
|
staticprotected |
◆ destAddresses
| std::vector<L3Address> inet::IpvxTrafGen::destAddresses |
|
protected |
◆ numPackets
| int inet::IpvxTrafGen::numPackets = 0 |
|
protected |
◆ numReceived
| int inet::IpvxTrafGen::numReceived = 0 |
|
protected |
◆ numSent
| int inet::IpvxTrafGen::numSent = 0 |
|
protected |
◆ packetLengthPar
| cPar* inet::IpvxTrafGen::packetLengthPar = nullptr |
|
protected |
◆ protocol
| const Protocol* inet::IpvxTrafGen::protocol = nullptr |
|
protected |
◆ sendIntervalPar
| cPar* inet::IpvxTrafGen::sendIntervalPar = nullptr |
|
protected |
◆ startTime
| simtime_t inet::IpvxTrafGen::startTime |
|
protected |
◆ stopTime
| simtime_t inet::IpvxTrafGen::stopTime |
|
protected |
◆ timer
| cMessage* inet::IpvxTrafGen::timer = nullptr |
|
protected |
The documentation for this class was generated from the following files:
int getProtocolNumber(const Protocol *protocol) const
Definition: ProtocolGroup.cc:46
virtual void startApp()
Definition: IpvxTrafGen.cc:73
virtual void printPacket(Packet *msg)
Definition: IpvxTrafGen.cc:170
const Protocol * protocol
Definition: IpvxTrafGen.h:34
int numPackets
Definition: IpvxTrafGen.h:36
virtual void scheduleNextPacket(simtime_t previous)
Definition: IpvxTrafGen.cc:115
virtual void processPacket(Packet *msg)
Definition: IpvxTrafGen.cc:193
virtual L3Address chooseDestAddr()
Definition: IpvxTrafGen.cc:140
virtual void initialize(int stage) override
Definition: OperationalMixinImpl.h:26
const Protocol * findProtocol(int protocolNumber) const
Definition: ProtocolGroup.cc:25
removed DscpReq Ipv4ControlInfo Ipv6ControlInfo up L3AddressInd DispatchProtocolReq L4PortInd Ipv4ControlInfo Ipv6ControlInfo down DispatchProtocolReq
Definition: IUdp-gates.txt:25
removed DscpReq Ipv4ControlInfo Ipv6ControlInfo up L3AddressInd L3AddressInd
Definition: IUdp-gates.txt:20
int numSent
Definition: IpvxTrafGen.h:42
simsignal_t packetSentSignal
Definition: Simsignals.cc:96
void addProtocol(int protocolId, const Protocol *protocol)
Definition: ProtocolGroup.cc:55
removed DscpReq Ipv4ControlInfo Ipv6ControlInfo up L3AddressInd DispatchProtocolReq L4PortInd Ipv4ControlInfo Ipv6ControlInfo down PacketProtocolTag
Definition: IUdp-gates.txt:25
removed ctrl
Definition: IUdp-gates.txt:7
intscale< b, 1, 8 > B
Definition: Units.h:1168
simsignal_t packetReceivedSignal
Definition: Simsignals.cc:97
virtual void sendPacket()
Definition: IpvxTrafGen.cc:146
cPar * sendIntervalPar
Definition: IpvxTrafGen.h:32
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
const double k
Definition: Qam1024Modulation.cc:14
virtual bool isEnabled()
Definition: IpvxTrafGen.cc:135
@ START
Definition: IpvxTrafGen.h:27
INET_API InitStage INITSTAGE_APPLICATION_LAYER
Initialization of applications.
simtime_t startTime
Definition: IpvxTrafGen.h:30
std::vector< L3Address > destAddresses
Definition: IpvxTrafGen.h:35
static ProtocolGroup ipprotocol
Definition: ProtocolGroup.h:42
cPar * packetLengthPar
Definition: IpvxTrafGen.h:33
virtual void cancelNextPacket()
Definition: IpvxTrafGen.cc:130
virtual void refreshDisplay() const override
Definition: OperationalMixinImpl.h:200
void registerProtocol(const Protocol &protocol, cGate *gate, ServicePrimitive servicePrimitive)
Registers a protocol primitive (PDU processing) at the given gate.
Definition: IProtocolRegistrationListener.cc:83
static std::vector< const Protocol * > allocatedProtocols
Definition: IpvxTrafGen.h:44
int numReceived
Definition: IpvxTrafGen.h:43
@ NEXT
Definition: IpvxTrafGen.h:27
simtime_t stopTime
Definition: IpvxTrafGen.h:31
cMessage * timer
Definition: IpvxTrafGen.h:39