读了大概一半的aomdv.cc代码,rt出现了很多很多次,导致我如果不研究一下,aomdv的代码完全读不下去……
嗯,看一下rt:aomdv_rt_entry *rt 是一个指向aomdv_rt_entry类的指针。
而aomdv_rt_entry类是在aomdv_rtable.h中定义的,下面具体看一下。
定义路由表节点的类:aomdv_rt_entry:
其中定义的成员函数主要分为:对邻居表nb的操作,对路径path的操作以及对先导pc的操作。而成员函数,在我的理解中,应该就是路由表项包含的具体内容了。
class aomdv_rt_entry {
friend class aomdv_rtable;
friend class AOMDV;
friend class LocalRepairTimer;
public:
aomdv_rt_entry();
~aomdv_rt_entry();
void nb_insert(nsaddr_t id);
AOMDV_Neighbor* nb_lookup(nsaddr_t id);
// AOMDV code
AOMDV_Path* path_insert(nsaddr_t nexthop, u_int16_t hopcount, double expire_time, nsaddr_t lasthop=0);
AOMDV_Path* path_lookup(nsaddr_t id); // lookup path by nexthop
AOMDV_Path* disjoint_path_lookup(nsaddr_t nexthop, nsaddr_t lasthop);
bool new_disjoint_path(nsaddr_t nexthop, nsaddr_t lasthop);