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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ll.c

?? 在ns發布的版本中
?? C
字號:
/* -*-	Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- *//* * Copyright (c) 1997 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the Daedalus Research *	Group at the University of California Berkeley. * 4. Neither the name of the University nor of the Laboratory may be used *    to endorse or promote products derived from this software without *    specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * Contributed by the Daedalus Research Group, http://daedalus.cs.berkeley.edu *//* * Code contained within lines such as the below *  // wqos - <date> - dugdale  // wqos - changes by dugdale ends * * or *  // wqos - <date> - almquist  // wqos - changes by almquist ends * * have been changed or added to implement the PCF mode of IEEE 802.11 and is * Copyright (c) 2001 Anders Lindgren and Andreas Almquist. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the above disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the above disclaimer in the *    documentation and/or other materials provided with the distribution. * *    The disclaimer above apply to the modifications made to the source code *    by Anders Lindgren and Andreas Almquist as well as to the rest of the code. */#ifndef lintstatic const char rcsid[] =    "@(#) $Header: /u23/ns-user/cvsroot/ns-2/ll.cc,v 1.1.1.1.6.2 2001/08/20 12:04:14 dugdale Exp $ (UCB)";#endif#include <errmodel.h>#include <mac.h>#include <ll.h>#include <address.h>#include <dsr/hdr_sr.h>int hdr_ll::offset_;static class LLHeaderClass : public PacketHeaderClass {public:	LLHeaderClass()	: PacketHeaderClass("PacketHeader/LL",					    sizeof(hdr_ll)) {		bind_offset(&hdr_ll::offset_);	}} class_hdr_ll;static class LLClass : public TclClass {public:	LLClass() : TclClass("LL") {}	TclObject* create(int, const char*const*) {		return (new LL);	}} class_ll;LL::LL() : LinkDelay(), seqno_(0), ackno_(0), macDA_(0), ifq_(0),	mac_(0), lanrouter_(0), arptable_(0), varp_(0),	downtarget_(0), uptarget_(0){	bind("macDA_", &macDA_);}int LL::command(int argc, const char*const* argv){	Tcl& tcl = Tcl::instance();	if (argc == 3) {		if (strcmp(argv[1], "ifq") == 0) {			ifq_ = (Queue*) TclObject::lookup(argv[2]);			return (TCL_OK);		}		if(strcmp(argv[1], "arptable") == 0) {                        arptable_ = (ARPTable*)TclObject::lookup(argv[2]);                        assert(arptable_);                        return TCL_OK;                }		if(strcmp(argv[1], "varp") == 0) {                        varp_ = (VARPTable*)TclObject::lookup(argv[2]);                        assert(varp_);                        return TCL_OK;                }		if (strcmp(argv[1], "mac") == 0) {			mac_ = (Mac*) TclObject::lookup(argv[2]);                        assert(mac_);			// wqos - Fri 13 Oct 00, 12:50 - dugdale                        mac_->setll(this);			// wqos - changes by dugdale ends			return (TCL_OK);		}		if (strcmp(argv[1], "down-target") == 0) {			downtarget_ = (NsObject*) TclObject::lookup(argv[2]);			return (TCL_OK);		}		if (strcmp(argv[1], "up-target") == 0) {			uptarget_ = (NsObject*) TclObject::lookup(argv[2]);			return (TCL_OK);		}		if (strcmp(argv[1], "lanrouter") == 0) {			lanrouter_ = (LanRouter*) TclObject::lookup(argv[2]);			return (TCL_OK);		}	}	else if (argc == 2) {		if (strcmp(argv[1], "ifq") == 0) {			tcl.resultf("%s", ifq_->name());			return (TCL_OK);		}		if (strcmp(argv[1], "mac") == 0) {			tcl.resultf("%s", mac_->name());			return (TCL_OK);		}		if (strcmp(argv[1], "down-target") == 0) {			tcl.resultf("%s", downtarget_->name());			return (TCL_OK);		}		if (strcmp(argv[1], "up-target") == 0) {			tcl.resultf("%s", uptarget_->name());			return (TCL_OK);		}	}	return LinkDelay::command(argc, argv);}void LL::recv(Packet* p, Handler* /*h*/){	hdr_cmn *ch = HDR_CMN(p);	//char *mh = (char*) HDR_MAC(p);	//struct hdr_sr *hsr = HDR_SR(p);	/*	 * Sanity Check	 */	assert(initialized());	if(p->incoming) {                p->incoming = 0;	}	// If direction = UP, then pass it up the stack	// Otherwise, set direction to DOWN and pass it down the stack	if(ch->direction() == hdr_cmn::UP) {		//if(mac_->hdr_type(mh) == ETHERTYPE_ARP)		if(ch->ptype_ == PT_ARP)			arptable_->arpinput(p, this);		else			uptarget_ ? sendUp(p) : drop(p);		return;	}	ch->direction() = hdr_cmn::DOWN;	sendDown(p);}void LL::sendDown(Packet* p){		hdr_cmn *ch = HDR_CMN(p);	hdr_ip *ih = HDR_IP(p);	nsaddr_t dst = (nsaddr_t)Address::instance().get_nodeaddr(ih->daddr());	//nsaddr_t dst = ih->dst();	hdr_ll *llh = HDR_LL(p);	char *mh = (char*)p->access(hdr_mac::offset_);		llh->seqno_ = ++seqno_;	llh->lltype() = LL_DATA;	mac_->hdr_src(mh, mac_->addr());	mac_->hdr_type(mh, ETHERTYPE_IP);	int tx = 0;		switch(ch->addr_type()) {	case NS_AF_ILINK:		mac_->hdr_dst((char*) HDR_MAC(p), ch->next_hop());		break;	case NS_AF_INET:		dst = ch->next_hop();		/* FALL THROUGH */			case NS_AF_NONE:				if (IP_BROADCAST == (u_int32_t) dst)		{			mac_->hdr_dst((char*) HDR_MAC(p), MAC_BROADCAST);			break;		}		/* Assuming arptable is present, send query */		if (arptable_) {			tx = arptable_->arpresolve(dst, p, this);			break;		}		//if (varp_) {		//tx = varp_->arpresolve(dst, p);		//break;					//}					/* FALL THROUGH */	default:				int IPnh = (lanrouter_) ? lanrouter_->next_hop(p) : -1;		if (IPnh < 0)			mac_->hdr_dst((char*) HDR_MAC(p),macDA_);		else if (varp_)			tx = varp_->arpresolve(IPnh, p);		else			mac_->hdr_dst((char*) HDR_MAC(p), IPnh);		break;	}		if (tx == 0) {		Scheduler& s = Scheduler::instance();	// let mac decide when to take a new packet from the queue.		s.schedule(downtarget_, p, delay_);	}}void LL::sendUp(Packet* p){	Scheduler& s = Scheduler::instance();	if (hdr_cmn::access(p)->error() > 0)		drop(p);	else		s.schedule(uptarget_, p, delay_);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费| 亚洲欧美一区二区三区国产精品| 国产日产欧美精品一区二区三区| 亚洲综合色婷婷| 国产在线不卡视频| 欧美在线视频全部完| 国产日韩欧美精品综合| 香蕉久久一区二区不卡无毒影院 | 精品在线一区二区三区| 91久久精品一区二区三区| 国产午夜精品一区二区三区嫩草| 日韩精品五月天| 在线观看国产日韩| 亚洲日本成人在线观看| 国产一区美女在线| 欧美一区二区日韩| 亚洲国产乱码最新视频 | 自拍偷拍亚洲综合| 国产高清精品网站| 久久众筹精品私拍模特| 秋霞电影网一区二区| 欧美视频在线一区| 亚洲专区一二三| 91啪亚洲精品| 亚洲欧美日韩国产成人精品影院| 成人免费视频免费观看| 国产婷婷一区二区| 国产91精品一区二区麻豆网站| 日韩精品一区国产麻豆| 麻豆成人av在线| 日韩精品一区二区三区swag| 精品亚洲成av人在线观看| 欧美日韩精品一区二区三区四区| 亚洲欧美电影一区二区| 色婷婷精品大视频在线蜜桃视频 | 欧美变态口味重另类| 久久国产精品99精品国产| 日韩欧美综合一区| 久久99日本精品| 国产亚洲一二三区| 成人h动漫精品一区二区| 亚洲欧美另类图片小说| 欧美午夜精品久久久| 石原莉奈在线亚洲二区| 日韩一区二区三区视频| 精品无人区卡一卡二卡三乱码免费卡 | 国内不卡的二区三区中文字幕| 欧美成人猛片aaaaaaa| 国产91丝袜在线观看| 亚洲蜜臀av乱码久久精品| 欧美日韩高清影院| 精品一区二区三区免费毛片爱| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一本一道久久香蕉| 中文字幕一区二区三区蜜月| 91福利精品视频| 久久精品免费观看| 国产精品久久久久久久午夜片| 色视频一区二区| 精品制服美女丁香| 亚洲欧美国产三级| 欧美r级电影在线观看| fc2成人免费人成在线观看播放| 亚洲综合成人网| 久久久久久久免费视频了| 99r精品视频| 奇米影视在线99精品| 国产欧美一区二区精品性色超碰 | 日韩欧美电影一二三| 粉嫩aⅴ一区二区三区四区| 一区二区三区在线观看欧美| 欧美一区二区三区婷婷月色| 国产91色综合久久免费分享| 亚洲国产精品久久久男人的天堂 | 成人久久视频在线观看| 亚洲乱码国产乱码精品精的特点| 91 com成人网| 色综合久久久网| 国产99一区视频免费| 丝袜美腿亚洲综合| 综合婷婷亚洲小说| 国产校园另类小说区| 91麻豆精品国产91久久久久久| 国产大陆亚洲精品国产| 婷婷激情综合网| 国产欧美日韩麻豆91| 日韩欧美国产综合在线一区二区三区| 国产99精品在线观看| 另类小说综合欧美亚洲| 亚洲午夜视频在线| 亚洲欧美日韩精品久久久久| 国产日韩欧美综合在线| 欧美一区二区成人6969| 欧美写真视频网站| 色诱视频网站一区| 成人精品在线视频观看| 国产一级精品在线| 久久国产免费看| 男女激情视频一区| 日韩中文字幕av电影| 一区二区三区在线视频免费| 国产精品美女久久福利网站| 久久女同互慰一区二区三区| 日韩午夜激情视频| 欧美电影在哪看比较好| 欧美视频一区二区三区| 91在线观看下载| 成人av电影在线网| 成年人国产精品| 99久久伊人久久99| 波多野洁衣一区| 91亚洲国产成人精品一区二区三| 国产成人高清在线| 成人午夜激情片| 成人午夜碰碰视频| 91女厕偷拍女厕偷拍高清| www.亚洲国产| 91黄色免费看| 欧美视频中文字幕| 欧美一区二区在线免费播放 | 国产精品久久久久影院亚瑟| 久久精品亚洲精品国产欧美kt∨| 国产网红主播福利一区二区| 欧美激情综合五月色丁香| 中文字幕一区二区三区不卡 | 欧美色图片你懂的| 欧美精品vⅰdeose4hd| 日韩一区二区三区在线| 日韩精品一区二区三区视频在线观看| 久久综合久久鬼色| 成人欧美一区二区三区小说| 亚洲一区二区三区中文字幕在线| 丝袜美腿亚洲色图| 久久狠狠亚洲综合| 成人福利视频在线| 在线精品视频一区二区| 欧美一区中文字幕| 国产视频一区在线观看| 亚洲人精品午夜| 亚洲v中文字幕| 国产麻豆成人传媒免费观看| 99热精品一区二区| 欧美疯狂做受xxxx富婆| 337p日本欧洲亚洲大胆色噜噜| 国产精品久久久久久福利一牛影视| 一区二区三区视频在线看| 日本不卡在线视频| 风间由美中文字幕在线看视频国产欧美| 成人综合日日夜夜| 欧美日韩免费观看一区三区| 精品国产免费一区二区三区香蕉| 国产精品伦一区| 日韩高清一区二区| 成人国产精品视频| 日韩欧美的一区二区| 亚洲视频免费看| 国产综合一区二区| 在线观看视频91| 国产无人区一区二区三区| 亚洲444eee在线观看| av亚洲精华国产精华| 欧美一级黄色片| 亚洲免费资源在线播放| 国产一区二区三区在线观看免费| 欧美手机在线视频| 亚洲国产精品黑人久久久| 日本欧美久久久久免费播放网| caoporen国产精品视频| 日韩一二在线观看| 亚洲午夜久久久久久久久电影院| 成人自拍视频在线观看| 91精品国产综合久久久久久| 亚洲天堂精品在线观看| 国产精品一二三区在线| 欧美一卡二卡在线| 亚洲免费在线观看| 久久一夜天堂av一区二区三区| 日韩精品一区二区三区在线播放 | 日韩1区2区3区| 91网站黄www| 国产日本一区二区| 麻豆精品视频在线观看视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产日韩欧美精品在线| 国产做a爰片久久毛片| 精品卡一卡二卡三卡四在线| 日本aⅴ亚洲精品中文乱码| 欧美三级中文字幕| 亚洲一区二区在线观看视频| 91在线国产福利| 亚洲欧美日韩国产成人精品影院 | 3atv在线一区二区三区| 亚洲午夜激情网页| 在线观看成人免费视频| 一区二区欧美视频| 在线看日韩精品电影| 亚洲午夜精品一区二区三区他趣| 在线观看视频一区二区| 亚洲午夜电影在线| 欧美精品一级二级三级|