CbrModule Class Reference

#include <cbr-module.h>

Inheritance diagram for CbrModule:

Inheritance graph
[legend]
Collaboration diagram for CbrModule:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CbrModule ()
 ~CbrModule ()
virtual void recv (Packet *)
virtual void recv (Packet *p, Handler *h)
virtual int command (int argc, const char *const *argv)
virtual int crLayCommand (ClMessage *m)
virtual double GetRTT ()
virtual double GetFTT ()
virtual double GetFTTpob ()
virtual double GetPER ()
virtual double GetTHR ()
virtual double GetPER_PB ()
virtual double GetRTTstd ()
virtual double GetFTTstd ()
virtual void resetStats ()

Protected Member Functions

virtual void sendPkt ()
virtual void transmit ()
virtual void initPkt (Packet *p)
virtual void start ()
virtual void stop ()
virtual void updateRTT (double rtt)
virtual void updateFTT (double ftt)
virtual void updateThroughput (int bytes, double dt)
virtual void incrPktLost (int npkts)
virtual void incrPktRecv ()
virtual void incrPktOoseq ()
virtual void incrPktInvalid ()
virtual void incrPktOutBuff ()
virtual double getTimeBeforeNextPkt ()
virtual double getMOS (double Pdrop, double delay, double rsource)
virtual void updateMOS (double Pdrop, double delay, double rsource)
virtual double GetMOS ()

Protected Attributes

nsaddr_t dstPort_
nsaddr_t dstAddr_
double alpha_
int txsn
int hrsn
int pkts_recv
int pkts_ooseq
double addfd_
double fd_
double cr_
double MOS
int pob_
double pob_time
int pkts_opt
double first_pkt_rftt
int first_pkt_
int pkts_lost
int pkts_invalid
int pkts_last_reset
double rftt
double srtt
double sftt
double lrtime
double sthr
double period_
int pktSize_
SendTimer sendTmr_
double sumrtt
double sumrtt2
int rttsamples
double sumftt
double sumftt2
int fttsamples
double sumbytes
double sumdt
int PoissonTraffic_

Static Protected Attributes

static int uidcnt_

Friends

class SendTimer

Detailed Description

Implements a Constant Bit Rate packet sender/receiver

Definition at line 93 of file cbr-module.h.


Member Function Documentation

void CbrModule::recv ( Packet *  p  )  [virtual]

Abstract method which has to be filled with the ad-hoc operations that the module has to do to the packet received

Parameters:
p pointer to the packet will be received
See also:
SAP, ChSAP

Implements Module.

Definition at line 305 of file cbr-module.cc.

References addfd_, cr_, Module::drop(), dstAddr_, dstPort_, fd_, first_pkt_, first_pkt_rftt, GetFTT(), PlugIn::getId(), GetPER(), hrsn, incrPktInvalid(), incrPktLost(), incrPktOoseq(), incrPktOutBuff(), incrPktRecv(), lrtime, pkts_last_reset, pkts_lost, pkts_recv, pob_, pob_time, hdr_cbr::rftt, rftt, hdr_cbr::rftt_valid, hdr_cbr::sn, hdr_cbr::ts, updateFTT(), updateMOS(), updateRTT(), and updateThroughput().

Referenced by recv().

Here is the call graph for this function:

void CbrModule::recv ( Packet *  p,
Handler *  callback 
) [virtual]

Call the recv method with only the Packet parameter in order to hide the callback (not used in this implementation) and mantain compatibility with the old ns2 code

Parameters:
p pointer to the packet will be received
callback pointer to a Handler class
See also:
SAP, ChSAP

Reimplemented from Module.

Definition at line 296 of file cbr-module.cc.

References recv().

Here is the call graph for this function:

int CbrModule::command ( int  argc,
const char *const *  argv 
) [virtual]

TCL command interpreter. It implements the following OTcl methods:

Moreover it inherits all the OTcl method of PlugIn

Parameters:
argc number of arguments in argv
argv array of strings which are the comand parameters (Note that argv[0] is the name of the object)
Returns:
TCL_OK or TCL_ERROR whether the command has been dispatched succesfully or no
See also:
PlugIn

Reimplemented from Module.

Definition at line 112 of file cbr-module.cc.

References addfd_, Module::command(), cr_, fd_, GetFTT(), GetFTTpob(), GetFTTstd(), GetMOS(), GetPER(), GetPER_PB(), GetRTT(), GetRTTstd(), GetTHR(), hrsn, pkts_last_reset, pkts_recv, pob_, pob_time, resetStats(), sendPkt(), start(), stop(), PlugIn::tag_, and txsn.

Here is the call graph for this function:

int CbrModule::crLayCommand ( ClMessage m  )  [virtual]

Deprecated:
use recvAsyncClMsg(ClMessage* m) instead
Parameters:
m 
Returns:

Reimplemented from PlugIn.

Definition at line 224 of file cbr-module.cc.

References PlugIn::crLayCommand(), and ClMessage::type().

Here is the call graph for this function:

void CbrModule::sendPkt (  )  [protected, virtual]

Generate a packet and transmit it

Definition at line 272 of file cbr-module.cc.

References PlugIn::getId(), initPkt(), and Module::sendDown().

Referenced by command(), and transmit().

Here is the call graph for this function:

void CbrModule::transmit (  )  [protected, virtual]

Call sendPkt and schedule a new transmission after period_ seconds

Definition at line 283 of file cbr-module.cc.

References getTimeBeforeNextPkt(), sendPkt(), and sendTmr_.

Referenced by SendTimer::expire().

Here is the call graph for this function:

