⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aodv_mtable.cc

📁 MAODV代码和安装程序 hen nan找啊
💻 CC
字号:
#include "aodv/aodv_mtable.h"

/* =====================================================================
   The Multicast Routing Table
   ===================================================================== */

aodv_mt_entry::aodv_mt_entry(nsaddr_t id)
{
	mt_dst = id;
	mt_flags = MTF_DOWN;
    mt_node_status = NOT_ON_TREE;
	mt_grp_leader_addr = INFINITY8;
	mt_seqno = 0;
	mt_hops_grp_leader = INFINITY8;
	
	mt_req_last_ttl = 0;
	mt_req_cnt = 0;
	mt_req_times = 0;

	mt_rep_grp_leader_addr = INFINITY8;
	mt_rep_seqno = 0;
	mt_rep_hops_tree = INFINITY4;
	mt_rep_hops_grp_leader = INFINITY4;
	mt_rep_selected_upstream = INFINITY8;
	mt_rep_timeout = 0;
    mt_rep_ipdst = INFINITY8;

    mt_keep_on_tree_timeout = 0;
    mt_prev_grp_leader_addr = INFINITY8;

    mt_grp_merge_permission = INFINITY8;
	mt_grp_merge_timeout = 0;

    // mt_nexthops call aodv_nhlist constructor
};


/* =====================================================================
   The Multicast Routing Table
   ===================================================================== */
aodv_mt_entry* aodv_mtable::mt_lookup(nsaddr_t id)
{
	aodv_mt_entry *mt = mthead.lh_first;

	for(; mt; mt = mt->mt_link.le_next) {
		if(mt->mt_dst == id)
		break;
	}
	return mt;
}

void
aodv_mtable::mt_delete(nsaddr_t id)
{
	aodv_mt_entry *mt = mt_lookup(id);

	if(mt) {
		LIST_REMOVE(mt, mt_link);
		delete mt;
	}
}

aodv_mt_entry*
aodv_mtable::mt_add(nsaddr_t id)
{
	aodv_mt_entry *mt;

	mt = new aodv_mt_entry(id);
	assert(mt);

	LIST_INSERT_HEAD(&mthead, mt, mt_link);

	return mt;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -