class <Agent/MFTP/Snd> MFTPSndAgent : public MFTPAgent


Inheritance:


Public Fields

Agent/MFTP/Snd instvar dst_addr_
Agent/MFTP/Snd instvar dtuSize_
Agent/MFTP/Snd instvar dtusPerBlock_
Agent/MFTP/Snd instvar dtusPerGroup_
Agent/MFTP/Snd instvar fileSize_
Agent/MFTP/Snd instvar interval_
Agent/MFTP/Snd instvar nakCount_
Agent/MFTP/Snd instvar node_
Agent/MFTP/Snd instvar ns_
Agent/MFTP/Snd instvar readAheadBufsize_
Agent/MFTP/Snd instvar reply_addr_
Agent/MFTP/Snd instvar reply_port_
Agent/MFTP/Snd instvar rspBackoffWindow_
Agent/MFTP/Snd instvar seekCount_
Agent/MFTP/Snd instvar trace_
Agent/MFTP/Snd instvar tx_status_requests_
Agent/MFTP/Snd instvar txStatusDelay_
Agent/MFTP/Snd instvar txStatusLimit_

Public Methods

int command(int argc, const char*const* argv)
Agent/MFTP/Snd instproc delete {}
Agent/MFTP/Snd instproc done {}
Agent/MFTP/Snd instproc evTrace { op type args }
Agent/MFTP/Snd instproc init {}
MFTPSndAgent()
Agent/MFTP/Snd instproc pass-finished { CurrentPass NbBlocks }
void recv(Packet* p, Handler* h)
Agent/MFTP/Snd instproc recv { type args }
Agent/MFTP/Snd instproc recv-nak { passNb block_nb nak_count}
Agent/MFTP/Snd instproc send { type args }
Agent/MFTP/Snd instproc send-data { }
Agent/MFTP/Snd instproc send-notify { args }
Agent/MFTP/Snd instproc send-status-req { CurrentPass blockLo blockHi rspBackoffWindow }
Agent/MFTP/Snd instproc start {}
Agent/MFTP/Snd instproc status-rsp-pending { CurrentPass blockLo blockHi }
Agent/MFTP/Snd instproc trace fd
virtual ~MFTPSndAgent()

Protected Fields

unsigned long CurrentGroup
current group number within pass
unsigned long CurrentPass
current pass number
CW_PATTERN_t CwPat
used for erasure correction
unsigned long fseek_offset
offset of next file read/write
Codeword iterator
the read_ahead_buffer for iteration through sequence of codewords
unsigned long MinGroupNbInBuf
indicates lowest group number that is
int nakCount_
unsigned char* naks
note: the following variables are not accessible within a tcl-script: NAK bitmap, 0=>ACK, 1=>NAK
unsigned long NbGroupsInBuf
currently cached in the read_ahead_buffer number of groups currently stored in
unsigned long read_ahead_bufsize
number of bytes read_ahead_buf consists of
int readAheadBufsize_
note: the following variables are r/w from within a tcl-script: this value is copied upon start of the sender protocol
unsigned char* retx
Retransmit bitmap, 0=>Not retx'd, 1=>retx'd
double txStatusDelay_

Protected Methods

void fill_read_ahead_buf()
reads next couple of groups from disk into main memory
void init_user_file(unsigned long readAheadBufsize)
void process_nak(hdr_mftp::Spec::Nak& nak, unsigned char* nak_bitmap, unsigned long currentPass)
processes incoming NAK
int send_data()
sends next data packet
void send_status_request(unsigned long pass_nb, unsigned long block_lo, unsigned long block_hi, double txStatusDelay)

Inherited from MFTPAgent:

Protected Fields

unsigned long dtu_size
unsigned long dtus_per_block
unsigned long dtus_per_group
unsigned long FileDGrams
unsigned long FileSize
unsigned long nb_groups
int off_cmn_
int off_mftp_

Protected Methods

unsigned long get_dtus_per_group(unsigned long group_nb)
unsigned long nb_blocks()

Inherited from Agent:

Public Fields

