DESERT 3.5.1
Loading...
Searching...
No Matches
uwApplicationModule Class Reference

#include <uwApplication_module.h>

Inheritance diagram for uwApplicationModule:
Collaboration diagram for uwApplicationModule:

Classes

class  uwSendTimerAppl
 

Public Member Functions

 uwApplicationModule ()
 
virtual ~uwApplicationModule ()
 
virtual int command (int argc, const char *const *argv)
 
virtual int crLayCommand (ClMessage *m)
 
virtual void handleTCPclient (int clnSock)
 
virtual void incrPktsPushQueue ()
 
unsigned long int getEpoch ()
 

Public Attributes

int servSockDescr
 
int clnSockDescr
 
struct sockaddr_in servAddr
 
struct sockaddr_in clnAddr
 
int servPort
 
std::queue< Packet * > queuePckReadTCP
 
std::queue< Packet * > queuePckReadUDP
 
std::ofstream out_log
 
bool logging
 
int node_id
 
int exp_id
 

Static Public Attributes

static uint MAX_READ_LEN = 64
 

Protected Member Functions

virtual void recv (Packet *)
 
virtual void statistics (Packet *p)
 
virtual void start_generation ()
 
virtual void init_Packet ()
 
virtual int openConnectionTCP ()
 
virtual void init_Packet_TCP ()
 
virtual int openConnectionUDP ()
 
virtual void init_Packet_UDP ()
 
virtual void stop ()
 
virtual bool withoutSocket ()
 
virtual bool useTCP ()
 
virtual bool usePoissonTraffic ()
 
virtual bool useDropOutOfOrder ()
 
virtual void incrPktSent ()
 
virtual void incrPktLost (const int &npkts)
 
virtual void incrPktRecv ()
 
virtual void incrPktOoseq ()
 
virtual void incrPktInvalid ()
 
virtual int getPktSent ()
 
virtual int getPktLost ()
 
virtual int getPktRecv ()
 
virtual int getPktsOOSequence ()
 
virtual int getPktsInvalidRx ()
 
virtual int getPktsPushQueue ()
 
virtual double getPeriod ()
 
virtual int getpayloadsize ()
 
virtual double getTimeBeforeNextPkt ()
 
virtual double GetRTT () const
 
virtual double GetRTTstd () const
 
virtual void updateRTT (const double &rtt)
 
virtual double GetFTT () const
 
virtual double GetFTTstd () const
 
virtual double GetPER () const
 
virtual double GetTHR () const
 
virtual void updateFTT (const double &ftt)
 
virtual void updateThroughput (const int &bytes, const double &dt)
 

Protected Attributes

int debug_
 
double PERIOD
 
int poisson_traffic
 
int payloadsize
 
int port_num
 
int drop_out_of_order
 
uint8_t dst_addr
 
uwSendTimerAppl chkTimerPeriod
 
bool socket_active
 
string socket_protocol
 
int tcp_udp
 
bool * sn_check
 
int uidcnt
 
int txsn
 
int rftt
 
int pkts_lost
 
int pkts_recv
 
int pkts_ooseq
 
int pkts_invalid
 
int pkts_push_queue
 
int pkts_last_reset
 
double lrtime
 
double sumrtt
 
double sumrtt2
 
int rttsamples
 
double sumftt
 
double sumftt2
 
int fttsamples
 
uint32_t esn
 
double sumbytes
 
double sumdt
 
int hrsn
 

Detailed Description

Definition at line 91 of file uwApplication_module.h.

Constructor & Destructor Documentation

◆ uwApplicationModule()

uwApplicationModule::uwApplicationModule ( )

Constructor of uwApplicationModule class.

Definition at line 70 of file uwApplication_module.cpp.

◆ ~uwApplicationModule()

uwApplicationModule::~uwApplicationModule ( )
virtual

Destructor of uwApplicationModule class.

Definition at line 133 of file uwApplication_module.cpp.

Member Function Documentation

◆ command()

int uwApplicationModule::command ( int  argc,
const char *const *  argv 
)
virtual

TCL command interpreter.

It implements the following OTCL methods:

Parameters
argcNumber of arguments in argv.
argvArray of strings which are the command parameters (Note that argv[0] is the name of the object).
Returns
TCL_OK or TCL_ERROR whether the command has been dispatched successfully or not.

Definition at line 138 of file uwApplication_module.cpp.

◆ crLayCommand()