void CbrModule::initPkt ( Packet *  p  )  [protected, virtual]

initialize a packet before transmission

Parameters:
p packet to be initialized

Definition at line 238 of file cbr-module.cc.

References dstAddr_, dstPort_, pktSize_, hdr_cbr::rftt, rftt, hdr_cbr::rftt_valid, hdr_cbr::sn, hdr_cbr::ts, txsn, and uidcnt_.

Referenced by sendPkt().

void CbrModule::start (  )  [protected, virtual]

start sending packets

Definition at line 267 of file cbr-module.cc.

References getTimeBeforeNextPkt(), and sendTmr_.

Referenced by command().

Here is the call graph for this function:

void CbrModule::stop (  )  [protected, virtual]

stop sending packets

Definition at line 290 of file cbr-module.cc.

References sendTmr_.

Referenced by command().


Member Data Documentation

int CbrModule::uidcnt_ [static, protected]

simulation-unique packet ID

Definition at line 125 of file cbr-module.h.

Referenced by CbrModule(), and initPkt().

double CbrModule::alpha_ [protected]

smoothing factor used for statistics using first order IIR filter

Definition at line 173 of file cbr-module.h.

Referenced by CbrModule(), updateFTT(), updateMOS(), and updateRTT().

int CbrModule::txsn [protected]

sequence number of next new packet to be transmitted

Definition at line 176 of file cbr-module.h.

Referenced by command(), and initPkt().

int CbrModule::hrsn [protected]

highest received sequence number

Definition at line 177 of file cbr-module.h.

Referenced by command(), and recv().

int CbrModule::pkts_recv [protected]

total number of received packets. Packet out of sequence are not counted here.

Definition at line 179 of file cbr-module.h.

Referenced by command(), GetPER(), GetPER_PB(), incrPktRecv(), recv(), and resetStats().

int CbrModule::pkts_ooseq [protected]

total number of packets received out of sequence

Definition at line 181 of file cbr-module.h.

Referenced by incrPktOoseq(), and resetStats().

int CbrModule::pkts_opt [protected]

total number of packets received out of plyout buffer timeout

Definition at line 200 of file cbr-module.h.

Referenced by GetPER_PB(), and incrPktOutBuff().

int CbrModule::pkts_lost [protected]

total number of lost packets, including packets received out of sequence

Definition at line 208 of file cbr-module.h.

Referenced by GetPER(), GetPER_PB(), incrPktLost(), recv(), and resetStats().

int CbrModule::pkts_invalid [protected]

total number of invalid packets received

Definition at line 211 of file cbr-module.h.

Referenced by incrPktInvalid().

int CbrModule::pkts_last_reset [protected]

for error checking after stats are reset. Set to pkts_lost+pkts_recv each time resetStats is called.

Definition at line 213 of file cbr-module.h.

Referenced by command(), recv(), and resetStats().

double CbrModule::rftt [protected]

Forward Trip Time seen for last received packet

Definition at line 217 of file cbr-module.h.

Referenced by initPkt(), recv(), and resetStats().

double CbrModule::srtt [protected]

Smoothed Round Trip Time, calculated as for TCP

Definition at line 220 of file cbr-module.h.

Referenced by resetStats(), and updateRTT().

double CbrModule::sftt [protected]

Smoothed Forward Trip Time, calculated as srtt

Definition at line 223 of file cbr-module.h.

Referenced by resetStats(), and updateFTT().

double CbrModule::lrtime [protected]

Time of last packet reception

Definition at line 225 of file cbr-module.h.

Referenced by recv().

double CbrModule::sthr [protected]

Smoothed throughput calculation

Definition at line 227 of file cbr-module.h.

Referenced by resetStats().

double CbrModule::period_ [protected]

period between two consecutive packet transmissions

Definition at line 230 of file cbr-module.h.

Referenced by CbrModule(), and getTimeBeforeNextPkt().

int CbrModule::pktSize_ [protected]

packet size

Definition at line 231 of file cbr-module.h.

Referenced by CbrModule(), and initPkt().

SendTimer CbrModule::sendTmr_ [protected]

timer which schedules packet transmissions

Definition at line 232 of file cbr-module.h.

Referenced by start(), stop(), and transmit().

double CbrModule::sumrtt [protected]

sum of RTT samples

Definition at line 237 of file cbr-module.h.

Referenced by GetRTT(), GetRTTstd(), resetStats(), and updateRTT().

double CbrModule::sumrtt2 [protected]

sum of (RTT^2)

Definition at line 238 of file cbr-module.h.

Referenced by GetRTTstd(), resetStats(), and updateRTT().

int CbrModule::rttsamples [protected]

num of RTT samples

Definition at line 239 of file cbr-module.h.

Referenced by GetRTT(), GetRTTstd(), resetStats(), and updateRTT().

double CbrModule::sumftt [protected]

sum of FTT samples

Definition at line 241 of file cbr-module.h.

Referenced by GetFTT(), GetFTTpob(), GetFTTstd(), resetStats(), and updateFTT().

double CbrModule::sumftt2 [protected]

sum of (FTT^2)

Definition at line 242 of file cbr-module.h.

Referenced by GetFTTstd(), resetStats(), and updateFTT().

int CbrModule::fttsamples [protected]

num of FTT samples

Definition at line 243 of file cbr-module.h.

Referenced by GetFTT(), GetFTTpob(), GetFTTstd(), resetStats(), and updateFTT().


The documentation for this class was generated from the following files:
Generated on Wed Nov 26 15:48:26 2008 for NS-MIRACLE library by  doxygen 1.5.2