亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产一区二区免费看| 日韩精品专区在线影院重磅| 老司机精品视频导航| 97se亚洲国产综合自在线| 日韩一区二区三区在线视频| 亚洲精品视频在线观看免费| 国产乱人伦偷精品视频不卡| 欧美日韩一级二级| 最新热久久免费视频| 国产乱码精品一区二区三区av| 欧美精选一区二区| 亚洲综合在线免费观看| 日韩精品午夜视频| 欧美日韩激情一区二区三区| 亚洲激情av在线| 精品一区二区在线视频| 555www色欧美视频| 亚洲成av人片在线| 91高清视频在线| 国产精品久久久久四虎| 国产成人自拍在线| 国产午夜精品久久久久久久 | 在线一区二区三区四区| 欧美韩国日本综合| 成人午夜激情片| 国产蜜臀av在线一区二区三区| 美女视频黄久久| 日韩精品专区在线影院观看| 青椒成人免费视频| 欧美一级黄色片| 蜜臀av性久久久久蜜臀aⅴ流畅| 正在播放一区二区| 日本美女一区二区三区视频| 欧美美女激情18p| 爽好多水快深点欧美视频| 91精品国产综合久久精品图片 | 成人欧美一区二区三区黑人麻豆| 国产suv一区二区三区88区| 国产色综合一区| 成人视屏免费看| 日韩理论电影院| 欧美写真视频网站| 另类专区欧美蜜桃臀第一页| 久久久精品免费免费| 成人免费视频视频| 亚洲午夜精品在线| 欧美电视剧在线观看完整版| 国产毛片精品一区| 综合激情网...| 中文字幕在线观看一区| 99久久久国产精品免费蜜臀| 亚洲综合丝袜美腿| 欧美一级理论片| 成人午夜av电影| 亚洲精品老司机| 7777女厕盗摄久久久| 国产一区久久久| 一区在线观看免费| 欧美日韩精品一区二区三区蜜桃 | 国产精品99久久久久久久vr| 中文字幕一区二区三区在线观看| 欧美性猛交xxxx黑人交| 久久99九九99精品| 亚洲日本一区二区| 日韩一区二区中文字幕| 成人18视频在线播放| 五月婷婷综合激情| 国产日韩精品一区二区浪潮av| 日本久久精品电影| 美女视频黄频大全不卡视频在线播放| 国产日韩欧美精品一区| 欧美日韩精品一区二区在线播放| 韩国女主播一区| 亚洲精品水蜜桃| 久久美女高清视频| 欧洲在线/亚洲| 国产白丝精品91爽爽久久| 亚洲国产美国国产综合一区二区 | 色av成人天堂桃色av| 久久国产日韩欧美精品| 亚洲黄色录像片| 欧美国产一区在线| 欧美v国产在线一区二区三区| 色8久久人人97超碰香蕉987| 国产精品中文欧美| 全部av―极品视觉盛宴亚洲| 亚洲精选免费视频| 国产亚洲一二三区| 日韩视频免费观看高清在线视频| 99国产精品国产精品久久| 麻豆精品一二三| 午夜精品久久一牛影视| 亚洲美女视频在线| 中文久久乱码一区二区| 精品少妇一区二区三区视频免付费| 日本高清不卡在线观看| 久久超碰97中文字幕| 婷婷中文字幕综合| 亚洲一级二级在线| 亚洲精品成a人| 亚洲视频电影在线| 国产精品久久777777| 国产精品污污网站在线观看| 久久综合九色综合欧美就去吻| 欧美一区二区成人| 555www色欧美视频| 69堂亚洲精品首页| 欧美日韩国产精品自在自线| 在线观看日产精品| 久久久久99精品一区| 精品国产成人系列| 日韩天堂在线观看| 欧美成人三级电影在线| 日韩免费性生活视频播放| 欧美精品tushy高清| 日韩一区二区三| 日韩午夜激情电影| 久久久亚洲高清| 中文无字幕一区二区三区| 国产午夜精品美女毛片视频| 国产精品情趣视频| 亚洲欧洲99久久| 亚洲免费电影在线| 一区二区欧美视频| 亚洲成人免费视频| 91原创在线视频| 另类小说一区二区三区| 久久99精品国产麻豆婷婷洗澡| 麻豆精品蜜桃视频网站| 国产一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 国产风韵犹存在线视精品| 成人黄色av网站在线| 欧美性一二三区| 7777精品伊人久久久大香线蕉最新版 | 蜜臀av国产精品久久久久| 黄色日韩三级电影| 成人黄色在线视频| 欧美色大人视频| 精品国产91乱码一区二区三区 | 日韩亚洲欧美高清| 国产视频视频一区| 一二三区精品福利视频| 奇米影视一区二区三区小说| 高清不卡一二三区| 欧美日韩中文字幕一区| 亚洲精品一区二区精华| 18涩涩午夜精品.www| 亚洲成精国产精品女| 美女精品一区二区| 91社区在线播放| 欧美一区二区三区免费视频| 中文字幕av不卡| 日韩av二区在线播放| 成人高清在线视频| 日韩欧美一卡二卡| 亚洲男人天堂av网| 黄色成人免费在线| 在线免费视频一区二区| 久久久久久久一区| 亚洲成人免费电影| 97精品久久久久中文字幕 | 国产69精品久久99不卡| 欧美精品久久99| 亚洲欧洲综合另类在线| 国产米奇在线777精品观看| 欧美三级一区二区| 国产精品毛片高清在线完整版| 免费成人在线视频观看| 在线欧美一区二区| 国产精品久久久久久久久图文区| 久久99国产精品麻豆| 中文字幕一区在线| 国产一区二区三区久久悠悠色av| 欧美日韩一区二区三区在线看 | 午夜欧美2019年伦理| 成人av在线电影| 久久亚洲一区二区三区明星换脸| 亚洲亚洲人成综合网络| 99视频一区二区| 国产色产综合色产在线视频| 美腿丝袜亚洲一区| 制服丝袜亚洲色图| 亚洲一区二区三区四区五区中文| 不卡视频免费播放| 国产精品区一区二区三| 国产一区二区久久| 精品奇米国产一区二区三区| 日韩av一区二区三区| 欧美区在线观看| 日韩二区三区在线观看| 欧美日韩精品一区二区天天拍小说 | 欧美肥胖老妇做爰| 亚洲国产精品久久一线不卡| 日本大香伊一区二区三区| 综合久久综合久久| 一本久道久久综合中文字幕| 最新欧美精品一区二区三区| 99在线精品免费| 亚洲美女少妇撒尿|