class <Agent/TFRC> TfrcAgent : public Agent


Inheritance:


Public Methods

int command(int argc, const char*const* argv)
void decrease_rate()
void increase_rate(double p)
void nextpkt()
void recv(Packet*, Handler*)
void reduce_rate_on_no_feedback()
void sendpkt()
void slowstart()
void start()
void stop()
TfrcAgent()
void update_rtt(double tao, double now)

Protected Fields

int active_
have we shut down?
int bval_
factor every rtt value of B for the formula
int ca_
Enable Sqrt(RTT) based congestion avoidance mode
double delta_
allows rate to be changed gradually
double df_
decay factor for accurate RTT estimate
int first_pkt_rcvd
first ack received yet?
int InitRate_
initial send rate
double last_change_
time last change in rate was made
double maxrate_
and recever-provded loss estimate prevents sending at more than 2 times the
TracedInt ndatapack_
number of packets sent
TfrcNoFeedbackTimer NoFeedbacktimer_
double oldrate_
allows rate to be changed gradually
double overhead_
if > 0, dither outgoing packets
int printStatus_
rate at which the receiver is _receving_ to print status reports
int psize_
double rate_
send rate
int rate_change_
slow start, cong avoid, decrease ...
double rcvrate
TCP friendly rate based on current RTT
int round_id
round id
double rtt_
"accurate" estimates for formula EWMA version
double rttcur_
Instantaneous version
double rttvar_
int rttvar_exp_
int rttvar_init_
double rtxcur_init_
TfrcSendTimer send_timer_
int seqno_
double sqrtrtt_
The mean of the sqrt of the RTT
int srtt_init_
double ssmult_
during slow start, increase rate by this
int t_rtt_
int t_rttvar_
int T_RTTVAR_BITS
double t_rtxcur_
int t_srtt_
TCP variables for tracking RTT
int T_SRTT_BITS
double tcp_tick_
double tzero_
int UrgentFlag
urget flag

Private Fields

friend TfrcNoFeedbackTimer
friend TfrcSendTimer

Inherited from Agent:

Public Fields

Agent instvar agent_port_
Agent instvar dst_addr_
Agent instvar dst_port_
Agent instvar namTrace_
Agent instvar tg_

Public Methods

inline nsaddr_t& addr()
Agent instproc attach-app {s_type}
Agent instproc attach-source {s_type}
Agent instproc attach-tbf { tbf }
Agent instproc attach-trace { file }
virtual void attachApp(Application* app)
virtual void close()
Agent instproc connect d
virtual void connect(nsaddr_t dst)
inline nsaddr_t& daddr()
inline nsaddr_t& dport()
Agent instproc dst-port {}
Agent instproc init args
virtual void listen()
inline nsaddr_t& port()
Agent instproc port {}
void send(Packet* p, Handler* h)
virtual void send(int nbytes)
virtual void send(int sz, AppData *data)
virtual void sendmsg(int sz, AppData*, const char* flags = 0)
virtual void sendmsg(int nbytes, const char *flags = 0)
virtual void sendto(int sz, AppData*, const char* flags = 0)
virtual void sendto(int nbytes, const char* flags, nsaddr_t dst)
Agent instproc set args
void set_pkttype(packet_t pkttype)
virtual int& size()
virtual void timeout(int tno)
Agent instproc traffic-source agent

Protected Fields

Application* app_
Tcl_Channel channel_
int class_
int defttl_
ns_addr_t dst_
int fid_
int flags_
ns_addr_t here_
int off_ip_
OldValue* oldValueList_
int prio_
int size_
char* traceName_
packet_t type_
static int uidcnt_

Protected Methods

void addAgentTrace(const char *name)
Packet* allocpkt(int)
Packet* allocpkt()
virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
virtual void delay_bind_init_all()
void deleteAgentTrace()
void dumpTracedVars()
virtual void idle()
void initpkt(Packet*)
void insertOldValue(TracedVar *v, const char *value)
OldValue* lookupOldValue(TracedVar *v)
void monitorAgentTrace()
virtual void recvBytes(int bytes)
virtual void trace(TracedVar *v)

Private Methods

void flushAVar(TracedVar *v)

Inherited from Connector:

Public Methods

virtual void drop(Packet* p)
inline NsObject* target()

Protected Fields

NsObject* drop_
NsObject* target_

Protected Methods

virtual void drop(Packet* p, const char *s)

Inherited from NsObject:

Public Methods

virtual void debug(const char *fmt, ...)
int isdebug()

Protected Fields

int debug_
int off_cmn_
int off_flags_

Protected Methods

void handle(Event*)
virtual void reset()

Inherited from Handler:


Documentation

friend TfrcSendTimer

friend TfrcNoFeedbackTimer

TfrcAgent()

void recv(Packet*, Handler*)

void sendpkt()

void nextpkt()

int command(int argc, const char*const* argv)

void start()

void stop()

void update_rtt(double tao, double now)

void increase_rate(double p)

void decrease_rate()

void slowstart()

void reduce_rate_on_no_feedback()

TfrcSendTimer send_timer_

TfrcNoFeedbackTimer NoFeedbacktimer_

int seqno_

int psize_

double rate_
send rate

double oldrate_
allows rate to be changed gradually

double delta_
allows rate to be changed gradually

int rate_change_
slow start, cong avoid, decrease ...

double rcvrate
TCP friendly rate based on current RTT

double maxrate_
and recever-provded loss estimate prevents sending at more than 2 times the

int printStatus_
rate at which the receiver is _receving_ to print status reports

double rtt_
"accurate" estimates for formula EWMA version

double rttcur_
Instantaneous version

double rttvar_

double tzero_

double sqrtrtt_
The mean of the sqrt of the RTT

int ca_
Enable Sqrt(RTT) based congestion avoidance mode

int t_srtt_
TCP variables for tracking RTT

int t_rtt_

int t_rttvar_

int rttvar_exp_

double t_rtxcur_

double tcp_tick_

int T_SRTT_BITS

int T_RTTVAR_BITS

int srtt_init_

int rttvar_init_

double rtxcur_init_

int InitRate_
initial send rate

double df_
decay factor for accurate RTT estimate

double last_change_
time last change in rate was made

double ssmult_
during slow start, increase rate by this

int bval_
factor every rtt value of B for the formula

double overhead_
if > 0, dither outgoing packets

TracedInt ndatapack_
number of packets sent

int UrgentFlag
urget flag

int active_
have we shut down?

int round_id
round id

int first_pkt_rcvd
first ack received yet?


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de