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

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

?? print-isoclns.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
?? 第 1 頁 / 共 5 頁
字號:
trunctlv:    printf("%spacket exceeded snapshot",ident);    return(0);}/* * this is the common IS-REACH decoder it is called * from various EXTD-IS REACH style TLVs (22,24,222) */static intisis_print_ext_is_reach (const u_int8_t *tptr,const char *ident, int tlv_type) {    char ident_buffer[20];    int subtlv_type,subtlv_len,subtlv_sum_len;    int proc_bytes = 0; /* how many bytes did we process ? */        if (!TTEST2(*tptr, NODE_ID_LEN))        return(0);    printf("%sIS Neighbor: %s", ident, isis_print_id(tptr, NODE_ID_LEN));    tptr+=(NODE_ID_LEN);    if (tlv_type != ISIS_TLV_IS_ALIAS_ID) { /* the Alias TLV Metric field is implicit 0 */        if (!TTEST2(*tptr, 3))    /* and is therefore skipped */	    return(0);	printf(", Metric: %d",EXTRACT_24BITS(tptr));	tptr+=3;    }            if (!TTEST2(*tptr, 1))        return(0);    subtlv_sum_len=*(tptr++); /* read out subTLV length */    proc_bytes=NODE_ID_LEN+3+1;    printf(", %ssub-TLVs present",subtlv_sum_len ? "" : "no ");    if (subtlv_sum_len) {        printf(" (%u)",subtlv_sum_len);        while (subtlv_sum_len>0) {            if (!TTEST2(*tptr,2))                return(0);            subtlv_type=*(tptr++);            subtlv_len=*(tptr++);            /* prepend the ident string */            snprintf(ident_buffer, sizeof(ident_buffer), "%s  ",ident);            if(!isis_print_is_reach_subtlv(tptr,subtlv_type,subtlv_len,ident_buffer))                return(0);            tptr+=subtlv_len;            subtlv_sum_len-=(subtlv_len+2);            proc_bytes+=(subtlv_len+2);        }    }    return(proc_bytes);}/* * this is the common Multi Topology ID decoder * it is called from various MT-TLVs (222,229,235,237) */static intisis_print_mtid (const u_int8_t *tptr,const char *ident) {        if (!TTEST2(*tptr, 2))        return(0);    printf("%s%s",           ident,           tok2str(isis_mt_values,                   "Reserved for IETF Consensus",                   ISIS_MASK_MTID(EXTRACT_16BITS(tptr))));    printf(" Topology (0x%03x), Flags: [%s]",           ISIS_MASK_MTID(EXTRACT_16BITS(tptr)),           bittok2str(isis_mt_flag_values, "none",ISIS_MASK_MTFLAGS(EXTRACT_16BITS(tptr))));    return(2);}/* * this is the common extended IP reach decoder * it is called from TLVs (135,235,236,237) * we process the TLV and optional subTLVs and return * the amount of processed bytes */static intisis_print_extd_ip_reach (const u_int8_t *tptr, const char *ident, u_int16_t afi) {    char ident_buffer[20];#ifdef INET6    u_int8_t prefix[sizeof(struct in6_addr)]; /* shared copy buffer for IPv4 and IPv6 prefixes */#else    u_int8_t prefix[sizeof(struct in_addr)]; /* shared copy buffer for IPv4 prefixes */#endif    u_int metric, status_byte, bit_length, byte_length, sublen, processed, subtlvtype, subtlvlen;    if (!TTEST2(*tptr, 4))        return (0);    metric = EXTRACT_32BITS(tptr);    processed=4;    tptr+=4;        if (afi == AF_INET) {        if (!TTEST2(*tptr, 1)) /* fetch status byte */            return (0);        status_byte=*(tptr++);        bit_length = status_byte&0x3f;        if (bit_length > 32) {            printf("%sIPv4 prefix: bad bit length %u",                   ident,                   bit_length);            return (0);        }        processed++;#ifdef INET6    } else if (afi == AF_INET6) {        if (!TTEST2(*tptr, 1)) /* fetch status & prefix_len byte */            return (0);        status_byte=*(tptr++);        bit_length=*(tptr++);        if (bit_length > 128) {            printf("%sIPv6 prefix: bad bit length %u",                   ident,                   bit_length);            return (0);        }        processed+=2;#endif    } else        return (0); /* somebody is fooling us */    byte_length = (bit_length + 7) / 8; /* prefix has variable length encoding */       if (!TTEST2(*tptr, byte_length))        return (0);    memset(prefix, 0, sizeof prefix);   /* clear the copy buffer */    memcpy(prefix,tptr,byte_length);    /* copy as much as is stored in the TLV */    tptr+=byte_length;    processed+=byte_length;    if (afi == AF_INET)        printf("%sIPv4 prefix: %15s/%u",               ident,               ipaddr_string(prefix),               bit_length);#ifdef INET6    if (afi == AF_INET6)        printf("%sIPv6 prefix: %s/%u",               ident,               ip6addr_string(prefix),               bit_length);#endif        printf(", Distribution: %s, Metric: %u",           ISIS_MASK_TLV_EXTD_IP_UPDOWN(status_byte) ? "down" : "up",           metric);    if (afi == AF_INET && ISIS_MASK_TLV_EXTD_IP_SUBTLV(status_byte))        printf(", sub-TLVs present");#ifdef INET6    if (afi == AF_INET6)        printf(", %s%s",               ISIS_MASK_TLV_EXTD_IP6_IE(status_byte) ? "External" : "Internal",               ISIS_MASK_TLV_EXTD_IP6_SUBTLV(status_byte) ? ", sub-TLVs present" : "");#endif        if ((afi == AF_INET  && ISIS_MASK_TLV_EXTD_IP_SUBTLV(status_byte))#ifdef INET6     || (afi == AF_INET6 && ISIS_MASK_TLV_EXTD_IP6_SUBTLV(status_byte))#endif	) {        /* assume that one prefix can hold more           than one subTLV - therefore the first byte must reflect           the aggregate bytecount of the subTLVs for this prefix        */        if (!TTEST2(*tptr, 1))            return (0);        sublen=*(tptr++);        processed+=sublen+1;        printf(" (%u)",sublen);   /* print out subTLV length */                while (sublen>0) {            if (!TTEST2(*tptr,2))                return (0);            subtlvtype=*(tptr++);            subtlvlen=*(tptr++);            /* prepend the ident string */            snprintf(ident_buffer, sizeof(ident_buffer), "%s  ",ident);            if(!isis_print_ip_reach_subtlv(tptr,subtlvtype,subtlvlen,ident_buffer))                return(0);            tptr+=subtlvlen;            sublen-=(subtlvlen+2);        }    }    return (processed);}/* * isis_print * Decode IS-IS packets.  Return 0 on error. */static int isis_print (const u_int8_t *p, u_int length){    const struct isis_common_header *isis_header;    const struct isis_iih_lan_header *header_iih_lan;    const struct isis_iih_ptp_header *header_iih_ptp;    const struct isis_lsp_header *header_lsp;    const struct isis_csnp_header *header_csnp;    const struct isis_psnp_header *header_psnp;    const struct isis_tlv_lsp *tlv_lsp;    const struct isis_tlv_ptp_adj *tlv_ptp_adj;    const struct isis_tlv_is_reach *tlv_is_reach;    const struct isis_tlv_es_reach *tlv_es_reach;    u_int8_t pdu_type, max_area, id_length, tlv_type, tlv_len, tmp, alen, lan_alen, prefix_len;    u_int8_t ext_is_len, ext_ip_len, mt_len;    const u_int8_t *optr, *pptr, *tptr;    u_short packet_len,pdu_len;    u_int i,vendor_id;    packet_len=length;    optr = p; /* initialize the _o_riginal pointer to the packet start -                 need it for parsing the checksum TLV */    isis_header = (const struct isis_common_header *)p;    TCHECK(*isis_header);    pptr = p+(ISIS_COMMON_HEADER_SIZE);    header_iih_lan = (const struct isis_iih_lan_header *)pptr;    header_iih_ptp = (const struct isis_iih_ptp_header *)pptr;    header_lsp = (const struct isis_lsp_header *)pptr;    header_csnp = (const struct isis_csnp_header *)pptr;    header_psnp = (const struct isis_psnp_header *)pptr;    if (!eflag)        printf("IS-IS");    /*     * Sanity checking of the header.     */    if (isis_header->version != ISIS_VERSION) {	printf("version %d packet not supported", isis_header->version);	return (0);    }    if ((isis_header->id_length != SYSTEM_ID_LEN) && (isis_header->id_length != 0)) {	printf("system ID length of %d is not supported",	       isis_header->id_length);	return (0);    }    if (isis_header->pdu_version != ISIS_VERSION) {	printf("version %d packet not supported", isis_header->pdu_version);	return (0);    }    max_area = isis_header->max_area;    switch(max_area) {    case 0:	max_area = 3;	 /* silly shit */	break;    case 255:	printf("bad packet -- 255 areas");	return (0);    default:	break;    }    id_length = isis_header->id_length;    switch(id_length) {    case 0:        id_length = 6;	 /* silly shit again */	break;    case 1:              /* 1-8 are valid sys-ID lenghts */    case 2:    case 3:    case 4:    case 5:    case 6:    case 7:    case 8:        break;    case 255:        id_length = 0;   /* entirely useless */	break;    default:        break;    }    /* toss any non 6-byte sys-ID len PDUs */    if (id_length != 6 ) { 	printf("bad packet -- illegal sys-ID length (%u)", id_length);	return (0);    }    pdu_type=isis_header->pdu_type;    /* in non-verbose mode print the basic PDU Type plus PDU specific brief information*/    if (vflag < 1) {        printf("%s%s",               eflag ? "" : ", ",               tok2str(isis_pdu_values,"unknown PDU-Type %u",pdu_type));	switch (pdu_type) {	case ISIS_PDU_L1_LAN_IIH:	case ISIS_PDU_L2_LAN_IIH:	    printf(", src-id %s",                   isis_print_id(header_iih_lan->source_id,SYSTEM_ID_LEN));	    printf(", lan-id %s, prio %u",                   isis_print_id(header_iih_lan->lan_id,NODE_ID_LEN),                   header_iih_lan->priority);	    break;	case ISIS_PDU_PTP_IIH:	    printf(", src-id %s", isis_print_id(header_iih_ptp->source_id,SYSTEM_ID_LEN));	    break;	case ISIS_PDU_L1_LSP:	case ISIS_PDU_L2_LSP:	    printf(", lsp-id %s, seq 0x%08x, lifetime %5us",		   isis_print_id(header_lsp->lsp_id, LSP_ID_LEN),		   EXTRACT_32BITS(header_lsp->sequence_number),		   EXTRACT_16BITS(header_lsp->remaining_lifetime));	    break;	case ISIS_PDU_L1_CSNP:	case ISIS_PDU_L2_CSNP:	    printf(", src-id %s", isis_print_id(header_csnp->source_id,NODE_ID_LEN));	    break;	case ISIS_PDU_L1_PSNP:	case ISIS_PDU_L2_PSNP:	    printf(", src-id %s", isis_print_id(header_psnp->source_id,NODE_ID_LEN));	    break;	}	printf(", length %u", length);        return(1);    }    /* ok they seem to want to know everything - lets fully decode it */    printf("%slength %u", eflag ? "" : ", ",length);    printf("\n\t%s, hlen: %u, v: %u, pdu-v: %u, sys-id-len: %u (%u), max-area: %u (%u)",           tok2str(isis_pdu_values,                   "unknown, type %u",                   pdu_type),           isis_header->fixed_len,           isis_header->version,           isis_header->pdu_version,	   id_length,	   isis_header->id_length,           max_area,           isis_header->max_area);    if (vflag > 1) {        if(!print_unknown_data(optr,"\n\t",8)) /* provide the _o_riginal pointer */            return(0);                         /* for optionally debugging the common header */    }    switch (pdu_type) {    case ISIS_PDU_L1_LAN_IIH:    case ISIS_PDU_L2_LAN_IIH:	if (isis_header->fixed_len != (ISIS_COMMON_HEADER_SIZE+ISIS_IIH_LAN_HEADER_SIZE)) {	    printf(", bogus fixed header length %u should be %lu",		   isis_header->fixed_len, (unsigned long)ISIS_IIH_LAN_HEADER_SIZE);	    return (0);	}	pdu_len=EXTRACT_16BITS(header_iih_lan->pdu_len);	if (packet_len>pdu_len) {            packet_len=pdu_len; /* do TLV decoding as long as it makes sense */            length=pdu_len;	}	TCHECK(*header_iih_lan);	printf("\n\t  source-id: %s,  holding time: %us, Flags: [%s]",               isis_print_id(header_iih_lan->source_id,SYSTEM_ID_LEN),               EXTRACT_16BITS(header_iih_lan->holding_time),               tok2str(isis_iih_circuit_type_values,                       "unknown circuit type 0x%02x",                       header_iih_lan->circuit_type));	printf("\n\t  lan-id:    %s

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷拍与自拍一区| 欧美日韩高清一区二区不卡| 欧美va亚洲va香蕉在线| 免费成人在线播放| 精品少妇一区二区三区| 狠狠色丁香久久婷婷综合丁香| 久久久久国产精品麻豆ai换脸| 成人免费av网站| 一级特黄大欧美久久久| 正在播放一区二区| 国产高清久久久久| 亚洲摸摸操操av| 欧洲精品在线观看| 九九九精品视频| 国产精品拍天天在线| 色8久久人人97超碰香蕉987| 七七婷婷婷婷精品国产| 国产精品三级av| 欧美午夜电影网| 日韩欧美你懂的| 欧美在线一二三四区| 国产精品蜜臀在线观看| 欧美性猛交xxxx黑人交| 亚洲日本一区二区三区| 91久色porny | 欧洲日韩一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 成人不卡免费av| 亚洲午夜在线视频| 久久久久久久网| 在线一区二区三区四区五区| 麻豆传媒一区二区三区| 综合电影一区二区三区 | 久久嫩草精品久久久精品一| 99精品久久久久久| 国产亚洲一区二区三区在线观看 | 丁香激情综合国产| 亚洲视频资源在线| 91精品国模一区二区三区| 成人99免费视频| 欧美aa在线视频| 一区二区三区在线播| 欧美成va人片在线观看| 91行情网站电视在线观看高清版| 久久精品国产99国产精品| 亚洲激情综合网| 欧美韩国一区二区| 精品国产区一区| 欧美肥胖老妇做爰| 色一情一乱一乱一91av| 国产精品小仙女| 美女视频网站黄色亚洲| 亚洲成av人综合在线观看| 亚洲日本在线观看| 国产日韩欧美综合在线| 精品国产免费一区二区三区四区 | 精品日韩成人av| 欧美综合色免费| av中文字幕在线不卡| 国产真实乱对白精彩久久| 欧美aaaaa成人免费观看视频| 亚洲激情校园春色| 国产精品久久夜| 国产欧美视频一区二区三区| 日韩写真欧美这视频| 欧美在线综合视频| 91久久香蕉国产日韩欧美9色| av中文字幕在线不卡| 国产99精品国产| 国产成人av电影在线播放| 精品一区二区av| 黄色资源网久久资源365| 麻豆成人久久精品二区三区红 | 91成人免费在线| 青青草97国产精品免费观看| 91.麻豆视频| 欧美精品第1页| 欧美日韩国产高清一区二区| 在线观看www91| 欧美日韩大陆在线| 欧美人伦禁忌dvd放荡欲情| 欧美日韩一区不卡| 欧美美女一区二区| 91.xcao| 日韩欧美一区二区三区在线| 精品少妇一区二区三区在线视频| 精品国产免费视频| 欧美激情中文字幕一区二区| 国产精品无圣光一区二区| 国产精品国产三级国产普通话99 | 欧美国产欧美综合| 91色综合久久久久婷婷| 91在线国产观看| 91福利视频在线| 国产精品伦理一区二区| 久久网站热最新地址| 欧美日韩中文字幕精品| 久久99精品国产91久久来源| 国产精品12区| av在线不卡观看免费观看| 一本色道久久综合精品竹菊| 欧美日韩成人综合天天影院 | 5月丁香婷婷综合| 久久人人97超碰com| 国产精品嫩草影院av蜜臀| 亚洲精品国久久99热| 美女在线视频一区| 国产盗摄一区二区| 在线亚洲一区观看| 欧美一卡2卡三卡4卡5免费| 久久久亚洲欧洲日产国码αv| 中文字幕一区免费在线观看| 丝袜a∨在线一区二区三区不卡| 麻豆精品精品国产自在97香蕉| 成人avav影音| 欧美一区二区大片| 国产精品成人免费在线| 粉嫩欧美一区二区三区高清影视| 日韩亚洲电影在线| 91精品啪在线观看国产60岁| 欧美精品一区在线观看| 一区二区三区四区国产精品| 国内不卡的二区三区中文字幕| kk眼镜猥琐国模调教系列一区二区| 欧美日韩精品福利| 国产精品色眯眯| 日本欧美一区二区三区乱码| 99久久伊人网影院| 精品久久一二三区| 午夜精品成人在线视频| 白白色 亚洲乱淫| 精品少妇一区二区三区日产乱码| 亚洲综合精品自拍| 国产一区二区免费视频| 在线不卡免费欧美| 日韩美女啊v在线免费观看| 韩国av一区二区三区四区| 欧美日韩一卡二卡| 亚洲啪啪综合av一区二区三区| 国内久久婷婷综合| 91麻豆精品国产自产在线观看一区 | 色噜噜狠狠色综合中国| 亚洲激情自拍视频| 成人免费高清在线| 日韩精品影音先锋| 亚洲成人免费观看| 91亚洲永久精品| 亚洲国产精品成人久久综合一区| 亚洲成人资源网| 色天天综合色天天久久| 国产精品久久久久永久免费观看| 久久99蜜桃精品| 日韩一区二区三区四区| 日韩高清在线观看| 777久久久精品| 亚洲国产精品久久人人爱| 91在线码无精品| 自拍偷拍国产精品| 成人精品视频一区二区三区| 日韩欧美美女一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 国产日韩精品一区二区三区在线| 国产精品免费久久| 亚洲成人综合在线| 日韩激情在线观看| 欧美色爱综合网| 午夜欧美在线一二页| 欧美日韩日日摸| 日本伊人精品一区二区三区观看方式 | 亚洲人成人一区二区在线观看| av资源网一区| 伊人一区二区三区| 在线看国产一区二区| 亚洲成人免费观看| 日韩一区二区三区av| 麻豆91精品视频| 亚洲精品在线三区| 国产综合成人久久大片91| 久久精品视频网| 国v精品久久久网| 亚洲三级在线免费观看| 欧美性生活久久| 日本大胆欧美人术艺术动态| 欧美大片在线观看| 国产成人精品亚洲午夜麻豆| 国产精品久久久一本精品| 91福利精品第一导航| 琪琪一区二区三区| 欧美经典三级视频一区二区三区| 波多野结衣在线一区| 亚洲综合在线观看视频| 777xxx欧美| 国产高清视频一区| 亚洲欧美日韩中文字幕一区二区三区 | 中文字幕一区在线观看视频| 欧洲色大大久久| 国产一区 二区| 亚洲人成精品久久久久久 | 欧美精品一区二区久久久| 99re这里只有精品首页|