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

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

?? print-ospf.c

?? TCPDUMP的C語言源代碼,是在數(shù)據(jù)鏈路層的應用
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997 *	The 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: (1) source code distributions * retain the above copyright notice and this paragraph in its entirety, (2) * distributions including binary code include the above copyright notice and * this paragraph in its entirety in the documentation or other materials * provided with the distribution, and (3) all advertising materials mentioning * features or use of this software display the following acknowledgement: * ``This product includes software developed by the University of California, * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of * the University nor the names of its contributors may be used to endorse * or promote products derived from this software without specific prior * written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * OSPF support contributed by Jeffrey Honig (jch@mitchell.cit.cornell.edu) */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-ospf.c,v 1.66 2007-10-08 07:53:21 hannes Exp $ (LBL)";#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include "interface.h"#include "addrtoname.h"#include "extract.h"#include "gmpls.h"#include "ospf.h"#include "ip.h"static struct tok ospf_option_values[] = {        { OSPF_OPTION_T,	"MultiTopology" }, /* draft-ietf-ospf-mt-09 */	{ OSPF_OPTION_E,	"External" },	{ OSPF_OPTION_MC,	"Multicast" },	{ OSPF_OPTION_NP,	"NSSA" },        { OSPF_OPTION_L,        "LLS" },	{ OSPF_OPTION_DC,	"Demand Circuit" },	{ OSPF_OPTION_O,	"Opaque" },	{ OSPF_OPTION_DN,	"Up/Down" },	{ 0,			NULL }};static struct tok ospf_authtype_values[] = {	{ OSPF_AUTH_NONE,	"none" },	{ OSPF_AUTH_SIMPLE,	"simple" },	{ OSPF_AUTH_MD5,	"MD5" },	{ 0,			NULL }};static struct tok ospf_rla_flag_values[] = {	{ RLA_FLAG_B,		"ABR" },	{ RLA_FLAG_E,		"ASBR" },	{ RLA_FLAG_W1,		"Virtual" },	{ RLA_FLAG_W2,		"W2" },	{ 0,			NULL }};static struct tok type2str[] = {	{ OSPF_TYPE_UMD,	"UMD" },	{ OSPF_TYPE_HELLO,	"Hello" },	{ OSPF_TYPE_DD,		"Database Description" },	{ OSPF_TYPE_LS_REQ,	"LS-Request" },	{ OSPF_TYPE_LS_UPDATE,	"LS-Update" },	{ OSPF_TYPE_LS_ACK,	"LS-Ack" },	{ 0,			NULL }};static struct tok lsa_values[] = {	{ LS_TYPE_ROUTER,       "Router" },	{ LS_TYPE_NETWORK,      "Network" },	{ LS_TYPE_SUM_IP,       "Summary" },	{ LS_TYPE_SUM_ABR,      "ASBR Summary" },	{ LS_TYPE_ASE,          "External" },	{ LS_TYPE_GROUP,        "Multicast Group" },	{ LS_TYPE_NSSA,         "NSSA" },	{ LS_TYPE_OPAQUE_LL,    "Link Local Opaque" },	{ LS_TYPE_OPAQUE_AL,    "Area Local Opaque" },	{ LS_TYPE_OPAQUE_DW,    "Domain Wide Opaque" },	{ 0,			NULL }};static struct tok ospf_dd_flag_values[] = {	{ OSPF_DB_INIT,	        "Init" },	{ OSPF_DB_MORE,	        "More" },	{ OSPF_DB_MASTER,	"Master" },    { OSPF_DB_RESYNC,	"OOBResync" },	{ 0,			NULL }};static struct tok lsa_opaque_values[] = {	{ LS_OPAQUE_TYPE_TE,    "Traffic Engineering" },	{ LS_OPAQUE_TYPE_GRACE, "Graceful restart" },	{ LS_OPAQUE_TYPE_RI,    "Router Information" },	{ 0,			NULL }};static struct tok lsa_opaque_te_tlv_values[] = {	{ LS_OPAQUE_TE_TLV_ROUTER, "Router Address" },	{ LS_OPAQUE_TE_TLV_LINK,   "Link" },	{ 0,			NULL }};static struct tok lsa_opaque_te_link_tlv_subtlv_values[] = {	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_TYPE,            "Link Type" },	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_ID,              "Link ID" },	{ LS_OPAQUE_TE_LINK_SUBTLV_LOCAL_IP,             "Local Interface IP address" },	{ LS_OPAQUE_TE_LINK_SUBTLV_REMOTE_IP,            "Remote Interface IP address" },	{ LS_OPAQUE_TE_LINK_SUBTLV_TE_METRIC,            "Traffic Engineering Metric" },	{ LS_OPAQUE_TE_LINK_SUBTLV_MAX_BW,               "Maximum Bandwidth" },	{ LS_OPAQUE_TE_LINK_SUBTLV_MAX_RES_BW,           "Maximum Reservable Bandwidth" },	{ LS_OPAQUE_TE_LINK_SUBTLV_UNRES_BW,             "Unreserved Bandwidth" },	{ LS_OPAQUE_TE_LINK_SUBTLV_ADMIN_GROUP,          "Administrative Group" },	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_LOCAL_REMOTE_ID, "Link Local/Remote Identifier" },	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_PROTECTION_TYPE, "Link Protection Type" },	{ LS_OPAQUE_TE_LINK_SUBTLV_INTF_SW_CAP_DESCR,    "Interface Switching Capability" },	{ LS_OPAQUE_TE_LINK_SUBTLV_SHARED_RISK_GROUP,    "Shared Risk Link Group" },	{ LS_OPAQUE_TE_LINK_SUBTLV_BW_CONSTRAINTS,       "Bandwidth Constraints" },	{ 0,			NULL }};static struct tok lsa_opaque_grace_tlv_values[] = {	{ LS_OPAQUE_GRACE_TLV_PERIOD,             "Grace Period" },	{ LS_OPAQUE_GRACE_TLV_REASON,             "Graceful restart Reason" },	{ LS_OPAQUE_GRACE_TLV_INT_ADDRESS,        "IPv4 interface address" },	{ 0,		        NULL }};static struct tok lsa_opaque_grace_tlv_reason_values[] = {	{ LS_OPAQUE_GRACE_TLV_REASON_UNKNOWN,     "Unknown" },	{ LS_OPAQUE_GRACE_TLV_REASON_SW_RESTART,  "Software Restart" },	{ LS_OPAQUE_GRACE_TLV_REASON_SW_UPGRADE,  "Software Reload/Upgrade" },	{ LS_OPAQUE_GRACE_TLV_REASON_CP_SWITCH,   "Control Processor Switch" },	{ 0,		        NULL }};static struct tok lsa_opaque_te_tlv_link_type_sub_tlv_values[] = {	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_TYPE_PTP, "Point-to-point" },	{ LS_OPAQUE_TE_LINK_SUBTLV_LINK_TYPE_MA,  "Multi-Access" },	{ 0,			NULL }};static struct tok lsa_opaque_ri_tlv_values[] = {	{ LS_OPAQUE_RI_TLV_CAP, "Router Capabilities" },	{ 0,		        NULL }};static struct tok lsa_opaque_ri_tlv_cap_values[] = {	{ 1, "Reserved" },	{ 2, "Reserved" },	{ 4, "Reserved" },	{ 8, "Reserved" },	{ 16, "graceful restart capable" },	{ 32, "graceful restart helper" },	{ 64, "Stub router support" },	{ 128, "Traffic engineering" },	{ 256, "p2p over LAN" },	{ 512, "path computation server" },	{ 0,		        NULL }};static struct tok ospf_lls_tlv_values[] = {	{ OSPF_LLS_EO,	"Extended Options" },	{ OSPF_LLS_MD5,	"MD5 Authentication" },	{ 0,	NULL }};static struct tok ospf_lls_eo_options[] = {	{ OSPF_LLS_EO_LR,	"LSDB resync" },	{ OSPF_LLS_EO_RS,	"Restart" },	{ 0,	NULL }};static char tstr[] = " [|ospf2]";#ifdef WIN32#define inline __inline#endif /* WIN32 */static int ospf_print_lshdr(const struct lsa_hdr *);static const u_char *ospf_print_lsa(const struct lsa *);static int ospf_decode_v2(const struct ospfhdr *, const u_char *);static int ospf_decode_lls(const struct ospfhdr *, register u_int);intospf_print_grace_lsa (u_int8_t *tptr, u_int ls_length) {    u_int tlv_type, tlv_length;    while (ls_length > 0) {        TCHECK2(*tptr, 4);        if (ls_length < 4) {            printf("\n\t    Remaining LS length %u < 4", ls_length);            return -1;        }        tlv_type = EXTRACT_16BITS(tptr);        tlv_length = EXTRACT_16BITS(tptr+2);        tptr+=4;        ls_length-=4;                            printf("\n\t    %s TLV (%u), length %u, value: ",               tok2str(lsa_opaque_grace_tlv_values,"unknown",tlv_type),               tlv_type,               tlv_length);        if (tlv_length > ls_length) {            printf("\n\t    Bogus length %u > %u", tlv_length,                   ls_length);            return -1;        }        /* Infinite loop protection. */        if (tlv_type == 0 || tlv_length ==0) {            return -1;        }        TCHECK2(*tptr, tlv_length);        switch(tlv_type) {        case LS_OPAQUE_GRACE_TLV_PERIOD:            if (tlv_length != 4) {                printf("\n\t    Bogus length %u != 4", tlv_length);                return -1;            }            printf("%us",EXTRACT_32BITS(tptr));            break;        case LS_OPAQUE_GRACE_TLV_REASON:            if (tlv_length != 1) {                printf("\n\t    Bogus length %u != 1", tlv_length);                return -1;            }            printf("%s (%u)",                   tok2str(lsa_opaque_grace_tlv_reason_values, "Unknown", *tptr),                   *tptr);            break;        case LS_OPAQUE_GRACE_TLV_INT_ADDRESS:            if (tlv_length != 4) {                printf("\n\t    Bogus length %u != 4", tlv_length);                return -1;            }            printf("%s", ipaddr_string(tptr));            break;        default:            if (vflag <= 1) {                if(!print_unknown_data(tptr,"\n\t      ",tlv_length))                    return -1;            }            break;        }        /* in OSPF everything has to be 32-bit aligned, including TLVs */        if (tlv_length%4 != 0)            tlv_length+=4-(tlv_length%4);        ls_length-=tlv_length;        tptr+=tlv_length;    }    return 0;trunc:    return -1;}intospf_print_te_lsa (u_int8_t *tptr, u_int ls_length) {    u_int tlv_type, tlv_length, subtlv_type, subtlv_length;    u_int priority_level, te_class, count_srlg;    union { /* int to float conversion buffer for several subTLVs */        float f;         u_int32_t i;    } bw;    while (ls_length != 0) {        TCHECK2(*tptr, 4);        if (ls_length < 4) {            printf("\n\t    Remaining LS length %u < 4", ls_length);            return -1;        }        tlv_type = EXTRACT_16BITS(tptr);        tlv_length = EXTRACT_16BITS(tptr+2);        tptr+=4;        ls_length-=4;                            printf("\n\t    %s TLV (%u), length: %u",               tok2str(lsa_opaque_te_tlv_values,"unknown",tlv_type),               tlv_type,               tlv_length);        if (tlv_length > ls_length) {            printf("\n\t    Bogus length %u > %u", tlv_length,                   ls_length);            return -1;        }        /* Infinite loop protection. */        if (tlv_type == 0 || tlv_length ==0) {            return -1;        }        switch(tlv_type) {        case LS_OPAQUE_TE_TLV_LINK:            while (tlv_length >= sizeof(subtlv_type) + sizeof(subtlv_length)) {                if (tlv_length < 4) {                    printf("\n\t    Remaining TLV length %u < 4",                           tlv_length);                    return -1;                }                TCHECK2(*tptr, 4);                subtlv_type = EXTRACT_16BITS(tptr);                subtlv_length = EXTRACT_16BITS(tptr+2);                tptr+=4;                tlv_length-=4;                                            printf("\n\t      %s subTLV (%u), length: %u",                       tok2str(lsa_opaque_te_link_tlv_subtlv_values,"unknown",subtlv_type),                       subtlv_type,                       subtlv_length);                                            TCHECK2(*tptr, subtlv_length);                switch(subtlv_type) {                case LS_OPAQUE_TE_LINK_SUBTLV_ADMIN_GROUP:                    printf(", 0x%08x", EXTRACT_32BITS(tptr));                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_LINK_ID:                case LS_OPAQUE_TE_LINK_SUBTLV_LINK_LOCAL_REMOTE_ID:                    printf(", %s (0x%08x)",                           ipaddr_string(tptr),                           EXTRACT_32BITS(tptr));                    if (subtlv_length == 8) /* rfc4203 */                        printf(", %s (0x%08x)",                               ipaddr_string(tptr+4),                               EXTRACT_32BITS(tptr+4));                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_LOCAL_IP:                case LS_OPAQUE_TE_LINK_SUBTLV_REMOTE_IP:                    printf(", %s", ipaddr_string(tptr));                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_MAX_BW:                case LS_OPAQUE_TE_LINK_SUBTLV_MAX_RES_BW:                    bw.i = EXTRACT_32BITS(tptr);                    printf(", %.3f Mbps", bw.f*8/1000000 );                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_UNRES_BW:                    for (te_class = 0; te_class < 8; te_class++) {                        bw.i = EXTRACT_32BITS(tptr+te_class*4);                        printf("\n\t\tTE-Class %u: %.3f Mbps",                               te_class,                               bw.f*8/1000000 );                    }                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_BW_CONSTRAINTS:                    printf("\n\t\tBandwidth Constraints Model ID: %s (%u)",                           tok2str(diffserv_te_bc_values, "unknown", *tptr),                           *tptr);                    /* decode BCs until the subTLV ends */                    for (te_class = 0; te_class < (subtlv_length-4)/4; te_class++) {                        bw.i = EXTRACT_32BITS(tptr+4+te_class*4);                        printf("\n\t\t  Bandwidth constraint CT%u: %.3f Mbps",                               te_class,                               bw.f*8/1000000 );                    }                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_TE_METRIC:                    printf(", Metric %u", EXTRACT_32BITS(tptr));                    break;                case LS_OPAQUE_TE_LINK_SUBTLV_LINK_PROTECTION_TYPE:                    printf(", %s, Priority %u",                           bittok2str(gmpls_link_prot_values, "none", *tptr),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久婷婷香蕉 | 国产欧美日韩综合精品一区二区| 亚洲.国产.中文慕字在线| 91论坛在线播放| 亚洲一区二区三区爽爽爽爽爽| 欧美午夜精品一区| 日本成人中文字幕| 国产亚洲一区二区三区| www.亚洲精品| 亚洲影院在线观看| 日韩美女视频一区二区在线观看| 久久99国产精品免费| 久久久久久久av麻豆果冻| 东方欧美亚洲色图在线| 亚洲精品免费在线| 欧美一级在线视频| 成人在线视频一区二区| 一区二区三区成人在线视频| 制服丝袜日韩国产| 国产精品1区2区| 亚洲久本草在线中文字幕| 欧美日韩一区高清| 国产精品主播直播| 亚洲高清一区二区三区| 精品欧美一区二区在线观看| 成人av高清在线| 午夜国产不卡在线观看视频| 精品国产一区二区三区不卡| 成人av中文字幕| 日日摸夜夜添夜夜添亚洲女人| 久久综合国产精品| 欧美亚洲动漫精品| 国产福利91精品一区二区三区| 一区二区三区四区在线播放| 欧美一级电影网站| 色天使色偷偷av一区二区| 麻豆视频观看网址久久| **欧美大码日韩| 欧美变态tickling挠脚心| 97久久超碰国产精品电影| 久久精品72免费观看| 亚洲欧美日韩精品久久久久| 亚洲欧洲日韩综合一区二区| 51精品秘密在线观看| av电影在线观看一区| 久久精品国产成人一区二区三区| 日韩久久一区二区| 久久久久久免费网| 欧美一区二区三区四区五区| 色老汉一区二区三区| 国产精品中文字幕日韩精品| 三级一区在线视频先锋| 亚洲视频免费在线观看| 久久精品一区二区三区不卡牛牛 | 久久精品免视看| 欧美日韩精品福利| 91美女在线观看| 国产激情精品久久久第一区二区| 日韩激情一区二区| 亚洲精品国产视频| 国产精品久久看| 久久日一线二线三线suv| 91精品国产免费| 欧美另类变人与禽xxxxx| 色综合一个色综合亚洲| 成人激情开心网| 国产综合久久久久久鬼色| 免费在线看一区| 日韩精品每日更新| 亚洲狠狠爱一区二区三区| 亚洲天堂2014| 亚洲特级片在线| 国产精品国产自产拍高清av | 亚洲女爱视频在线| 亚洲同性gay激情无套| 国产精品成人免费在线| 亚洲午夜久久久久| 日韩欧美综合在线| 不卡av免费在线观看| 亚洲精品免费看| 欧美精品日韩精品| 91在线porny国产在线看| 夜夜亚洲天天久久| 久久午夜色播影院免费高清| 91免费在线看| 国产激情视频一区二区三区欧美| 午夜精品久久久久久久99樱桃| 亚洲第一狼人社区| 欧美性三三影院| 欧美视频精品在线| 欧美欧美欧美欧美| 欧美一区二区三区免费视频| 日韩三级视频在线观看| 精品久久人人做人人爱| 久久久久国产成人精品亚洲午夜| 日本一区免费视频| 亚洲精品国产无套在线观| 亚洲成a人片综合在线| 麻豆中文一区二区| 国产乱理伦片在线观看夜一区| 国产精品综合视频| 北岛玲一区二区三区四区| 91麻豆精品在线观看| 欧美卡1卡2卡| 久久久三级国产网站| 综合久久久久综合| 日韩1区2区日韩1区2区| 国产成人av电影免费在线观看| www.欧美日韩| 欧美特级限制片免费在线观看| 在线成人午夜影院| 精品国产伦一区二区三区观看方式| 国产日韩欧美麻豆| 精品一区二区影视| 成人高清av在线| 欧美日韩在线免费视频| 2020国产精品| 亚洲精品成a人| 精品一区二区三区蜜桃| www.欧美色图| 日韩欧美国产麻豆| 亚洲欧美日韩一区二区三区在线观看 | 久久只精品国产| 亚洲欧美一区二区三区国产精品| 三级久久三级久久久| 国产成a人亚洲精| 在线成人午夜影院| 亚洲欧美综合在线精品| 免费的成人av| 欧美特级限制片免费在线观看| 国产亚洲人成网站| 日韩专区欧美专区| 99久久伊人精品| 精品久久久久久综合日本欧美| 一区二区三区电影在线播| 国产不卡免费视频| 日韩亚洲电影在线| 亚洲成人综合视频| 91啪在线观看| 国产欧美日韩不卡免费| 日本美女一区二区三区视频| 色94色欧美sute亚洲线路二| 国产亚洲欧美日韩日本| 日韩中文字幕区一区有砖一区 | 欧美精品在线观看一区二区| 国产精品乱码人人做人人爱| 日本少妇一区二区| 欧美综合亚洲图片综合区| 国产精品久久久一本精品| 国产资源在线一区| 欧美一级高清片| 国产盗摄一区二区| 26uuu欧美| 青青草97国产精品免费观看无弹窗版| 色94色欧美sute亚洲13| 中文字幕国产精品一区二区| 国产 欧美在线| 久久在线观看免费| 狠狠狠色丁香婷婷综合久久五月| 91.com在线观看| 亚洲成av人影院| 欧美日韩中字一区| 亚洲成人av一区二区三区| 在线观看一区二区视频| 一区二区三区 在线观看视频| 99久久精品免费看国产免费软件| 中文字幕乱码一区二区免费| 国产精品自产自拍| 欧美激情一区二区在线| 丁香五精品蜜臀久久久久99网站 | 91精品中文字幕一区二区三区| 亚洲国产视频一区| 欧美色网一区二区| 午夜伦理一区二区| 日韩免费电影网站| 国产激情一区二区三区四区| 久久精品人人做人人爽97| 国产成人小视频| 国产精品久久国产精麻豆99网站| 99免费精品视频| 最近日韩中文字幕| 欧美日高清视频| 久久电影网电视剧免费观看| 久久噜噜亚洲综合| 粉嫩在线一区二区三区视频| 中文字幕日本不卡| 欧美日韩一区不卡| 国内不卡的二区三区中文字幕 | 精品国产乱码久久久久久老虎| 九色综合国产一区二区三区| 久久综合久久鬼色| 99re热这里只有精品免费视频| 亚洲美女视频在线| 91精品国产手机| 国产精品资源网站| 一区二区三区免费| 精品国产一区二区三区av性色| 国产东北露脸精品视频| 一区二区三区在线视频观看58| 日韩一区二区电影网|