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

📄 mttable.h

📁 在NS-2环境中实现了移动Ad Hoc的两种广播算法:Flood和Bcast。里面本来有个test目录
💻 H
字号:
/******************************************************************* Copyright (C) 2004 Thomas Kunz, CRC Canada, BCAST for IPv4. DISTRIBUTED WITH NO WARRANTY, EXPRESS OR IMPLIED. See the GNU Library General Public License (file COPYING in the MANET_multicast directory) for conditions of use and redistribution.*********************************************************************/#ifndef __mtable_h__#define __mtable_h__#include <assert.h>#include <sys/types.h>#include <config.h>#include <lib/bsd-list.h>#include <scheduler.h>#include <MANET_multicast/nhlist.h>#include <packet.h>#define CURRENT_TIME    Scheduler::instance().clock()#define INFINITY2        0xff/* =====================================================================   Multicast Route Table Entry   ===================================================================== */class mt_entry {	friend class mttable;	friend class MAODV;	friend class ODMRP;	friend class nhlist;public:	mt_entry();	~mt_entry(){};protected:	LIST_ENTRY(mt_entry)	mt_link;// Internet Class D addresses are or multicast// 1110 XXXX XXXX XXXX XXXX XXXX XXXX XXXX// Class D Range: 0xE0000000 - 0xEFFFFFFF#define IP_MULTICAST_RANGE 0xE000000#define NO_LEADER 0xFFFFFFF	nsaddr_t	mt_dst;			// Multicast Group IP Address	u_int8_t	mt_flags;		// Entry status#define MTF_UP 1#define MTF_DOWN 0	nsaddr_t	mt_grp_leader_dst;	// Multicast Group Leader IP Address	u_int32_t	mt_seqno;		// Multicast Group Sequence Number	u_int16_t	mt_hops_grp_leader;	// Hop Count to Multicast Grp Leader	double		mt_expire;		// Lifetime	nhlist		mt_nexthops;		// Mcast Grp Next hops IP addresses	int		mt_req_last_ttl;	u_int8_t	mt_req_flags;	double		mt_req_timeout;	double		mt_req_timestamp;	u_int8_t	mt_req_cnt;	double		mt_prune_time;	double		mt_rep_timestamp;	nsaddr_t	mt_rep_dst;	u_int32_t	mt_rep_seqno;	u_int16_t	mt_rep_hop_count;	u_int16_t	mt_rep_hops_grp_leader;	nsaddr_t	mt_rep_upstream;	nsaddr_t	mt_rep_src;	nsaddr_t	mt_rep_grp_leader_dst;			// ODMRP specific info	u_int8_t	fg_flag;#define FG_FLAG_SET 1	nhlist		fg_senders;	u_int8_t	src;#define FG_MEMBER_SRC 1	u_int8_t	recv;#define FG_MEMBER_RECV 1	double		fg_expire;};/* =====================================================================   The Multicast Routing Table   ===================================================================== */class mttable { public:	mttable() { LIST_INIT(&mthead); }        mt_entry*       head() { return mthead.lh_first; }        mt_entry*       mt_lookup(nsaddr_t id);        void            mt_delete(nsaddr_t id);        mt_entry*       mt_add(nsaddr_t id); private:        LIST_HEAD(, mt_entry) mthead;};#endif /* __mtable_h__ */

⌨️ 快捷键说明

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