int uwApplicationModule::crLayCommand ( ClMessage *  m)
virtual

Cross-Layer messages interpreter.

Parameters
ClMessage*an instance of ClMessage that represent the message received
Returns
0 if successful.

Definition at line 227 of file uwApplication_module.cpp.

◆ getEpoch()

unsigned long int uwApplicationModule::getEpoch ( )
inline

Calculate the epoch of the event.

Used in sea-trial mode

Returns
the epoch of the system

Definition at line 149 of file uwApplication_module.h.

◆ GetFTT()

double uwApplicationModule::GetFTT ( ) const
protectedvirtual

Returns the average Forward Trip Time.

Returns
the average Forward Trip Time

Definition at line 600 of file uwApplication_module.cpp.

◆ GetFTTstd()

double uwApplicationModule::GetFTTstd ( ) const
protectedvirtual

Return the standard deviation of the Forward Trip Time calculated.

Returns
the standard deviation of the Forward Trip Time calculated

Definition at line 606 of file uwApplication_module.cpp.

◆ getpayloadsize()

virtual int uwApplicationModule::getpayloadsize ( )
inlineprotectedvirtual

return the size of DATA packet payload

Returns
payloadsize

Definition at line 450 of file uwApplication_module.h.

◆ GetPER()

double uwApplicationModule::GetPER ( ) const
protectedvirtual

Rerturn the Packet Error Rate calculated.

Returns
the Packet Error Rate calculated

Definition at line 621 of file uwApplication_module.cpp.

◆ getPeriod()

virtual double uwApplicationModule::getPeriod ( )
inlineprotectedvirtual

return period generation time

Returns
PERIOD

Definition at line 440 of file uwApplication_module.h.

◆ getPktLost()

virtual int uwApplicationModule::getPktLost ( )
inlineprotectedvirtual

return the number of DATA packets lost by the server

Returns
pkts_lost

Definition at line 390 of file uwApplication_module.h.

◆ getPktRecv()

virtual int uwApplicationModule::getPktRecv ( )
inlineprotectedvirtual

return the number of DATA packet correctly received by the server

Returns
pkts_recv

Definition at line 400 of file uwApplication_module.h.

◆ getPktSent()

virtual int uwApplicationModule::getPktSent ( )
inlineprotectedvirtual

return the number of packets sent by the server

Returns
txsn

Definition at line 380 of file uwApplication_module.h.

◆ getPktsInvalidRx()

virtual int uwApplicationModule::getPktsInvalidRx ( )
inlineprotectedvirtual

return the number of DATA packets received with error by the server

Returns
pkts_invalid

Definition at line 420 of file uwApplication_module.h.

◆ getPktsOOSequence()

virtual int uwApplicationModule::getPktsOOSequence ( )
inlineprotectedvirtual

return the number of DATA packets received out of order by the server

Returns
pkts_ooseq

Definition at line 410 of file uwApplication_module.h.

◆ getPktsPushQueue()

virtual int uwApplicationModule::getPktsPushQueue ( )
inlineprotectedvirtual

return the number of DATA packets sotred in the server queue

Returns
pkts_push_queue

Definition at line 430 of file uwApplication_module.h.

◆ GetRTT()

double uwApplicationModule::GetRTT ( ) const
protectedvirtual

Returns the average Round Trip Time.

Returns
the average Round Trip Time

Definition at line 575 of file uwApplication_module.cpp.

◆ GetRTTstd()

double uwApplicationModule::GetRTTstd ( ) const
protectedvirtual

Return the standard deviation of the Round Trip Time calculated.

Returns
the standard deviation of the Round Trip Time calculated

Definition at line 581 of file uwApplication_module.cpp.

◆ GetTHR()

double uwApplicationModule::GetTHR ( ) const
protectedvirtual

Return the Throughput calculated [bps].

Returns
Throughput [bps]

Definition at line 638 of file uwApplication_module.cpp.

◆ getTimeBeforeNextPkt()

double uwApplicationModule::getTimeBeforeNextPkt ( )
protectedvirtual

Compute the DATA generation rate, that can be constant and equal to the PERIOD established by the user, or can occur with a Poisson process.

Returns
generation period for DATA packets

Definition at line 537 of file uwApplication_module.cpp.

◆ handleTCPclient()

void uwApplicationModule::handleTCPclient ( int  clnSock)
virtual

Handle the communication between server and client.

