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

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

?? print-slow.c

?? TCPDUMP的C語言源代碼,是在數(shù)據(jù)鏈路層的應(yīng)用
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1998-2006 The TCPDUMP project * * 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, and (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. * 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. * * support for the IEEE "slow protocols" LACP, MARKER as per 802.3ad *                                       OAM as per 802.3ah * * Original code by Hannes Gredler (hannes@juniper.net) */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-slow.c,v 1.8 2006-10-12 05:44:33 hannes Exp $";#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include "interface.h"#include "extract.h"#include "addrtoname.h"#include "ether.h"#include "oui.h"struct slow_common_header_t {    u_int8_t proto_subtype;    u_int8_t version;};#define	SLOW_PROTO_LACP                     1#define	SLOW_PROTO_MARKER                   2#define SLOW_PROTO_OAM                      3#define	LACP_VERSION                        1#define	MARKER_VERSION                      1static const struct tok slow_proto_values[] = {    { SLOW_PROTO_LACP, "LACP" },    { SLOW_PROTO_MARKER, "MARKER" },    { SLOW_PROTO_OAM, "OAM" },    { 0, NULL}};static const struct tok slow_oam_flag_values[] = {    { 0x0001, "Link Fault" },    { 0x0002, "Dying Gasp" },    { 0x0004, "Critical Event" },    { 0x0008, "Local Evaluating" },    { 0x0010, "Local Stable" },    { 0x0020, "Remote Evaluating" },    { 0x0040, "Remote Stable" },    { 0, NULL}}; #define SLOW_OAM_CODE_INFO          0x00#define SLOW_OAM_CODE_EVENT_NOTIF   0x01#define SLOW_OAM_CODE_VAR_REQUEST   0x02#define SLOW_OAM_CODE_VAR_RESPONSE  0x03#define SLOW_OAM_CODE_LOOPBACK_CTRL 0x04#define SLOW_OAM_CODE_PRIVATE       0xfestatic const struct tok slow_oam_code_values[] = {    { SLOW_OAM_CODE_INFO, "Information" },    { SLOW_OAM_CODE_EVENT_NOTIF, "Event Notification" },    { SLOW_OAM_CODE_VAR_REQUEST, "Variable Request" },    { SLOW_OAM_CODE_VAR_RESPONSE, "Variable Response" },    { SLOW_OAM_CODE_LOOPBACK_CTRL, "Loopback Control" },    { SLOW_OAM_CODE_PRIVATE, "Vendor Private" },    { 0, NULL}};struct slow_oam_info_t {    u_int8_t info_type;    u_int8_t info_length;    u_int8_t oam_version;    u_int8_t revision[2];    u_int8_t state;    u_int8_t oam_config;    u_int8_t oam_pdu_config[2];    u_int8_t oui[3];    u_int8_t vendor_private[4];};#define SLOW_OAM_INFO_TYPE_END_OF_TLV 0x00#define SLOW_OAM_INFO_TYPE_LOCAL 0x01#define SLOW_OAM_INFO_TYPE_REMOTE 0x02#define SLOW_OAM_INFO_TYPE_ORG_SPECIFIC 0xfestatic const struct tok slow_oam_info_type_values[] = {    { SLOW_OAM_INFO_TYPE_END_OF_TLV, "End of TLV marker" },    { SLOW_OAM_INFO_TYPE_LOCAL, "Local" },    { SLOW_OAM_INFO_TYPE_REMOTE, "Remote" },    { SLOW_OAM_INFO_TYPE_ORG_SPECIFIC, "Organization specific" },    { 0, NULL}};#define OAM_INFO_TYPE_PARSER_MASK 0x3static const struct tok slow_oam_info_type_state_parser_values[] = {    { 0x00, "forwarding" },    { 0x01, "looping back" },    { 0x02, "discarding" },    { 0x03, "reserved" },    { 0, NULL}};#define OAM_INFO_TYPE_MUX_MASK 0x4static const struct tok slow_oam_info_type_state_mux_values[] = {    { 0x00, "forwarding" },    { 0x04, "discarding" },    { 0, NULL}};static const struct tok slow_oam_info_type_oam_config_values[] = {    { 0x01, "Active" },    { 0x02, "Unidirectional" },    { 0x04, "Remote-Loopback" },    { 0x08, "Link-Events" },    { 0x10, "Variable-Retrieval" },    { 0, NULL}};/* 11 Bits */#define OAM_INFO_TYPE_PDU_SIZE_MASK 0x7ff#define SLOW_OAM_LINK_EVENT_END_OF_TLV 0x00#define SLOW_OAM_LINK_EVENT_ERR_SYM_PER 0x01#define SLOW_OAM_LINK_EVENT_ERR_FRM 0x02#define SLOW_OAM_LINK_EVENT_ERR_FRM_PER 0x03#define SLOW_OAM_LINK_EVENT_ERR_FRM_SUMM 0x04#define SLOW_OAM_LINK_EVENT_ORG_SPECIFIC 0xfestatic const struct tok slow_oam_link_event_values[] = {    { SLOW_OAM_LINK_EVENT_END_OF_TLV, "End of TLV marker" },    { SLOW_OAM_LINK_EVENT_ERR_SYM_PER, "Errored Symbol Period Event" },    { SLOW_OAM_LINK_EVENT_ERR_FRM, "Errored Frame Event" },    { SLOW_OAM_LINK_EVENT_ERR_FRM_PER, "Errored Frame Period Event" },    { SLOW_OAM_LINK_EVENT_ERR_FRM_SUMM, "Errored Frame Seconds Summary Event" },    { SLOW_OAM_LINK_EVENT_ORG_SPECIFIC, "Organization specific" },    { 0, NULL}};struct slow_oam_link_event_t {    u_int8_t event_type;    u_int8_t event_length;    u_int8_t time_stamp[2];    u_int8_t window[8];    u_int8_t threshold[8];    u_int8_t errors[8];    u_int8_t errors_running_total[8];    u_int8_t event_running_total[4];};struct slow_oam_variablerequest_t {    u_int8_t branch;    u_int8_t leaf[2];};struct slow_oam_variableresponse_t {    u_int8_t branch;    u_int8_t leaf[2];    u_int8_t length;};struct slow_oam_loopbackctrl_t {    u_int8_t command;};static const struct tok slow_oam_loopbackctrl_cmd_values[] = {    { 0x01, "Enable OAM Remote Loopback" },    { 0x02, "Disable OAM Remote Loopback" },    { 0, NULL}};struct tlv_header_t {    u_int8_t type;    u_int8_t length;};#define LACP_TLV_TERMINATOR     0x00#define LACP_TLV_ACTOR_INFO     0x01#define LACP_TLV_PARTNER_INFO   0x02#define LACP_TLV_COLLECTOR_INFO 0x03#define MARKER_TLV_TERMINATOR   0x00#define MARKER_TLV_MARKER_INFO  0x01static const struct tok slow_tlv_values[] = {    { (SLOW_PROTO_LACP << 8) + LACP_TLV_TERMINATOR, "Terminator"},    { (SLOW_PROTO_LACP << 8) + LACP_TLV_ACTOR_INFO, "Actor Information"},    { (SLOW_PROTO_LACP << 8) + LACP_TLV_PARTNER_INFO, "Partner Information"},    { (SLOW_PROTO_LACP << 8) + LACP_TLV_COLLECTOR_INFO, "Collector Information"},    { (SLOW_PROTO_MARKER << 8) + MARKER_TLV_TERMINATOR, "Terminator"},    { (SLOW_PROTO_MARKER << 8) + MARKER_TLV_MARKER_INFO, "Marker Information"},    { 0, NULL}};struct lacp_tlv_actor_partner_info_t {    u_int8_t sys_pri[2];    u_int8_t sys[ETHER_ADDR_LEN];    u_int8_t key[2];    u_int8_t port_pri[2];    u_int8_t port[2];    u_int8_t state;    u_int8_t pad[3];};          static const struct tok lacp_tlv_actor_partner_info_state_values[] = {    { 0x01, "Activity"},    { 0x02, "Timeout"},    { 0x04, "Aggregation"},    { 0x08, "Synchronization"},    { 0x10, "Collecting"},    { 0x20, "Distributing"},    { 0x40, "Default"},    { 0x80, "Expired"},    { 0, NULL}};struct lacp_tlv_collector_info_t {    u_int8_t max_delay[2];    u_int8_t pad[12];}; struct marker_tlv_marker_info_t {    u_int8_t req_port[2];    u_int8_t req_sys[ETHER_ADDR_LEN];    u_int8_t req_trans_id[4];    u_int8_t pad[2];}; struct lacp_marker_tlv_terminator_t {    u_int8_t pad[50];}; void slow_marker_lacp_print(register const u_char *, register u_int);void slow_oam_print(register const u_char *, register u_int);const struct slow_common_header_t *slow_com_header;voidslow_print(register const u_char *pptr, register u_int len) {    int print_version;    slow_com_header = (const struct slow_common_header_t *)pptr;    TCHECK(*slow_com_header);    /*     * Sanity checking of the header.     */    switch (slow_com_header->proto_subtype) {    case SLOW_PROTO_LACP:        if (slow_com_header->version != LACP_VERSION) {            printf("LACP version %u packet not supported",slow_com_header->version);            return;        }        print_version = 1;        break;    case SLOW_PROTO_MARKER:        if (slow_com_header->version != MARKER_VERSION) {            printf("MARKER version %u packet not supported",slow_com_header->version);            return;        }        print_version = 1;        break;    case SLOW_PROTO_OAM: /* fall through */        print_version = 0;        break;    default:        /* print basic information and exit */        print_version = -1;        break;    }    if (print_version) {        printf("%sv%u, length %u",               tok2str(slow_proto_values, "unknown (%u)",slow_com_header->proto_subtype),               slow_com_header->version,               len);    } else {        /* some slow protos don't have a version number in the header */        printf("%s, length %u",               tok2str(slow_proto_values, "unknown (%u)",slow_com_header->proto_subtype),               len);    }    /* unrecognized subtype */    if (print_version == -1) {        print_unknown_data(pptr, "\n\t", len);        return;    }    if (!vflag)        return;    switch (slow_com_header->proto_subtype) {    default: /* should not happen */        break;    case SLOW_PROTO_OAM:        /* skip proto_subtype */        slow_oam_print(pptr+1, len-1);        break;    case SLOW_PROTO_LACP:   /* LACP and MARKER share the same semantics */    case SLOW_PROTO_MARKER:        /* skip slow_common_header */        len -= sizeof(const struct slow_common_header_t);        pptr += sizeof(const struct slow_common_header_t);        slow_marker_lacp_print(pptr, len);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩毛片精品高清免费| 亚洲一区二区三区中文字幕| 97成人超碰视| 另类欧美日韩国产在线| 中文字幕一区二区视频| 欧美一个色资源| 一本久久a久久精品亚洲| 毛片一区二区三区| 一区二区在线观看不卡| 精品国产欧美一区二区| 在线看一区二区| 波多野结衣一区二区三区| 亚洲mv在线观看| 中文字幕一区视频| 久久精品男人的天堂| 91精品国产福利| 欧美性欧美巨大黑白大战| 成人污视频在线观看| 蜜臀av在线播放一区二区三区| 亚洲美女淫视频| 国产精品美日韩| 久久男人中文字幕资源站| 欧美一区二区啪啪| 欧美日韩成人激情| 91国产免费观看| 91蜜桃网址入口| jizz一区二区| 成人精品视频一区二区三区尤物| 美女高潮久久久| 日韩福利视频导航| 亚洲小说欧美激情另类| 亚洲欧洲综合另类| 最新成人av在线| 国产精品久久久一本精品| 国产丝袜在线精品| 国产亚洲自拍一区| 久久久久99精品一区| 久久综合色鬼综合色| 日韩欧美你懂的| 日韩视频免费直播| 91精品国产欧美一区二区成人| 色国产精品一区在线观看| 成人av免费在线观看| 成人av综合在线| 成人免费看的视频| 成人免费高清在线观看| 成人午夜激情片| 成人一级片在线观看| 国产 欧美在线| 丁香激情综合国产| gogo大胆日本视频一区| 99精品一区二区三区| 91网站在线观看视频| 色噜噜偷拍精品综合在线| 色久综合一二码| 欧美视频一二三区| 欧美丰满少妇xxxxx高潮对白| 欧美日韩精品欧美日韩精品| 欧美人狂配大交3d怪物一区| 4438亚洲最大| 精品美女一区二区| 久久精品视频网| 亚洲欧洲日韩在线| 亚洲网友自拍偷拍| 五月天精品一区二区三区| 奇米影视一区二区三区小说| 美国毛片一区二区三区| 国产一区二区三区蝌蚪| 国产99久久久精品| 91久久精品一区二区| 欧美老年两性高潮| 久久久久久97三级| 亚洲免费观看高清在线观看| 亚洲成人精品在线观看| 蜜桃av一区二区| 成人午夜视频在线| 欧美专区在线观看一区| 欧美一级免费大片| 欧美激情自拍偷拍| 亚洲国产日韩av| 麻豆精品一区二区综合av| 国产很黄免费观看久久| 色偷偷成人一区二区三区91| 9191成人精品久久| 国产精品九色蝌蚪自拍| 亚洲国产日产av| 国产激情偷乱视频一区二区三区| 97久久人人超碰| 日韩女优制服丝袜电影| 国产精品麻豆久久久| 视频一区视频二区中文| 国产a视频精品免费观看| 欧美日韩综合在线| 国产欧美日韩综合| 日韩激情av在线| av在线综合网| 日韩午夜在线观看| 最好看的中文字幕久久| 蜜桃视频在线观看一区| 色综合久久66| 国产丝袜欧美中文另类| 三级久久三级久久| 99免费精品在线观看| 日韩一卡二卡三卡四卡| 亚洲视频每日更新| 国产精品资源在线| 欧美一区二区福利在线| 亚洲欧美日韩一区| 成人性色生活片免费看爆迷你毛片| 欧美三级资源在线| 亚洲天堂福利av| 国产电影一区二区三区| 日韩欧美中文一区| 午夜欧美电影在线观看| 99精品黄色片免费大全| 久久久久久久久久久电影| 日韩电影在线一区二区| 色婷婷av一区二区三区大白胸| 国产午夜精品一区二区三区四区| 日日夜夜精品免费视频| 91激情在线视频| 最近中文字幕一区二区三区| 国产精品一区二区黑丝| 日韩精品在线一区二区| 丝袜美腿成人在线| 欧美色精品在线视频| 一区二区三区日韩欧美精品| 粉嫩一区二区三区在线看| 26uuu欧美| 久久se这里有精品| 日韩一级欧美一级| 三级成人在线视频| 欧美情侣在线播放| 午夜精品久久久久久久99樱桃| 色综合久久久久网| 亚洲欧美激情一区二区| 成人av在线一区二区| 国产欧美日韩视频一区二区| 国产伦精品一区二区三区免费| 日韩精品专区在线影院重磅| 视频一区中文字幕| 日韩一级欧美一级| 久久激情五月激情| 精品国产一区二区三区不卡| 久久99这里只有精品| 精品成人佐山爱一区二区| 久久机这里只有精品| 欧美r级在线观看| 狠狠色伊人亚洲综合成人| 亚洲精品一区二区三区福利| 激情欧美一区二区| 久久九九全国免费| 99久久伊人网影院| 欧美伊人精品成人久久综合97| 亚洲国产激情av| 成人夜色视频网站在线观看| 欧美激情自拍偷拍| av电影在线观看完整版一区二区| 国产精品久久久久永久免费观看 | 日韩欧美国产成人一区二区| 免费高清在线一区| 久久九九久久九九| 97久久精品人人做人人爽 | 日韩精品免费视频人成| 欧美一级精品在线| 国产91精品欧美| 亚洲柠檬福利资源导航| 欧美日韩免费一区二区三区| 日韩中文字幕区一区有砖一区| 日韩一区二区三区四区| 国产裸体歌舞团一区二区| 国产精品女主播av| 欧美日韩免费观看一区二区三区| 欧美a级理论片| 欧美国产精品中文字幕| 欧美三级日韩三级国产三级| 美女网站在线免费欧美精品| 国产欧美日韩激情| 欧美色男人天堂| 国产精品一区免费在线观看| 亚洲免费在线播放| 精品国产免费视频| 91一区一区三区| 婷婷国产v国产偷v亚洲高清| 国产日韩欧美麻豆| 欧美猛男男办公室激情| 国产高清亚洲一区| 亚洲国产aⅴ成人精品无吗| 久久影视一区二区| 91国产免费看| 国产成都精品91一区二区三| 亚洲综合色噜噜狠狠| 久久综合色8888| 精品视频免费在线| 国产精品中文字幕欧美| 亚洲一区二区三区四区在线观看| 久久久一区二区三区捆绑**| 欧美三区在线视频| av不卡一区二区三区| 久久99精品国产.久久久久|