亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bcast.h

?? code that can compile NS-2.27 on Fedora Core 4
?? 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.*********************************************************************//*Copyright (c) 1997, 1998 Carnegie Mellon University.  All RightsReserved. Permission to use, copy, modify, and distribute thissoftware and its documentation is hereby granted (including forcommercial or for-profit use), provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works, or modified versions, and any portions thereof, and that both notices appear in supporting documentation, and that credit is given to Carnegie Mellon University in all publications reporting on direct or indirect use of this code or its derivatives.ALL CODE, SOFTWARE, PROTOCOLS, AND ARCHITECTURES DEVELOPED BY THE CMUMONARCH PROJECT ARE EXPERIMENTAL AND ARE KNOWN TO HAVE BUGS, SOME OFWHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON PROVIDES THISSOFTWARE OR OTHER INTELLECTUAL PROPERTY IN ITS ``AS IS'' CONDITION,AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITYBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCEOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE ORINTELLECTUAL PROPERTY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCHDAMAGE.Carnegie Mellon encourages (but does not require) users of thissoftware or intellectual property to return any improvements orextensions that they make, and to grant Carnegie Mellon the rights to redistribute these changes without encumbrance.The AODV code developed by the CMU/MONARCH group was optimized and tuned by Samir Das and Mahesh Marina, University of Cincinnati. The work was partially done in Sun Microsystems.*//*  * The original AODV code was modified to support efficient broadcasting  * (BCAST) by Thomas Kunz. */#ifndef __bcast_h__#define __bcast_h__#include <cmu-trace.h>#include <priqueue.h>#include <classifier/classifier-port.h>#include <MANET_multicast/mttable.h>#include <MANET_multicast/unique_id.h>#include <MANET_multicast/cache.h>#include <bcast/bcast_queue.h>class BCAST;// Should be set by the user using best guess (conservative) #define NETWORK_DIAMETER	30		// 30 hops// how much to delay packet retransmission (scaling factor)#define BCAST_DELAY		0.100		// in seconds/*  Timers*//* The NackTimer is used to re-trigger NACKs up to MAX_NACK times for   a specific packet that is deemed lost. After trying for MAX_NACK times,   we will give up. The timer is cancelled when the requested packet is   received. */#define MAX_NACK 3#define NACK_INITIAL_DELAY 1.0	// upper bound on initial delay for NACK #define NACK_TIMEOUT 1.0	// timeout and try again after x second// constants to control frequency of NACKs#define MIN_DIFF	0.7	// do not send too many NACKs per unit time#define PACKET_COUNT	30	// track back that many NACKsclass NackTimer_bcast : public Handler {public:        NackTimer_bcast(BCAST* a) : agent(a) 		{count = 0; packet_ptr = 0; }        void	handle(Event*);	void	start_nack_timer(nsaddr_t p_src, unsigned int p_seqno, 			double delay); 	void	cancel_nack_timer(nsaddr_t p_src, unsigned int p_seqno);	void	save_packet_time(double t_packet);	int	control_nack_flood(); // limit flooding of NACKsprivate:        BCAST    *agent;	Event	 intr;	int	 count;			// how many NACKs have we tracked	int	 packet_ptr;		// next field to store tracked NACK	double	 packet_times[PACKET_COUNT];	nsaddr_t src;			// source address of missing packet	unsigned int seqno;		// sequence number of missing packet	unsigned int retry_count;	// number of retry attempts};/* The RetransmitTimer is used to delay the transmission of a duplicate   packet P. Until the packet is retransmitted, a node listens for   retransmissions by other nodes. If it overhears another node sending   the same packet, it will cancel its own retransmission. */class RetransmitTimer_bcast : public Handler {public:        RetransmitTimer_bcast(BCAST* a) : agent(a) {}        void	handle(Event*);	void	start_rtx_timer(Packet *pck, double delay); 	void	cancel_rtx_timer(nsaddr_t p_src, unsigned int p_seqno);private:        BCAST    *agent;	Event	intr;	nsaddr_t src;				// source address of retransmitted packet	unsigned int seqno;			// sequence number of retransmitted packet	Packet	*p;					// packet to be retransmitted};/* The HelloTimer periodically triggers the sending of HELLO messages to   neighbors. Since this information is also available from other packets   (i.e., piggybacked onto them), HELLO messages do get rescheduled whenever   other data packets are transmitted. */#define HELLO_INTERVAL          2               // in seconds#define ALLOWED_HELLO_LOSS      1               // packets#define MaxHelloInterval        (1.25 * HELLO_INTERVAL)#define MinHelloInterval        (0.75 * HELLO_INTERVAL)class HelloTimer_bcast : public Handler {public:        HelloTimer_bcast(BCAST* a) : agent(a) {}        void	handle(Event*);	void	reschedule();	// cancel and reschedule HELLO messageprivate:        BCAST    *agent;	Event	intr;};/* The NeighborTimer periodically cleans up the information about one-hop   and two-hop neighbors. Unless this information is refreshed, it becomes   stale and is removed. */class NeighborTimer_bcast : public Handler {public:        NeighborTimer_bcast(BCAST* a) : agent(a) {}        void	handle(Event*);private:        BCAST    *agent;	Event	intr;};/*   BCAST Neighbor Cache Entry*/class BCAST_Neighbor {        friend class BCAST; public:        BCAST_Neighbor(u_int32_t a) { nb_addr = a; nb_no_of_neighbors=0; } protected:        LIST_ENTRY(BCAST_Neighbor) nb_link;        nsaddr_t        nb_addr;        double          nb_expire;      // ALLOWED_HELLO_LOSS * HELLO_INTERVAL	int		nb_no_of_neighbors;	nsaddr_t	nb_neighbors[NEIGHBOR_COUNT];};LIST_HEAD(bcast_ncache, BCAST_Neighbor);#define CACHE_SIZE 10		// cache size for recently transmitted packets#define ILLEGAL_NODE 1000	// higher than the highest legal node number/*  The Routing Agent*/class BCAST: public Agent {	/*	 * make some friends first 	 */	friend class NackTimer_bcast;	friend class RetransmitTimer_bcast;        friend class HelloTimer_bcast;        friend class NeighborTimer_bcast;	friend class BCASTHandler; public:        BCAST(nsaddr_t id);        void		recv(Packet *p, Handler *); protected:        int		command(int, const char *const *);        int		initialized() { return 1 && target_; }        /*         * Neighbor Management         */        void            nb_insert(nsaddr_t id);        BCAST_Neighbor* nb_lookup(nsaddr_t id);        void            nb_delete(nsaddr_t id);        void            nb_purge(void);	void		add_neighbors(BCAST_Neighbor *nb, int num_neigbors,						nsaddr_t *one_hop_neighors);	void		nb_determine_degrees(int *max, int *n);        /*         * Packet TX Routines         */        void            forward(Packet *p);        void            sendHello(void);	void		sendNack(nsaddr_t id, u_int32_t bid);	void		sendPacket(Packet *p, double delay);                                                  /*         * Packet RX Routines         */	void		recvBCAST(Packet *p);        void            recvHello(Packet *p);	void		recvNack(Packet *p);        nsaddr_t        index;          // IP Address of this node        mttable		mtable;		// Multicast Groups node joined        /*         * Handle duplicate packets         */        UniqueIDHandler  uid_handler;        bcast_ncache	 nbhead;                 // Neighbor Cache        /*         * Timers         */	NackTimer_bcast       nacktimer;	RetransmitTimer_bcast rtxtimer;        HelloTimer_bcast      htimer;        NeighborTimer_bcast   ntimer;        /*         *  A queue used by the routing layer to buffer         *  packets before it broadcasts them.         */        BCASTHandler	bcast_queue;	/*	 * A cache of recently transmitted packets	 */	PacketCache 	p_cache;        /*         * A mechanism for logging the contents of the routing         * table.         */        Trace           *logtarget;        /*         * A pointer to the network interface queue that sits         * between the "classifier" and the "link layer".         */        PriQueue        *ifqueue;        /* for passing packets up to agents */        PortClassifier *dmux_;};#endif /* __bcast_h__ */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品在线| 国产精品久久久久桃色tv| 日本中文字幕不卡| 欧美不卡一区二区三区四区| 乱中年女人伦av一区二区| 欧美一区二区三区四区在线观看| 蜜桃久久久久久久| 久久嫩草精品久久久精品一| av资源站一区| 一区二区三区精品视频| 91精品国产高清一区二区三区蜜臀 | 亚洲国产精品久久艾草纯爱| 亚洲色图在线看| 欧洲亚洲精品在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲欧洲美洲综合色网| 日本高清不卡在线观看| 人人爽香蕉精品| 中文字幕国产一区二区| 欧美三级欧美一级| 国产乱人伦偷精品视频不卡| 中文字幕一区不卡| 3d动漫精品啪啪| 国产成人在线免费| 亚洲成人777| 国产日产欧美一区| 欧美日韩亚洲不卡| 国产电影一区二区三区| 亚洲成a人v欧美综合天堂下载| 日韩美一区二区三区| www.亚洲人| 国产在线精品一区在线观看麻豆| 亚洲欧美日本在线| 精品国产网站在线观看| 色女孩综合影院| 国产精品一区免费视频| 日韩福利视频导航| 亚洲少妇30p| 久久久99久久| 在线91免费看| 欧美视频一区二区三区在线观看| 国产精品一区一区| 麻豆精品国产91久久久久久| 亚洲欧美激情小说另类| 国产日本欧美一区二区| 欧美日本免费一区二区三区| 99精品视频一区| 国产一区二区91| 日韩av中文在线观看| 亚洲人精品午夜| 国产精品狼人久久影院观看方式| 精品少妇一区二区三区在线视频| 在线免费不卡视频| 成人黄色小视频| 国产成a人亚洲精品| 免费看欧美女人艹b| 五月婷婷激情综合网| 亚洲精品一二三区| 亚洲18影院在线观看| 不卡视频一二三| 国产精品系列在线观看| 日韩国产精品久久久久久亚洲| 国产精品国产自产拍高清av王其| 久久久精品影视| 精品日本一线二线三线不卡| 欧美男同性恋视频网站| 色老头久久综合| gogogo免费视频观看亚洲一| 国产69精品久久777的优势| 麻豆国产精品官网| 日本少妇一区二区| 免费黄网站欧美| 久久精品国产成人一区二区三区| 五月婷婷综合在线| 视频精品一区二区| 三级久久三级久久久| 三级一区在线视频先锋 | 成人美女在线观看| 国产成人精品免费| 成人h精品动漫一区二区三区| 国产一区视频导航| 国产乱子伦视频一区二区三区 | 免费在线观看一区| 日本不卡的三区四区五区| 日韩在线播放一区二区| 免费精品视频最新在线| 国内成人精品2018免费看| 国产精品1024久久| 成人国产一区二区三区精品| 99久久er热在这里只有精品66| av电影在线观看一区| 色婷婷久久久久swag精品| 欧美网站大全在线观看| 日韩欧美激情四射| 国产亚洲短视频| 一区免费观看视频| 亚洲一二三级电影| 捆绑紧缚一区二区三区视频| 国产一区二三区| 99re成人精品视频| 欧美日韩国产区一| 久久九九国产精品| 一区二区三区波多野结衣在线观看| 亚洲不卡av一区二区三区| 亚洲gay无套男同| 久久se精品一区精品二区| proumb性欧美在线观看| 4438x亚洲最大成人网| 欧美精品v日韩精品v韩国精品v| 欧美一级片在线看| 国产午夜精品美女毛片视频| 成人欧美一区二区三区视频网页| 亚洲人成7777| 捆绑调教美女网站视频一区| 91在线国产福利| 欧美一区二区高清| **欧美大码日韩| 麻豆一区二区三区| 99久久精品国产网站| 日韩一区二区麻豆国产| 一区在线播放视频| 久久av中文字幕片| 欧美在线视频你懂得| 国产日韩欧美高清在线| 视频在线在亚洲| 色老汉av一区二区三区| 久久香蕉国产线看观看99| 91小视频在线免费看| 日韩三级精品电影久久久| 一区二区视频免费在线观看| 国产精品一区不卡| 日韩免费电影网站| 亚洲444eee在线观看| 97se狠狠狠综合亚洲狠狠| 日韩精品一区二区三区中文精品 | 欧美日韩在线不卡| 亚洲天堂中文字幕| 国产精品888| 日韩一区二区三区四区| 亚洲综合成人在线| 99re视频精品| 欧美国产精品v| 韩国av一区二区三区| 欧美精品九九99久久| 夜夜精品浪潮av一区二区三区| 东方欧美亚洲色图在线| 久久色在线观看| 美女脱光内衣内裤视频久久网站 | 国产最新精品精品你懂的| 在线播放/欧美激情| 亚洲线精品一区二区三区| 99热精品一区二区| 久久99最新地址| 欧美一卡二卡在线| 日韩国产精品久久久| 欧美挠脚心视频网站| 亚洲国产成人精品视频| 欧美色倩网站大全免费| 亚洲国产另类精品专区| 在线这里只有精品| 夜夜操天天操亚洲| 欧洲中文字幕精品| 樱花草国产18久久久久| 色吧成人激情小说| 亚洲一二三四在线观看| 欧洲精品一区二区| 天天做天天摸天天爽国产一区| 欧美日韩免费一区二区三区| 一区二区三区成人在线视频| 一本色道久久加勒比精品| 一区二区三区四区av| 91成人在线观看喷潮| 午夜a成v人精品| 日韩欧美的一区| 国产一区二区三区免费在线观看| 国产亚洲综合性久久久影院| 国产精品12区| 亚洲色图制服诱惑 | 91麻豆精品91久久久久久清纯 | 91丨九色丨蝌蚪丨老版| 亚洲另类春色国产| 欧美日韩国产天堂| 久久精品国产一区二区三| 久久影视一区二区| 不卡区在线中文字幕| 一区二区三区四区不卡视频 | 久久精品国产精品亚洲综合| 久久亚洲综合色一区二区三区| 成人app网站| 夜夜爽夜夜爽精品视频| 日韩色在线观看| 国产.精品.日韩.另类.中文.在线.播放| 中国av一区二区三区| 91欧美一区二区| 日本不卡视频一二三区| 欧美国产欧美综合| 欧美色成人综合| 国产伦理精品不卡| 伊人开心综合网| 日韩美一区二区三区|