Parameters
clnSocksocket obtained after the accept function and use for the communication between server and client

Definition at line 174 of file uwApplication_TCP_socket.cpp.

◆ incrPktInvalid()

virtual void uwApplicationModule::incrPktInvalid ( )
inlineprotectedvirtual

Increse the number of DATA packets received with error by the server.

Definition at line 370 of file uwApplication_module.h.

◆ incrPktLost()

virtual void uwApplicationModule::incrPktLost ( const int &  npkts)
inlineprotectedvirtual

Increase the number of DATA packets lost by the server.

Definition at line 346 of file uwApplication_module.h.

◆ incrPktOoseq()

virtual void uwApplicationModule::incrPktOoseq ( )
inlineprotectedvirtual

Increase the number of DATA packets received out of order by the server.

Definition at line 362 of file uwApplication_module.h.

◆ incrPktRecv()

virtual void uwApplicationModule::incrPktRecv ( )
inlineprotectedvirtual

Increase the number of DATA packet correctly received by the server.

Definition at line 354 of file uwApplication_module.h.

◆ incrPktSent()

virtual void uwApplicationModule::incrPktSent ( )
inlineprotectedvirtual

Increase the sequence number and so the number of packets sent by the server.

Definition at line 338 of file uwApplication_module.h.

◆ incrPktsPushQueue()

virtual void uwApplicationModule::incrPktsPushQueue ( )
inlinevirtual

Increase the number of DATA packets stored in the Server queue.

This DATA packets will be sent to the below levels of ISO/OSI stack protocol.

Definition at line 139 of file uwApplication_module.h.

◆ init_Packet()

void uwApplicationModule::init_Packet ( )
protectedvirtual

Set all the field of the DATA packet that must be send down after the creation to the below level.

In this case the payload of DATA packet are generated in a random way.

Definition at line 424 of file uwApplication_module.cpp.

◆ init_Packet_TCP()

void uwApplicationModule::init_Packet_TCP ( )
protectedvirtual

Set all the field of DATA packet and take from the specific queue the payload of DATA packet that will be transmitted.

After that put down to the layer below

Definition at line 237 of file uwApplication_TCP_socket.cpp.

◆ init_Packet_UDP()

void uwApplicationModule::init_Packet_UDP ( )
protectedvirtual

Set all the field of DATA packet and take from the specific queue the payload of DATA packet that will be transmitted.

After that put down to the layer below

Definition at line 200 of file uwApplication_UDP_socket.cpp.

◆ openConnectionTCP()

int uwApplicationModule::openConnectionTCP ( )
protectedvirtual

When socket communication is used, this method establish a connection between client and server.

This is required because a TCP protocol is used.

Definition at line 50 of file uwApplication_TCP_socket.cpp.

◆ openConnectionUDP()

int uwApplicationModule::openConnectionUDP ( )
protectedvirtual

When socket communication is used, this method establish a connection between client and server.

This is required because a UDP protocol is used.

Definition at line 50 of file uwApplication_UDP_socket.cpp.

◆ recv()

void uwApplicationModule::recv ( Packet *  p)
protectedvirtual

Handle the transmission of DATA packets between CBR layer and the below level.

Definition at line 236 of file uwApplication_module.cpp.

◆ start_generation()

void uwApplicationModule::start_generation ( )
protectedvirtual

Start the process to generate DATA packets without sockets.

In this case the payload of DATA packets are filled with a randomly sequence or with a pattern sequence.

Definition at line 412 of file uwApplication_module.cpp.

◆ statistics()

void uwApplicationModule::statistics ( Packet *  p)
protectedvirtual

Comupte some statistics as the number of packets sent and receive between two layer, or control if the packet received is out of sequence.

Definition at line 271 of file uwApplication_module.cpp.

◆ stop()

void uwApplicationModule::stop ( )
protectedvirtual

Close the socket connection in the case the communication take place with socket, otherwise stop the execution of the process, so force the cancellation of period time generation.

Definition at line 523 of file uwApplication_module.cpp.

◆ updateFTT()

void uwApplicationModule::updateFTT ( const double &  ftt)
protectedvirtual

Update the FTT after the reception of a new packet.

Parameters
FTTof the current packet received

Definition at line 644 of file uwApplication_module.cpp.

◆ updateRTT()

void uwApplicationModule::updateRTT ( const double &  rtt)
protectedvirtual

Update the RTT after the reception of a new packet.

Parameters
RTTof the current packet received