Agent instvar agent_port_
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 {}
virtual void listen()
Agent instproc port {}
inline nsaddr_t& port()
virtual void sendmsg(int nbytes, const char *flags = 0)
virtual void sendmsg(int sz, AppData*, 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 seqno_
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)

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_flags_

Protected Methods

void handle(Event*)
virtual void reset()

Inherited from Handler:


Documentation

MFTPSndAgent()

virtual ~MFTPSndAgent()

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

void recv(Packet* p, Handler* h)

void fill_read_ahead_buf()
reads next couple of groups from disk into main memory

void init_user_file(unsigned long readAheadBufsize)

int send_data()
sends next data packet

void send_status_request(unsigned long pass_nb, unsigned long block_lo, unsigned long block_hi, double txStatusDelay)

void process_nak(hdr_mftp::Spec::Nak& nak, unsigned char* nak_bitmap, unsigned long currentPass)
processes incoming NAK

int readAheadBufsize_
note: the following variables are r/w from within a tcl-script: this value is copied upon start of the sender protocol

double txStatusDelay_

int nakCount_

unsigned char* naks
note: the following variables are not accessible within a tcl-script: NAK bitmap, 0=>ACK, 1=>NAK

unsigned char* retx
Retransmit bitmap, 0=>Not retx'd, 1=>retx'd

unsigned long fseek_offset
offset of next file read/write

unsigned long read_ahead_bufsize
number of bytes read_ahead_buf consists of

unsigned long CurrentPass
current pass number

unsigned long CurrentGroup
current group number within pass

CW_PATTERN_t CwPat
used for erasure correction

unsigned long MinGroupNbInBuf
indicates lowest group number that is

unsigned long NbGroupsInBuf
currently cached in the read_ahead_buffer number of groups currently stored in

Codeword iterator
the read_ahead_buffer for iteration through sequence of codewords

Agent/MFTP/Snd instproc init {}

Agent/MFTP/Snd instvar ns_

Agent/MFTP/Snd instvar dtuSize_

Agent/MFTP/Snd instvar dtusPerBlock_

Agent/MFTP/Snd instvar dtusPerGroup_

Agent/MFTP/Snd instvar fileSize_

Agent/MFTP/Snd instvar reply_addr_

Agent/MFTP/Snd instvar reply_port_

Agent/MFTP/Snd instvar readAheadBufsize_

Agent/MFTP/Snd instvar interval_

Agent/MFTP/Snd instvar txStatusLimit_

Agent/MFTP/Snd instvar txStatusDelay_

Agent/MFTP/Snd instvar rspBackoffWindow_

Agent/MFTP/Snd instvar nakCount_

Agent/MFTP/Snd instvar seekCount_

Agent/MFTP/Snd instproc send-data { }
send-data does not get logged here. Rather, we get a callback-call "send-notify" from the C++ function se_data

Agent/MFTP/Snd instproc start {}

Agent/MFTP/Snd instvar node_

Agent/MFTP/Snd instvar dst_addr_

Agent/MFTP/Snd instproc pass-finished { CurrentPass NbBlocks }

Agent/MFTP/Snd instvar tx_status_requests_

Agent/MFTP/Snd instproc send-status-req { CurrentPass blockLo blockHi rspBackoffWindow }
send-status-req is called at end-of-pass, but only after the dtusPerGroup-th pass.

Agent/MFTP/Snd instproc status-rsp-pending { CurrentPass blockLo blockHi }
status-rsp-pending is called after the status-request packet is sent and if the status-rsp-pending-timer expires.

Agent/MFTP/Snd instproc recv { type args }

Agent/MFTP/Snd instproc send { type args }

Agent/MFTP/Snd instproc send-notify { args }
we get here whenever the sender sends a new data packet (callback from send_data)

Agent/MFTP/Snd instproc recv-nak { passNb block_nb nak_count}

Agent/MFTP/Snd instproc done {}

Agent/MFTP/Snd instproc trace fd

Agent/MFTP/Snd instvar trace_

Agent/MFTP/Snd instproc delete {}

Agent/MFTP/Snd instproc evTrace { op type args }


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