aodv_rt_entry Class Reference

#include <aodv_rtable.h>

Collaboration diagram for aodv_rt_entry:

Collaboration graph
[legend]

Detailed Description

Definition at line 81 of file aodv_rtable.h.

Public Member Functions

 aodv_rt_entry ()
void nb_insert (nsaddr_t id)
AODV_Neighbornb_lookup (nsaddr_t id)
void pc_delete (void)
void pc_delete (nsaddr_t id)
bool pc_empty (void)
void pc_insert (nsaddr_t id)
AODV_Precursorpc_lookup (nsaddr_t id)
 ~aodv_rt_entry ()

Data Fields

u_int8_t rt_req_cnt
double rt_req_timeout

Protected Member Functions

 LIST_ENTRY (aodv_rt_entry) rt_link

Protected Attributes

char hist_indx
double rt_disc_latency [MAX_HISTORY]
nsaddr_t rt_dst
double rt_expire
u_int8_t rt_flags
u_int16_t rt_hops
int rt_last_hop_count
aodv_ncache rt_nblist
nsaddr_t rt_nexthop
aodv_precursors rt_pclist
int rt_req_last_ttl
u_int32_t rt_seqno

Friends

class AODV
class aodv_rtable
class LocalRepairTimer


Constructor & Destructor Documentation

aodv_rt_entry::aodv_rt_entry  ) 
 

Definition at line 38 of file aodv_rtable.cc.

References INFINITY2, LIST_INIT, MAX_HISTORY, rt_disc_latency, rt_dst, rt_expire, rt_flags, rt_hops, rt_last_hop_count, rt_nexthop, rt_pclist, rt_req_cnt, rt_req_timeout, rt_seqno, and RTF_DOWN.

00039 {
00040 int i;
00041 
00042  rt_req_timeout = 0.0;
00043  rt_req_cnt = 0;
00044 
00045  rt_dst = 0;
00046  rt_seqno = 0;
00047  rt_hops = rt_last_hop_count = INFINITY2;
00048  rt_nexthop = 0;
00049  LIST_INIT(&rt_pclist);
00050  rt_expire = 0.0;
00051  rt_flags = RTF_DOWN;
00052 
00053  /*
00054  rt_errors = 0;
00055  rt_error_time = 0.0;
00056  */
00057 
00058 
00059  for (i=0; i < MAX_HISTORY; i++) {
00060    rt_disc_latency[i] = 0.0;
00061  }
00062  hist_indx = 0;
00063  rt_req_last_ttl = 0;
00064 
00065  LIST_INIT(&rt_nblist);
00066 
00067 };

aodv_rt_entry::~aodv_rt_entry  ) 
 

Definition at line 70 of file aodv_rtable.cc.

References LIST_REMOVE, rt_nblist, and rt_pclist.

00071 {
00072 AODV_Neighbor *nb;
00073 
00074  while((nb = rt_nblist.lh_first)) {
00075    LIST_REMOVE(nb, nb_link);
00076    delete nb;
00077  }
00078 
00079 AODV_Precursor *pc;
00080 
00081  while((pc = rt_pclist.lh_first)) {
00082    LIST_REMOVE(pc, pc_link);
00083    delete pc;
00084  }
00085 
00086 }


Member Function Documentation

aodv_rt_entry::LIST_ENTRY aodv_rt_entry   )  [protected]
 

void aodv_rt_entry::nb_insert nsaddr_t  id  ) 
 

Definition at line 90 of file aodv_rtable.cc.

References LIST_INSERT_HEAD, AODV_Neighbor::nb_expire, and rt_nblist.

00091 {
00092 AODV_Neighbor *nb = new AODV_Neighbor(id);
00093         
00094  assert(nb);
00095  nb->nb_expire = 0;
00096  LIST_INSERT_HEAD(&rt_nblist, nb, nb_link);
00097 
00098 }

AODV_Neighbor * aodv_rt_entry::nb_lookup nsaddr_t  id  ) 
 

Definition at line 102 of file aodv_rtable.cc.

References AODV_Neighbor::nb_addr, and rt_nblist.

00103 {
00104 AODV_Neighbor *nb = rt_nblist.lh_first;
00105 
00106  for(; nb; nb = nb->nb_link.le_next) {
00107    if(nb->nb_addr == id)
00108      break;
00109  }
00110  return nb;
00111 
00112 }

void aodv_rt_entry::pc_delete void   ) 
 

Definition at line 155 of file aodv_rtable.cc.

References LIST_REMOVE, and rt_pclist.

00155                              {
00156 AODV_Precursor *pc;
00157 
00158  while((pc = rt_pclist.lh_first)) {
00159    LIST_REMOVE(pc, pc_link);
00160    delete pc;
00161  }
00162 }   

void aodv_rt_entry::pc_delete nsaddr_t  id  ) 
 

Definition at line 141 of file aodv_rtable.cc.

References LIST_REMOVE, AODV_Precursor::pc_addr, and rt_pclist.

Referenced by AODV::handle_link_failure().

00141                                     {
00142 AODV_Precursor *pc = rt_pclist.lh_first;
00143 
00144  for(; pc; pc = pc->pc_link.le_next) {
00145    if(pc->pc_addr == id) {
00146      LIST_REMOVE(pc,pc_link);
00147      delete pc;
00148      break;
00149    }
00150  }
00151 
00152 }

