41#ifndef UWAPPLICATION_MODULE_H
42#define UWAPPLICATION_MODULE_H
49#include <netinet/in.h>
50#include <sys/socket.h>
59#define UWAPPLICATION_DROP_REASON_UNKNOWN_TYPE \
61#define UWAPPLICATION_DROP_REASON_DUPLICATED_PACKET \
63#define UWAPPLICATION_DROP_REASON_OUT_OF_SEQUENCE \
82 virtual void expire(Event *e);
111 virtual int command(
int argc,
const char *
const *argv)
override;
118 virtual void recv(Packet *)
override;
120 virtual double GetFTT()
const;
134 virtual double GetPER()
const;
141 virtual double GetTHR()
const;
148 virtual double GetRTT()
const;
241 unsigned long int timestamp =
242 (
unsigned long int) (std::chrono::duration_cast<
243 std::chrono::milliseconds>(
244 std::chrono::system_clock::now().time_since_epoch())
247 return to_string(timestamp);
262 const std::string &message)
const override
267 "[" +
getEpoch() +
"]::" + module +
"(" +
268 to_string(
node_id) +
")::" + message);
270 PlugIn::printOnLog(
log_level, module, message);
Definition uwApplication_module.h:87
virtual void updateThroughput(int bytes, double dt)
Definition uwApplication_module.cpp:554
virtual int getPktsInvalidRx() const
Definition uwApplication_module.h:207
virtual bool withoutSocket()
Definition uwApplication_module.h:335
int pkts_push_queue
Definition uwApplication_module.h:486
virtual void stop()
Definition uwApplication_module.cpp:443
virtual void readFromTCP(int clnSock)
Definition uwApplication_TCP_socket.cpp:130
int rttsamples
Definition uwApplication_module.h:498
std::atomic< bool > receiving
Definition uwApplication_module.h:513
virtual int getPktsPushQueue() const
Definition uwApplication_module.h:218
double sumftt2
Definition uwApplication_module.h:505
int hrsn
Definition uwApplication_module.h:476
std::thread socket_thread
Definition uwApplication_module.h:511
virtual void incrPktOoseq()
Definition uwApplication_module.h:408
virtual double getTimeBeforeNextPkt()
Definition uwApplication_module.cpp:469
int node_id
Definition uwApplication_module.h:493
int pkts_last_reset
Definition uwApplication_module.h:489
virtual int getPktLost() const
Definition uwApplication_module.h:174
double sumftt
Definition uwApplication_module.h:504
virtual int getPktRecv() const
Definition uwApplication_module.h:185
uint32_t esn
Definition uwApplication_module.h:497
virtual double getPeriod() const
Definition uwApplication_module.h:229
int pkts_ooseq
Definition uwApplication_module.h:482
int pkts_recv
Definition uwApplication_module.h:480
bool socket_active
Definition uwApplication_module.h:462
virtual void readFromUDP()
Definition uwApplication_UDP_socket.cpp:89
int drop_out_of_order
Definition uwApplication_module.h:472
virtual bool openConnectionUDP()
Definition uwApplication_UDP_socket.cpp:43
int servSockDescr
Definition uwApplication_module.h:494
double sumrtt
Definition uwApplication_module.h:502
int rftt
Definition uwApplication_module.h:478
virtual void incrPktLost(int npkts)
Definition uwApplication_module.h:391
bool socket_tcp
Definition uwApplication_module.h:464
std::queue< Packet * > queuePckReadUDP
Definition uwApplication_module.h:518
virtual void incrPktSent()
Definition uwApplication_module.h:382
virtual ~uwApplicationModule()
Definition uwApplication_module.cpp:139
virtual double GetRTT() const
Definition uwApplication_module.cpp:482
double sumdt
Definition uwApplication_module.h:507
virtual int getPktSent() const
Definition uwApplication_module.h:163
virtual double GetPER() const
Definition uwApplication_module.cpp:527
virtual void printOnLog(LogLev log_level, const std::string &module, const std::string &message) const override
Definition uwApplication_module.h:261
int fttsamples
Definition uwApplication_module.h:499
virtual bool useDropOutOfOrder()
Definition uwApplication_module.h:372
virtual void recv(Packet *) override
Definition uwApplication_module.cpp:248
virtual double GetFTT() const
Definition uwApplication_module.cpp:508
int servPort
Definition uwApplication_module.h:496
virtual double GetTHR() const
Definition uwApplication_module.cpp:540
virtual void incrPktsPushQueue()
Definition uwApplication_module.h:426
virtual void updateFTT(double ftt)
Definition uwApplication_module.cpp:546
virtual void transmit()
Definition uwApplication_module.cpp:355
virtual int command(int argc, const char *const *argv) override
Definition uwApplication_module.cpp:145
int uidcnt
Definition uwApplication_module.h:474
double sumbytes
Definition uwApplication_module.h:506
int sea_trial
Definition uwApplication_module.h:492
std::mutex socket_mutex
Definition uwApplication_module.h:512
double sumrtt2
Definition uwApplication_module.h:503
virtual bool usePoissonTraffic()
Definition uwApplication_module.h:359
virtual bool listenTCP()
Definition uwApplication_TCP_socket.cpp:43
int pkts_lost
Definition uwApplication_module.h:479
virtual void acceptTCP()
Definition uwApplication_TCP_socket.cpp:103
int clnSockDescr
Definition uwApplication_module.h:495
int pkts_invalid
Definition uwApplication_module.h:484
uwSendTimerAppl * chkTimerPeriod
Definition uwApplication_module.h:521
bool * sn_check
Definition uwApplication_module.h:466
int payloadsize
Definition uwApplication_module.h:470
struct sockaddr_in servAddr
Definition uwApplication_module.h:509
virtual void incrPktInvalid()
Definition uwApplication_module.h:416
virtual double GetRTTstd() const
Definition uwApplication_module.cpp:488
uwApplicationModule()
Definition uwApplication_module.cpp:73
std::string getEpoch() const
Definition uwApplication_module.h:239
static uint MAX_READ_LEN
Definition uwApplication_module.h:524
int poisson_traffic
Definition uwApplication_module.h:468
virtual int getPktsOOSequence() const
Definition uwApplication_module.h:196
int port_num
Definition uwApplication_module.h:471
struct sockaddr_in clnAddr
Definition uwApplication_module.h:510
uint8_t dst_addr
Definition uwApplication_module.h:467
double period
Definition uwApplication_module.h:500
virtual bool useTCP()
Definition uwApplication_module.h:346
std::queue< Packet * > queuePckReadTCP
Definition uwApplication_module.h:515
int txsn
Definition uwApplication_module.h:477
virtual void incrPktRecv()
Definition uwApplication_module.h:400
virtual double GetFTTstd() const
Definition uwApplication_module.cpp:514
double lrtime
Definition uwApplication_module.h:501
virtual void updateRTT(double rtt)
Definition uwApplication_module.cpp:500
Definition uwApplication_module.h:73
virtual void expire(Event *e)
Definition uwApplication_module.cpp:561
uwSendTimerAppl(uwApplicationModule *m)
Definition uwApplication_module.h:75
log_level
Definition uw-csma-ca.h:86