class <Agent/AODV> AODV : public Agent

===================================================================== The Routing Agent =====================================================================

Inheritance:


Public Fields

int off_AODV_
HDR offsets

Public Methods

AODV(nsaddr_t id)
Agent/AODV instproc init args
void recv(Packet *p, Handler *)
void rt_ll_failed(Packet *p)

Protected Fields

int bid
Broadcast ID
bcache bihead
Broadcast ID Cache
BroadcastTimer btimer
Timers
HelloTimer htimer
PriQueue* ifqueue
A pointer to the network interface queue that sits between the "classifier" and the "link layer"
nsaddr_t index
IP Address of this node
Trace* logtarget
A mechanism for logging the contents of the routing table
LocalRepairTimer lrtimer
ncache nbhead
Neighbor Cache
NeighborTimer ntimer
rtqueue rqueue
A "drop-front" queue used by the routing layer to buffer packets to which it does not have a route
rttable rtable
Routing Table
rttable rthead
routing table
RouteCacheTimer rtimer
int seqno
Sequence Number

Protected Methods

int command(int, const char *const *)
Packet* deque(rt_entry *rt)
void enque(rt_entry *rt, Packet *p)
void forward(rt_entry *rt, Packet *p, double delay)
Packet TX Routines
void id_insert(nsaddr_t id, u_int32_t bid)
u_int32_t id_lookup(nsaddr_t id, u_int32_t bid)
void id_purge(void)
int initialized()
void local_rt_repair(rt_entry *rt, Packet *p)
void log_link_broke(Packet *p)
void log_link_del(nsaddr_t dst)
Logging stuff
void log_link_kept(nsaddr_t dst)
void nb_delete(nsaddr_t id)
void nb_insert(nsaddr_t id)
Neighbor Management
Neighbor* nb_lookup(nsaddr_t id)
void nb_purge(void)
double PerHopTime(rt_entry *rt)
void recvAODV(Packet *p)
Packet RX Routines
void recvHello(Packet *p)
void recvReply(Packet *p)
void recvRequest(Packet *p)
void recvTriggeredReply(Packet *p)
void rt_down(rt_entry *rt)
void rt_purge(void)
void rt_resolve(Packet *p)
Route Table Management
void sendHello(void)
void sendReply(nsaddr_t ipdst, u_int32_t hop_count, nsaddr_t rpdst, u_int32_t rpseq, u_int32_t lifetime, double timestamp)
void sendRequest(nsaddr_t dst)
void sendTriggeredReply(nsaddr_t ipdst, nsaddr_t rpdst, u_int32_t rqseq)
void sendTriggeredReply(nsaddr_t rpdst, u_int32_t rqseq)
Overloaded to have the route error broadcast case

Private Fields

friend class BroadcastTimer
friend class HelloTimer
friend class LocalRepairTimer
friend class NeighborTimer
friend class RouteCacheTimer
friend class rt_entry

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 {}
virtual void listen()
Agent instproc port {}
inline nsaddr_t& port()
virtual void send(int nbytes)
virtual void send(int sz, AppData *data)
void send(Packet* p, Handler* h)
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)
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

===================================================================== The Routing Agent =====================================================================
friend class rt_entry

friend class BroadcastTimer

friend class HelloTimer

friend class NeighborTimer

friend class RouteCacheTimer

friend class LocalRepairTimer

AODV(nsaddr_t id)

void recv(Packet *p, Handler *)

int off_AODV_
HDR offsets

int command(int, const char *const *)

int initialized()

void rt_resolve(Packet *p)
Route Table Management

void rt_down(rt_entry *rt)

void local_rt_repair(rt_entry *rt, Packet *p)

void rt_ll_failed(Packet *p)

void rt_purge(void)

void enque(rt_entry *rt, Packet *p)

Packet* deque(rt_entry *rt)

void nb_insert(nsaddr_t id)
Neighbor Management

Neighbor* nb_lookup(nsaddr_t id)

void nb_delete(nsaddr_t id)

void nb_purge(void)

void id_insert(nsaddr_t id, u_int32_t bid)

u_int32_t id_lookup(nsaddr_t id, u_int32_t bid)

void id_purge(void)

void forward(rt_entry *rt, Packet *p, double delay)
Packet TX Routines

void sendHello(void)

void sendRequest(nsaddr_t dst)

void sendReply(nsaddr_t ipdst, u_int32_t hop_count, nsaddr_t rpdst, u_int32_t rpseq, u_int32_t lifetime, double timestamp)

void sendTriggeredReply(nsaddr_t ipdst, nsaddr_t rpdst, u_int32_t rqseq)

void sendTriggeredReply(nsaddr_t rpdst, u_int32_t rqseq)
Overloaded to have the route error broadcast case

void recvAODV(Packet *p)
Packet RX Routines

void recvHello(Packet *p)

void recvRequest(Packet *p)

void recvReply(Packet *p)

void recvTriggeredReply(Packet *p)

double PerHopTime(rt_entry *rt)

nsaddr_t index
IP Address of this node

int seqno
Sequence Number

int bid
Broadcast ID

rttable rthead
routing table

ncache nbhead
Neighbor Cache

bcache bihead
Broadcast ID Cache

BroadcastTimer btimer
Timers

HelloTimer htimer

NeighborTimer ntimer

RouteCacheTimer rtimer

LocalRepairTimer lrtimer

rttable rtable
Routing Table

rtqueue rqueue
A "drop-front" queue used by the routing layer to buffer packets to which it does not have a route

Trace* logtarget
A mechanism for logging the contents of the routing table

PriQueue* ifqueue
A pointer to the network interface queue that sits between the "classifier" and the "link layer"

void log_link_del(nsaddr_t dst)
Logging stuff

void log_link_broke(Packet *p)

void log_link_kept(nsaddr_t dst)

Agent/AODV instproc init 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