class CorresHost : public slink, public TcpFsAgent


Inheritance:


Public Methods

virtual void add_agent(IntTcpAgent *agent, int size, double winMult, int winInc, int ssthresh)
virtual Segment* add_pkts(int size, int seqno, int sessionSeqno, int daddr, int dport, int sport, double ts, IntTcpAgent *sender)
add pkt to pipe
void adjust_ownd(int size)
void agent_frcov(IntTcpAgent *)
void agent_ftout(IntTcpAgent *)
void agent_rcov(IntTcpAgent *)
void agent_tout(IntTcpAgent *)
int clean_segs(int size, Packet *pkt, IntTcpAgent *sender, int sessionSeqno, int amt_data_acked)
remove pkt from pipe
void closecwnd(int how, double ts, IntTcpAgent *sender=0)
void closecwnd(int how, IntTcpAgent *sender=0)
CorresHost()
void del_agent(IntTcpAgent *)
int ok_to_snd(int size)
void opencwnd(int size, IntTcpAgent *sender=0)
void quench(int how)
int rmv_old_segs(Packet *pkt, IntTcpAgent *sender, int amt_data_acked)

Protected Fields

double closecwTS_
Islist_iter <IntTcpAgent> * connIter_
Islist <IntTcpAgent> conns_
active connections
Segment* curArray_[MAX_PARALLEL_CONN]
possible candidates for rxmission
int disableIntLossRecov_
disable integrated loss recovery
int dontAdjustOwnd_
don't adjust ownd in response to dupacks
int dontIncrCwnd_
set when pkt loss is suspected (e
int fixedIw_
fixed initial window (not a function of conn)
double lastackTS_
u_int nActive_
number of active tcp conns to this host
u_int nFastRec_
number of tcp conns to this host in recovery
u_int nTimeout_
number of tcp conns to this host in timeout
TracedDouble ownd_
outstanding data to host
TracedDouble owndCorrection_
correction factor to account for dupacks
Segment* prevArray_[MAX_PARALLEL_CONN]
prev segs
int proxyopt_
indicates whether the connections are on behalf of distinct users (like those from a proxy)
int rexmtSegCount_
number of segments that we "suspect" need to be retransmitted
Segment* rtt_seg_
segment being timed for RTT computation
Islist <Segment> seglist_
list of unack'd segments to peer
Event timer_
following is for right-edge timer recovery int pending_;
int winInc_
double winMult_
double wndInit_
State encompassing the round-trip-time estimate

Protected Methods

inline void cancel()

Private Fields

friend class IntTcpAgent

Inherited from slink:

Public Fields

int key_
slink* next_

Inherited from TcpFsAgent:

Public Methods

virtual void cancel_rtx_timer()
virtual void cancel_timers()
virtual void output_helper(Packet* pkt)
virtual void partialnewack_helper(Packet*)
virtual void recv_helper(Packet* pkt)
virtual void recv_newack_helper(Packet* pkt)
double rtt_exact_timeout()
virtual void send_helper(int maxburst)
virtual void send_idle_helper()
virtual void set_rtx_timer()
virtual void timeout_nonrtx(int tno)
virtual void timeout_nonrtx_helper(int tno)

Protected Fields

int count_bytes_acked_
int fast_loss_recov_
int fast_reset_timer_
int fs_enable_
int fs_endseq_
int fs_mode_
int fs_startseq_
double last_recv_time_
ResetTimer reset_timer_
double t_exact_rttvar_
double t_exact_srtt_

Inherited from TcpAgent:

Public Methods

virtual void advanceby(int delta)
int command(int argc, const char*const* argv)
Agent/TCP instproc done {}
virtual void recv(Packet*, Handler*)
virtual void sendmsg(int nbytes, const char *flags = 0)
Agent/TCP instproc source type
virtual void timeout(int tno)
void trace(TracedVar* v)

Protected Fields

double awnd_
int Backoffs
double base_cwnd_
double boot_time_
int bug_fix_
BurstSndTimer burstsnd_timer_
int closed_
int cong_action_
int control_increase_
int count_
TracedInt curseq_
TracedDouble cwnd_
double decrease_num_
int delay_growth_
DelSndTimer delsnd_timer_
TracedInt dupacks_
int ecn_
int ecn_backoff_
int ecn_burst_
int ect_
int eln_
int eln_last_rxmit_
int eln_rxmit_thresh_
int EnblRTTCtr_
int F_counting
int F_full
double fcnt_
int first_decrease_
double firstsent_
TracedInt highest_ack_
double increase_num_
int last_ack_
int last_cwnd_action_
int maxburst_
int maxcwnd_
double maxrto_
TracedInt maxseq_
TracedInt nackpack_
int nam_tracevar_
TracedInt ndatabytes_
TracedInt ndatapack_
TracedInt nrexmit_
TracedInt nrexmitbytes_
TracedInt nrexmitpack_
int off_tcp_
int old_ecn_
double overhead_
FILE* plotfile_
int prev_highest_ack_
int QOption_
int recover_
int restart_bugfix_
int rtt_active_
int RTT_count
int RTT_goodcount
int RTT_prev
int rtt_seq_
double rtt_ts_
int rttvar_exp_
int rttvar_init_
RtxTimer rtx_timer_
double rtxcur_init_
TracedInt singledup_
int slow_start_restart_
int srtt_init_
TracedInt ssthresh_
int syn_
TracedInt t_backoff_
int T_full
int T_last
int T_prev
TracedInt t_rtt_
TracedInt t_rttvar_
int T_RTTVAR_BITS
double t_rtxcur_
TracedInt t_seqno_
TracedInt t_srtt_
int T_SRTT_BITS
int T_start
double tcp_tick_
int tcpip_base_hdr_size_
int trace_all_oneline_
int ts_option_
double ts_peer_
int W_timed
int W_used
double wnd_
double wnd_const_
double wnd_init_
int wnd_init_option_
int wnd_option_
double wnd_restart_
double wnd_th_

Protected Methods

virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
virtual void delay_bind_init_all()
virtual void dupack_action()
void ecn(int seqno)
void finish()
double initial_window()
void newack(Packet*)
virtual void newtimer(Packet*)
virtual void output(int seqno, int reason = 0)
void print_if_needed(double memb_time)
void process_qoption_after_ack(int seqno)
void process_qoption_after_send()
void reset()
void reset_qoption()
void reset_rtx_timer(int mild, int backoff = 1)
virtual void rtt_backoff()
void rtt_counting()
virtual void rtt_init()
virtual double rtt_timeout()
virtual void rtt_update(double tao)
virtual void send_much(int force, int reason, int maxburst = 0)
virtual void send_one()
virtual void set_initial_window()
void slowdown(int how)
void tcp_eln(Packet *pkt)
void traceAll()
virtual void traceVar(TracedVar* v)
virtual int window()

Protected

#define T_RTT_BITS

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 {}
virtual void send(int nbytes)
void send(Packet* p, Handler* h)
virtual void send(int sz, AppData *data)
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()
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 seqno_
int size_
char* traceName_
packet_t type_
static int uidcnt_

Protected Methods

void addAgentTrace(const char *name)
Packet* allocpkt()
Packet* allocpkt(int)
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)

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*)