bool aodv_rt_entry::pc_empty void   ) 
 

Definition at line 165 of file aodv_rtable.cc.

References rt_pclist.

00165                             {
00166 AODV_Precursor *pc;
00167 
00168  if ((pc = rt_pclist.lh_first)) return false;
00169  else return true;
00170 }   

void aodv_rt_entry::pc_insert nsaddr_t  id  ) 
 

Definition at line 116 of file aodv_rtable.cc.

References LIST_INSERT_HEAD, pc_lookup(), and rt_pclist.

00117 {
00118     if (pc_lookup(id) == NULL) {
00119     AODV_Precursor *pc = new AODV_Precursor(id);
00120         
00121         assert(pc);
00122         LIST_INSERT_HEAD(&rt_pclist, pc, pc_link);
00123     }
00124 }

Here is the call graph for this function:

AODV_Precursor * aodv_rt_entry::pc_lookup nsaddr_t  id  ) 
 

Definition at line 128 of file aodv_rtable.cc.

References AODV_Precursor::pc_addr, and rt_pclist.

Referenced by pc_insert().

00129 {
00130 AODV_Precursor *pc = rt_pclist.lh_first;
00131 
00132  for(; pc; pc = pc->pc_link.le_next) {
00133    if(pc->pc_addr == id)
00134     return pc;
00135  }
00136  return NULL;
00137 
00138 }


Friends And Related Function Documentation

friend class AODV [friend]
 

Definition at line 83 of file aodv_rtable.h.

friend class aodv_rtable [friend]
 

Definition at line 82 of file aodv_rtable.h.

friend class LocalRepairTimer [friend]
 

Definition at line 84 of file aodv_rtable.h.


Field Documentation

char aodv_rt_entry::hist_indx [protected]
 

Definition at line 130 of file aodv_rtable.h.

Referenced by AODV::recvReply().

double aodv_rt_entry::rt_disc_latency[MAX_HISTORY] [protected]
 

Definition at line 129 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::PerHopTime(), and AODV::recvReply().

nsaddr_t aodv_rt_entry::rt_dst [protected]
 

Definition at line 104 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::handle_link_failure(), AODV::local_rt_repair(), AODV::recvError(), AODV::recvReply(), AODV::recvRequest(), aodv_rtable::rt_add(), aodv_rtable::rt_lookup(), AODV::rt_purge(), AODV::rt_resolve(), and AODV::sendRequest().

double aodv_rt_entry::rt_expire [protected]
 

Definition at line 112 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::forward(), AODV::recvRequest(), AODV::rt_down(), AODV::rt_purge(), AODV::rt_update(), and AODV::sendRequest().

u_int8_t aodv_rt_entry::rt_flags [protected]
 

Definition at line 113 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::forward(), LocalRepairTimer::handle(), AODV::handle_link_failure(), AODV::local_rt_repair(), AODV::recvError(), AODV::recvReply(), AODV::recvRequest(), AODV::rt_down(), AODV::rt_purge(), AODV::rt_resolve(), AODV::rt_update(), and AODV::sendRequest().

u_int16_t aodv_rt_entry::rt_hops [protected]
 

Definition at line 107 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::handle_link_failure(), AODV::recvError(), AODV::recvReply(), AODV::recvRequest(), AODV::rt_down(), AODV::rt_purge(), AODV::rt_resolve(), AODV::rt_update(), and AODV::sendRequest().

int aodv_rt_entry::rt_last_hop_count [protected]
 

Definition at line 108 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::rt_down(), and AODV::sendRequest().

aodv_ncache aodv_rt_entry::rt_nblist [protected]
 

Definition at line 139 of file aodv_rtable.h.

Referenced by nb_insert(), nb_lookup(), and ~aodv_rt_entry().

nsaddr_t aodv_rt_entry::rt_nexthop [protected]
 

Definition at line 109 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::forward(), AODV::handle_link_failure(), AODV::recvError(), AODV::rt_down(), AODV::rt_update(), and AODV::sendReply().

aodv_precursors aodv_rt_entry::rt_pclist [protected]
 

Definition at line 111 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), pc_delete(), pc_empty(), pc_insert(), pc_lookup(), and ~aodv_rt_entry().

u_int8_t aodv_rt_entry::rt_req_cnt
 

Definition at line 99 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::recvReply(), AODV::recvRequest(), and AODV::sendRequest().

int aodv_rt_entry::rt_req_last_ttl [protected]
 

Definition at line 131 of file aodv_rtable.h.

Referenced by AODV::recvReply(), AODV::recvRequest(), and AODV::sendRequest().

double aodv_rt_entry::rt_req_timeout
 

Definition at line 98 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::local_rt_repair(), AODV::recvReply(), AODV::recvRequest(), and AODV::sendRequest().

u_int32_t aodv_rt_entry::rt_seqno [protected]
 

Definition at line 105 of file aodv_rtable.h.

Referenced by aodv_rt_entry(), AODV::handle_link_failure(), AODV::recvError(), AODV::recvReply(), AODV::recvRequest(), AODV::rt_purge(), AODV::rt_update(), and AODV::sendRequest().


The documentation for this class was generated from the following files:
Generated on Tue Mar 6 17:03:00 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6