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

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

?? cmu-trace.cc

?? ns2.1b5版本中cbrp碼
?? CC
字號:
#include <packet.h>#include <ip.h>#include <tcp.h>#include <rtp.h>#include <arp.h>#include <cmu/marshall.h>#include <cmu/tora/tora_packet.h>	// TORA#include <cmu/aodv/aodv_packet.h>	// AODV#include <cmu/dsr/hdr_sr.h>		// DSR#include <cmu/cbrp/hdr_cbrp.h>         //CBRP  -Jinyang#include <cmu/imep/imep_spec.h>		// IMEP#include <cmu/mac.h>#include <cmu/mac-802_11.h>#include <cmu/cmu-trace.h>// #define LOG_POSITIONextern char* pt_names[];static class CMUTraceClass : public TclClass {public:	CMUTraceClass() : TclClass("CMUTrace") { }	TclObject* create(int, const char*const* argv) {		return (new CMUTrace(argv[4], *argv[5]));	}} cmutrace_class;CMUTrace::CMUTrace(const char *s, char t) : Trace(t){	bzero(tracename, sizeof(tracename));	strncpy(tracename, s, MAX_ID_LEN);        if(strcmp(tracename, "RTR") == 0) {                tracetype = TR_ROUTER;        }        else if(strcmp(tracename, "TRP") == 0) {                tracetype = TR_ROUTER;        }        else if(strcmp(tracename, "MAC") == 0) {                tracetype = TR_MAC;        }        else if(strcmp(tracename, "IFQ") == 0) {                tracetype = TR_IFQ;        }        else if(strcmp(tracename, "AGT") == 0) {                tracetype = TR_AGENT;        }        else {               fprintf(stderr,"CMU Trace Initialized with invalid type '%s'\n",		       tracename);                exit(1);        }	assert(type_ == DROP || type_ == SEND || type_ == RECV);        node_ = 0;	bind("off_mac_", &off_mac_);	bind("off_arp_", &off_arp_);	bind("off_TORA_", &off_TORA_);	bind("off_IMEP_", &off_IMEP_);        bind("off_AODV_", &off_AODV_);	bind("off_SR_", &off_sr_);        bind("off_CBRP_", &off_cbrp_);}voidCMUTrace::format_mac(Packet *p, const char *why, int offset){	struct hdr_cmn *ch = HDR_CMN(p);	struct hdr_ip *ih = HDR_IP(p);	struct hdr_mac802_11 *mh = HDR_MAC(p);	char op = (char) type_;	if(tracetype == TR_ROUTER && type_ == SEND) {		if(src_ != ih->src_)			op = FWRD;	}#ifdef LOG_POSITION        double x = 0.0, y = 0.0, z = 0.0;        node_->getLoc(&x, &y, &z);#endif	sprintf(wrk_ + offset,#ifdef LOG_POSITION		"%c %.9f _%d_ (%6.2f %6.2f) %3s %4s %d %s %d [%x %x %x %x %x] ",#else		"%c %.9f _%d_ %3s %4s %d %s %d [%x %x %x %x %x] ",#endif		op,		Scheduler::instance().clock(),                src_,                           // this node#ifdef LOG_POSITION                x,                y,#endif		tracename,		why,                ch->uid(),                      // identifier for this event		pt_names[ch->ptype()],		ch->size(),		GET2BYTE(&mh->dh_fc),		mh->dh_duration,		ETHER_ADDR(mh->dh_da),		ETHER_ADDR(mh->dh_sa),		GET_ETHER_TYPE(mh->dh_body));}voidCMUTrace::format_ip(Packet *p, int offset){        struct hdr_cmn *ch = HDR_CMN(p);	struct hdr_ip *ih = HDR_IP(p);	sprintf(wrk_ + offset, "------- [%d:%d %d:%d %d %d] ",		ih->src_, ih->sport_,		ih->dst_, ih->dport_,		ih->ttl_, (ch->next_hop_ < 0) ? 0 : ch->next_hop_);}voidCMUTrace::format_arp(Packet *p, int offset){	struct hdr_arp *ah = HDR_ARP(p);	sprintf(wrk_ + offset,		"------- [%s %d/%d %d/%d]",		ah->arp_op == ARPOP_REQUEST ?  "REQUEST" : "REPLY",		ah->arp_sha,		ah->arp_spa,		ah->arp_tha,		ah->arp_tpa);}voidCMUTrace::format_cbrp(Packet *p, int offset){	hdr_cbrp *cbrph = (hdr_cbrp *)p->access(off_cbrp_);        hdr_ip *iph = (hdr_ip *)p->access(off_ip_);	sprintf(wrk_ + offset,		"[%d #%d %d->%d] [%d #%d %d %d %d->%d] [%d %d] [%d %d %d %d->%d]",                cbrph->route_request(),                cbrph->rtreq_seq(),                iph->src(),                cbrph->request_destination(),                cbrph->route_reply(),                cbrph->rtreq_seq(),                cbrph->route_reply_len(),                // the dest of the src route                cbrph->reply_addrs()[cbrph->route_reply_len()-1].addr,                cbrph->reply_addrs()[0].addr,                iph->dst(),                cbrph->route_shortened(),                cbrph->route_repaired(),                cbrph->route_error(),                cbrph->num_route_errors(),                cbrph->down_links()[cbrph->num_route_errors() - 1].tell_addr,                cbrph->down_links()[cbrph->num_route_errors() - 1].from_addr,                cbrph->down_links()[cbrph->num_route_errors() - 1].to_addr);      	}		voidCMUTrace::format_dsr(Packet *p, int offset){	hdr_sr *srh = (hdr_sr*)p->access(off_sr_);	sprintf(wrk_ + offset, 		"%d [%d %d %d] [%d %d %d %d->%d] [%d %d %d %d->%d]",		srh->num_addrs(),		srh->route_request(),		srh->rtreq_seq(),		srh->max_propagation(),		srh->route_reply(),		srh->rtreq_seq(),		srh->route_reply_len(),		// the dest of the src route		srh->reply_addrs()[0].addr,		srh->reply_addrs()[srh->route_reply_len()-1].addr,		srh->route_error(),		srh->num_route_errors(),		srh->down_links()[srh->num_route_errors() - 1].tell_addr,		srh->down_links()[srh->num_route_errors() - 1].from_addr,		srh->down_links()[srh->num_route_errors() - 1].to_addr);}voidCMUTrace::format_aodv(Packet *p, int offset){        struct hdr_aodv *ah = HDR_AODV(p);        struct hdr_aodv_request *rq = HDR_AODV_REQUEST(p);        struct hdr_aodv_reply *rp = HDR_AODV_REPLY(p);        switch(ah->ah_type) {        case AODVTYPE_RREQ:		sprintf(wrk_ + offset,			"[0x%x %d %d [%d %d] [%d %d]] (REQUEST)",			rq->rq_type,                        rq->rq_hop_count,                        rq->rq_bcast_id,                        rq->rq_dst,                        rq->rq_dst_seqno,                        rq->rq_src,                        rq->rq_src_seqno);                break;        case AODVTYPE_RREP:        case AODVTYPE_UREP:        case AODVTYPE_HELLO:		sprintf(wrk_ + offset,			"[0x%x %d [%d %d] %d] (%s)",			rp->rp_type,                        rp->rp_hop_count,                        rp->rp_dst,                        rp->rp_dst_seqno,                        rp->rp_lifetime,                        rp->rp_type == AODVTYPE_RREP ? "REPLY" :                        (rp->rp_type == AODVTYPE_UREP ? "UNSOLICITED REPLY" :                         "HELLO"));                break;        default:                fprintf(stderr,                        "%s: invalid AODV packet type\n", __FUNCTION__);                abort();        }}voidCMUTrace::format_msg(Packet *, int){}voidCMUTrace::format_imep(Packet *p, int offset){	struct hdr_imep *im = HDR_IMEP(p);#define U_INT16_T(x)	*((u_int16_t*) &(x))	sprintf(wrk_ + offset,		"[%c %c %c 0x%04x] ",		(im->imep_block_flags & BLOCK_FLAG_ACK) ? 'A' : '-',		(im->imep_block_flags & BLOCK_FLAG_HELLO) ? 'H' : '-',		(im->imep_block_flags & BLOCK_FLAG_OBJECT) ? 'O' : '-',		U_INT16_T(im->imep_length));#undef U_INT16_T}voidCMUTrace::format_tora(Packet *p, int offset){        struct hdr_tora *th = HDR_TORA(p);	struct hdr_tora_qry *qh = HDR_TORA_QRY(p);	struct hdr_tora_upd *uh = HDR_TORA_UPD(p);	struct hdr_tora_clr *ch = HDR_TORA_CLR(p);	switch(th->th_type) {	case TORATYPE_QRY:		sprintf(wrk_ + offset, "[0x%x %d] (QUERY)",			qh->tq_type, qh->tq_dst);		break;	case TORATYPE_UPD:		sprintf(wrk_ + offset,			"[0x%x %d (%f %d %d %d %d)] (UPDATE)",			uh->tu_type,			uh->tu_dst,			uh->tu_tau,			uh->tu_oid,			uh->tu_r,			uh->tu_delta,			uh->tu_id);		break;	case TORATYPE_CLR:		sprintf(wrk_ + offset, "[0x%x %d %f %d] (CLEAR)",			ch->tc_type,			ch->tc_dst,			ch->tc_tau,			ch->tc_oid);		break;	}}voidCMUTrace::format_tcp(Packet *p, int offset){	struct hdr_cmn *ch = HDR_CMN(p);	struct hdr_tcp *th = HDR_TCP(p);	sprintf(wrk_ + offset,		"[%d %d] %d %d",		th->seqno_,		th->ackno_,		ch->num_forwards(),		ch->opt_num_forwards());}voidCMUTrace::format_rtp(Packet *p, int offset){	struct hdr_cmn *ch = HDR_CMN(p);	struct hdr_rtp *rh = HDR_RTP(p);	sprintf(wrk_ + offset,		"[%d] %d %d",		rh->seqno_,		ch->num_forwards(),		ch->opt_num_forwards());}void CMUTrace::format(Packet* p, const char *why){	hdr_cmn *ch = HDR_CMN(p);	int offset = 0;	/*	 * Log the MAC Header	 */	format_mac(p, why, offset);	offset = strlen(wrk_);	switch(ch->ptype()) {	case PT_MAC:		break;	case PT_ARP:		format_arp(p, offset);		break;	default:		format_ip(p, offset);		offset = strlen(wrk_);		switch(ch->ptype()) {                case PT_CBRP:                        format_cbrp(p,offset);                        break;		case PT_TORA:			format_tora(p, offset);			break;		case PT_IMEP:			format_imep(p, offset);			break;		case PT_DSR:			format_dsr(p, offset);			break;		case PT_MESSAGE:			format_msg(p, offset);			break;		case PT_TCP:		case PT_ACK:			format_tcp(p, offset);			break;		case PT_CBR:			format_rtp(p, offset);			break;                case PT_AODV:                        format_aodv(p, offset);                        break;		default:			fprintf(stderr, "%s - invalid packet type (%s).\n",				__PRETTY_FUNCTION__, pt_names[ch->ptype()]);			exit(1);		}	}}intCMUTrace::command(int argc, const char*const* argv){        if(argc == 3) {                if(strcmp(argv[1], "node") == 0) {                        node_ = (MobileNode*) TclObject::lookup(argv[2]);                        if(node_ == 0)                                return TCL_ERROR;                        return TCL_OK;                }        }	return Trace::command(argc, argv);}voidCMUTrace::recv(Packet *p, Handler *h){        struct hdr_ip *ih = HDR_IP(p);        assert(initialized());        /*         * Agent Trace "stamp" the packet with the optimal route on         * sending.         */        if(tracetype == TR_AGENT && type_ == SEND) {                assert(src_ == ih->src_);                God::instance()->stampPacket(p);        }#if 0        /*         * When the originator of a packet drops the packet, it may or may         * not have been stamped by GOD.  Stamp it before logging the         * information.         */        if(src_ == ih->src_ && type_ == DROP) {                God::instance()->stampPacket(p);        }#endif	format(p, "---");	dump();	if(target_ == 0)		Packet::free(p);	else		send(p, h);}voidCMUTrace::recv(Packet *p, const char* why){        assert(initialized() && type_ == DROP);#if 0        /*         * When the originator of a packet drops the packet, it may or may         * not have been stamped by GOD.  Stamp it before logging the         * information.         */        if(src_ == ih->src_) {                God::instance()->stampPacket(p);        }#endif	format(p, why);	dump();	Packet::free(p);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品99久久久久久老狼| 五月天亚洲精品| 亚洲色图丝袜美腿| 性欧美大战久久久久久久久| 国产成人免费视频网站| 色视频成人在线观看免| 日韩欧美国产系列| 亚洲综合免费观看高清完整版| 免费高清不卡av| 欧美少妇xxx| 国产精品久久久久三级| 久久国产精品无码网站| 在线观看国产日韩| 91国偷自产一区二区三区观看| 欧美精品一区二区久久久| 亚洲狠狠丁香婷婷综合久久久| 国产一区二区三区免费| 欧美日韩一区二区三区免费看| 日韩精品综合一本久道在线视频| 亚洲欧美另类在线| 亚洲成人一二三| 成人av第一页| 久久久亚洲精华液精华液精华液| 三级不卡在线观看| 欧美亚洲日本国产| 一区二区三区免费网站| 成人在线视频一区| 在线不卡中文字幕| 亚洲成a人v欧美综合天堂| 99这里只有精品| 国产精品久久看| 国产91露脸合集magnet| 国产日产欧产精品推荐色| 久久精品噜噜噜成人88aⅴ| 波多野结衣中文一区| 久久久电影一区二区三区| 精品伊人久久久久7777人| 欧美日韩综合一区| 日韩国产成人精品| 欧美三级视频在线播放| 日韩电影一二三区| 91超碰这里只有精品国产| 无码av免费一区二区三区试看| 91免费看视频| 中文字幕电影一区| 91久久人澡人人添人人爽欧美| 欧美国产精品专区| 在线亚洲+欧美+日本专区| 亚洲色图另类专区| 精品视频在线免费看| 偷拍日韩校园综合在线| 日韩视频一区二区三区| 蜜桃视频一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 亚洲欧美色一区| 在线亚洲高清视频| 麻豆成人综合网| 精品久久久三级丝袜| 成人av在线一区二区三区| 国产精品久久一卡二卡| 欧美日韩一区二区三区高清| 石原莉奈在线亚洲三区| 久久精品人人爽人人爽| 成人av在线资源| 中文字幕亚洲综合久久菠萝蜜| 91在线视频观看| 亚洲va欧美va人人爽午夜| 久久综合精品国产一区二区三区 | 亚洲国产电影在线观看| 成人免费视频网站在线观看| 亚洲综合视频在线| 日韩视频免费观看高清完整版| 婷婷激情综合网| 中文字幕在线不卡国产视频| 色94色欧美sute亚洲线路一久| 蜜桃视频在线观看一区二区| 国产日产精品一区| 日韩一区二区影院| 成人三级伦理片| 欧美a一区二区| 国产精品国模大尺度视频| 538prom精品视频线放| 国产美女视频一区| 国产清纯美女被跳蛋高潮一区二区久久w| 色婷婷亚洲综合| 久久99精品国产麻豆婷婷| 亚洲国产精品精华液网站| 久久蜜桃一区二区| 欧美一二三四在线| 91丝袜美腿高跟国产极品老师| 久久精品999| 亚洲综合999| 亚洲啪啪综合av一区二区三区| 日韩精品自拍偷拍| 91精品在线免费| caoporn国产精品| 成人一级视频在线观看| 美女被吸乳得到大胸91| 中文字幕日韩一区| 久久综合中文字幕| 色综合久久中文综合久久牛| 成人综合日日夜夜| 久久se精品一区精品二区| 五月激情综合色| 日韩久久一区二区| 国产精品对白交换视频| 亚洲精品在线观看网站| 精品国产凹凸成av人导航| 91福利视频网站| 欧美亚洲国产一区二区三区va| 国产91综合一区在线观看| 国v精品久久久网| 精品一区二区在线观看| 国内精品视频一区二区三区八戒| 亚洲精品国产一区二区精华液| 日韩一区在线免费观看| 国产亚洲精品超碰| 欧美激情一区二区三区不卡| 精品国产3级a| 91麻豆精品国产综合久久久久久| 在线一区二区三区四区五区 | 欧美经典三级视频一区二区三区| 91麻豆精品国产综合久久久久久| 色婷婷激情一区二区三区| 欧美日韩中文国产| 欧美三级韩国三级日本三斤 | 欧美精品一级二级三级| 97久久超碰精品国产| 91亚洲永久精品| 日本精品视频一区二区三区| 91麻豆免费观看| 欧美在线看片a免费观看| 91精彩视频在线| 欧美日韩国产成人在线免费| 欧美一级高清大全免费观看| 日韩亚洲欧美综合| 久久久99免费| 国产欧美精品在线观看| 欧美成人国产一区二区| 日韩一级片网站| 欧美极品少妇xxxxⅹ高跟鞋| 中文字幕一区二区不卡| 日本午夜一区二区| 久久国产欧美日韩精品| 不卡av在线免费观看| 色婷婷精品大视频在线蜜桃视频 | yourporn久久国产精品| 99视频在线观看一区三区| 欧洲人成人精品| 91麻豆精品国产| 精品免费99久久| 日本一区二区视频在线观看| 亚洲一级二级在线| 久久99久久久欧美国产| 91香蕉国产在线观看软件| 欧美中文字幕久久| 久久色中文字幕| 亚洲精品中文字幕乱码三区| 久久se这里有精品| 91在线一区二区| 日韩免费福利电影在线观看| 成人免费一区二区三区视频 | 欧美激情在线一区二区三区| 亚洲一本大道在线| 中文字幕综合网| 国产成人在线电影| 成人激情校园春色| 91麻豆精品国产91| 欧美剧在线免费观看网站 | 亚洲国产精品久久一线不卡| 另类小说色综合网站| 91麻豆国产福利在线观看| 日韩精品一区二区三区在线| 亚洲欧洲在线观看av| 国产精品免费久久| 麻豆视频一区二区| 国产精品一区专区| 在线观看网站黄不卡| 国产亚洲短视频| 美女视频黄免费的久久| www.性欧美| 国产亚洲污的网站| 亚洲成av人综合在线观看| 日本福利一区二区| 国产清纯在线一区二区www| 激情综合网最新| 欧美日韩中文一区| 亚洲日韩欧美一区二区在线| 亚洲一卡二卡三卡四卡无卡久久| 国产精品12区| 日韩色视频在线观看| 亚洲免费高清视频在线| 免费成人在线观看| 日韩一区二区三区在线观看 | 性做久久久久久久免费看| 在线观看一区二区视频| 精品久久久三级丝袜| 久久se精品一区二区| 欧美精品久久一区二区三区| 国产精品美女久久久久av爽李琼|