Definition at line 592 of file uwApplication_module.cpp.

◆ updateThroughput()

void uwApplicationModule::updateThroughput ( const int &  bytes,
const double &  dt 
)
protectedvirtual

Update the Throughput after the reception of a new packet.

Parameters
Throughputof the current packet received

Definition at line 652 of file uwApplication_module.cpp.

◆ useDropOutOfOrder()

virtual bool uwApplicationModule::useDropOutOfOrder ( )
inlineprotectedvirtual

If the communication take place without sockets verify if the data packets received by the server is out of order or not.

In the first case discard the data packet

Returns
true enable drop out of order false not enabled drop out of order

Definition at line 323 of file uwApplication_module.h.

◆ usePoissonTraffic()

virtual bool uwApplicationModule::usePoissonTraffic ( )
inlineprotectedvirtual

If the communication take place without sockets verify if the data generation period is constant or is choiche in according to a poisson process.

Returns
true use a Poisson process to generate data false use a constant period data generation

Definition at line 306 of file uwApplication_module.h.

◆ useTCP()

virtual bool uwApplicationModule::useTCP ( )
inlineprotectedvirtual

If the communication take place using sockets verify if the protocol used is TCP or UDP.

Returns
true socket use TCP protocol false socket use UDP protocol

Definition at line 291 of file uwApplication_module.h.

◆ withoutSocket()

virtual bool uwApplicationModule::withoutSocket ( )
inlineprotectedvirtual

Verify if the communication take place with socket or the data payload is generated in a randomly way.

Returns
true communication without socket false communication with socket

Definition at line 275 of file uwApplication_module.h.

Member Data Documentation

◆ chkTimerPeriod

uwSendTimerAppl uwApplicationModule::chkTimerPeriod
protected

Timer that schedule the period between two successive generation of DATA packets.

Definition at line 543 of file uwApplication_module.h.

◆ clnAddr

struct sockaddr_in uwApplicationModule::clnAddr

Client address.

Definition at line 160 of file uwApplication_module.h.

◆ clnSockDescr

int uwApplicationModule::clnSockDescr

*socket descriptor for client

Definition at line 158 of file uwApplication_module.h.

◆ debug_

int uwApplicationModule::debug_
protected

Used for debug purposes 1 debug activated 0 debug not activated.

Definition at line 523 of file uwApplication_module.h.

◆ drop_out_of_order

int uwApplicationModule::drop_out_of_order
protected

Enable or not the ordering of data packet received 1 enabled 0 not enabled.

Definition at line 535 of file uwApplication_module.h.

◆ dst_addr

uint8_t uwApplicationModule::dst_addr
protected

IP destination address.

Definition at line 539 of file uwApplication_module.h.

◆ esn

uint32_t uwApplicationModule::esn
protected

Expected serial number.

Definition at line 575 of file uwApplication_module.h.

◆ exp_id

int uwApplicationModule::exp_id

Definition at line 174 of file uwApplication_module.h.

◆ fttsamples

int uwApplicationModule::fttsamples
protected

Number of FTT samples.

Definition at line 574 of file uwApplication_module.h.

◆ hrsn

int uwApplicationModule::hrsn
protected

Highest received sequence number.

Definition at line 578 of file uwApplication_module.h.

◆ logging

bool uwApplicationModule::logging

Definition at line 172 of file uwApplication_module.h.

◆ lrtime

double uwApplicationModule::lrtime
protected

Time of last packet reception.

Definition at line 568 of file uwApplication_module.h.

◆ MAX_READ_LEN

uint uwApplicationModule::MAX_READ_LEN = 64
static

Maximum size (bytes) of a single read of the socket.

Definition at line 177 of file uwApplication_module.h.

◆ node_id

int uwApplicationModule::node_id

Definition at line 173 of file uwApplication_module.h.

◆ out_log

std::ofstream uwApplicationModule::out_log

Variable that handle the file in which the protocol write the statistics.

Definition at line 170 of file uwApplication_module.h.

◆ payloadsize

int uwApplicationModule::payloadsize
protected

Size of each data packet payaload generated.

Definition at line 532 of file uwApplication_module.h.

◆ PERIOD

double uwApplicationModule::PERIOD
protected

Interval time between two successive generation data packets.

Definition at line 525 of file uwApplication_module.h.

◆ pkts_invalid

int uwApplicationModule::pkts_invalid
protected