Inherited from Handler:


Documentation

friend class IntTcpAgent

CorresHost()

virtual Segment* add_pkts(int size, int seqno, int sessionSeqno, int daddr, int dport, int sport, double ts, IntTcpAgent *sender)
add pkt to pipe

int clean_segs(int size, Packet *pkt, IntTcpAgent *sender, int sessionSeqno, int amt_data_acked)
remove pkt from pipe

int rmv_old_segs(Packet *pkt, IntTcpAgent *sender, int amt_data_acked)

void opencwnd(int size, IntTcpAgent *sender=0)

void closecwnd(int how, double ts, IntTcpAgent *sender=0)

void closecwnd(int how, IntTcpAgent *sender=0)

void adjust_ownd(int size)

int ok_to_snd(int size)

virtual void add_agent(IntTcpAgent *agent, int size, double winMult, int winInc, int ssthresh)

void del_agent(IntTcpAgent *)

void agent_tout(IntTcpAgent *)

void agent_ftout(IntTcpAgent *)

void agent_rcov(IntTcpAgent *)

void agent_frcov(IntTcpAgent *)

void quench(int how)

Islist <IntTcpAgent> conns_
active connections

Islist_iter <IntTcpAgent> * connIter_

u_int nActive_
number of active tcp conns to this host

u_int nTimeout_
number of tcp conns to this host in timeout

u_int nFastRec_
number of tcp conns to this host in recovery

double closecwTS_

double winMult_

int winInc_

TracedDouble ownd_
outstanding data to host

TracedDouble owndCorrection_
correction factor to account for dupacks

int proxyopt_
indicates whether the connections are on behalf of distinct users (like those from a proxy)

int fixedIw_
fixed initial window (not a function of conn)

Islist <Segment> seglist_
list of unack'd segments to peer

double lastackTS_

double wndInit_
State encompassing the round-trip-time estimate. srtt and rttvar are stored as fixed point; srtt has 3 bits to the right of the binary point, rttvar has 2. should = path_mtu_

Segment* rtt_seg_
segment being timed for RTT computation

int dontAdjustOwnd_
don't adjust ownd in response to dupacks

int dontIncrCwnd_
set when pkt loss is suspected (e.g., there is reordering)

int rexmtSegCount_
number of segments that we "suspect" need to be retransmitted

int disableIntLossRecov_
disable integrated loss recovery

Segment* curArray_[MAX_PARALLEL_CONN]
possible candidates for rxmission

Segment* prevArray_[MAX_PARALLEL_CONN]
prev segs

Event timer_
following is for right-edge timer recovery int pending_;

inline void cancel()


Direct child classes:
TcpSessionAgent

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