Counter of the packets received with errors by the server.

Definition at line 560 of file uwApplication_module.h.

◆ pkts_last_reset

int uwApplicationModule::pkts_last_reset
protected

Used for error checking after stats are reset.

Set to pkts_lost+pkts_recv each time resetStats is called.

Definition at line 565 of file uwApplication_module.h.

◆ pkts_lost

int uwApplicationModule::pkts_lost
protected

Counter of the packet lost during the transmission.

Definition at line 555 of file uwApplication_module.h.

◆ pkts_ooseq

int uwApplicationModule::pkts_ooseq
protected

Counter of the packets received out of order by the server.

Definition at line 558 of file uwApplication_module.h.

◆ pkts_push_queue

int uwApplicationModule::pkts_push_queue
protected

Counter of DATA packets received by server and not yet passed to the below levels of ISO/OSI stack protocol.

Definition at line 562 of file uwApplication_module.h.

◆ pkts_recv

int uwApplicationModule::pkts_recv
protected

Counter of the packets correctly received by the server.

Definition at line 556 of file uwApplication_module.h.

◆ poisson_traffic

int uwApplicationModule::poisson_traffic
protected

Enable or not the Poisson process for generation of data packets 1 enabled 0 not enabled.

Definition at line 529 of file uwApplication_module.h.

◆ port_num

int uwApplicationModule::port_num
protected

Number of the port in which the server provide the service.

Definition at line 533 of file uwApplication_module.h.

◆ queuePckReadTCP

std::queue<Packet *> uwApplicationModule::queuePckReadTCP

Queue that store the DATA packets recevied from the client by the server using a TCP protocol.

Definition at line 163 of file uwApplication_module.h.

◆ queuePckReadUDP

std::queue<Packet *> uwApplicationModule::queuePckReadUDP

Queue that store the DATA packets recevied from the client by the server using a UDP protocol.

Definition at line 167 of file uwApplication_module.h.

◆ rftt

int uwApplicationModule::rftt
protected

Forward trip time.

Definition at line 554 of file uwApplication_module.h.

◆ rttsamples

int uwApplicationModule::rttsamples
protected

Number of RTT samples.

Definition at line 571 of file uwApplication_module.h.

◆ servAddr

struct sockaddr_in uwApplicationModule::servAddr

Server address.

Definition at line 159 of file uwApplication_module.h.

◆ servPort

int uwApplicationModule::servPort

Server port.

Definition at line 161 of file uwApplication_module.h.

◆ servSockDescr

int uwApplicationModule::servSockDescr

socket descriptor for server

Definition at line 157 of file uwApplication_module.h.

◆ sn_check

bool* uwApplicationModule::sn_check
protected

Used to keep track of the packets already received.

Definition at line 550 of file uwApplication_module.h.

◆ socket_active

bool uwApplicationModule::socket_active
protected

Definition at line 547 of file uwApplication_module.h.

◆ socket_protocol

string uwApplicationModule::socket_protocol
protected

Definition at line 548 of file uwApplication_module.h.

◆ sumbytes

double uwApplicationModule::sumbytes
protected

Sum of bytes received.

Definition at line 576 of file uwApplication_module.h.

◆ sumdt

double uwApplicationModule::sumdt
protected

Sum of the delays.

Definition at line 577 of file uwApplication_module.h.

◆ sumftt

double uwApplicationModule::sumftt
protected

Sum of FTT samples.

Definition at line 572 of file uwApplication_module.h.

◆ sumftt2

double uwApplicationModule::sumftt2
protected

Sum of (FTT^2).

Definition at line 573 of file uwApplication_module.h.

◆ sumrtt

double uwApplicationModule::sumrtt
protected

Sum of RTT samples.

Definition at line 569 of file uwApplication_module.h.

◆ sumrtt2

double uwApplicationModule::sumrtt2
protected

Sum of (RTT^2).

Definition at line 570 of file uwApplication_module.h.

◆ tcp_udp

int uwApplicationModule::tcp_udp
protected

Definition at line 549 of file uwApplication_module.h.

◆ txsn

int uwApplicationModule::txsn
protected

Transmission sequence number of DATA packet.

Definition at line 553 of file uwApplication_module.h.

◆ uidcnt

int uwApplicationModule::uidcnt
protected

Identifier counter that identify uniquely the DATA packet generated.

Definition at line 551 of file uwApplication_module.h.


The documentation for this class was generated from the following files: