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

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

?? spanutil.c

?? 基于vxworks操作系統,Tornado2.0平臺,生成樹STP源碼.直接在其對應的設備中添加即可.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* spanUtil - Spanning Tree internal utility routines */

/* Copyright 2001 Wind River Systems, Inc. */
/* Copyright 1998-2000 Wind River Systems, Inc. */
/* Copyright 1999 Wind River Systems, Inc. */
/* Copyright 1998-1999 XACT, Inc. */

#include "copyright_wrs.h"

/*
modification history
--------------------
01g,18apr01,kc  Replaced "extern" with "IMPORT" and "static" with "LOCAL".
01f,22feb01,kw  Fixed the STP formalus validation rules.
01e,10dec00,ajw Changes to comments for refgen web pages
01d,16nov00,kw  Ran thru lint.
01c,26jul00,kw  Convert from zero index base scalars to 1 based index.
01b,18oct99,kw  Added a forwarding_transition_counter for each port. PR#872
01a,17sep99,kw  added support for BL2 PR#713
*/

/*
DESCRIPTION
The routines in this midule interface the low level Spanning Tree to stpMib.

INCLUDES:
\ml
\m tmsTypes.h
\m spantree.h
\m idbObjectEnums.idb
\me
*/

/* includes */

#include <stp/types.h>
#include <stp/spantree.h>
/*#include <stp/stpMib.h> */

/* defines */

/* typedefs */

/* locals */

LOCAL ulong_t topology_change_count;
LOCAL ulong_t * forwarding_transition_count;

/*
 * UplinkFast/PortFast
 */

LOCAL ulong_t stUplinkFastState;
LOCAL ulong_t *stPortFastState;
LOCAL ulong_t stPortFastInitDone = 0;

/* globals */

IMPORT Bridge_data bridge_info; /* (8.5.3)        */
IMPORT Port_data *port_info;    /* (8.5.5)        */
IMPORT Boolean designated_port (Int port_no);
IMPORT Timer*       message_age_timer;

/* forward declarations */
extern STATUS No_of_ports;

LOCAL void stp_init_ports()
{
    if ( forwarding_transition_count == NULL )
    {
        topology_change_count = 0;
        forwarding_transition_count =
            (ulong_t *)calloc( (spanTreeNumPorts() + 1), sizeof(ulong_t) );
    }
}

/******************************************************************************
* get_stp_protocol_spec  - dot1dStpProtocolSpecification (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_protocol_spec
    (
    void
    )
{
    return 3;
}

/******************************************************************************
* get_stp_time_since_topology_change  - dot1dStpTimeSinceTopologyChange (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_time_since_topology_change
    (
    void
    )
{
    IMPORT Timer since_topology_change;

    return since_topology_change.value;
}

/******************************************************************************
* count_topology_change  - dot1dStpTopChanges (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
void count_topology_change
    (
    void
    )
{
    topology_change_count++;
}

/******************************************************************************
* get_stp_topology_change_count  -
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_topology_change_count
    (
    void
    )
{
    return topology_change_count;
}

/******************************************************************************
* get_stp_designated_root  - dot1dStpDesignatedRoot (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
const uchar_t * get_stp_designated_root
    (
    void
    )
{
    const uchar_t *Rc = (const uchar_t *) &bridge_info.designated_root;
    return Rc;
}

/******************************************************************************
* get_stp_root_cost  - dot1dStpRootCost (RO)
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_root_cost
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.root_path_cost;
    return Rc;
}

/******************************************************************************
* get_stp_root_port  - dot1dStpRootPort (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_root_port
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.root_port;
    return Rc;
}

/******************************************************************************
* get_stp_max_age  - dot1dStpMaxAge (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_max_age
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.max_age;
    return Rc;
}

/******************************************************************************
* get_stp_hello_time  - dot1dStpHelloTime (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_hello_time
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.hello_time;
    return Rc;
}

/******************************************************************************
* get_stp_hold_time  - dot1dStpHoldTime (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_hold_time
    (
    void
    )
{
    return FIXED_HOLD_TIME;
}

/******************************************************************************
* get_stp_forward_delay  - dot1dStpForwardDelay (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_forward_delay
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.forward_delay;
    return Rc;
}

/******************************************************************************
* get_stp_bridge_max_age  - dot1dStpBridgeMaxAge (RW)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_bridge_max_age
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.bridge_max_age;
    return Rc;
}

/******************************************************************************
* set_stp_bridge_max_age  - <one-line description of subroutine's purpose>
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
void set_stp_bridge_max_age
    (
    ulong_t max_age,
    Boolean startup
    )
{
    /* Value must be valid or it gets set to the default. */
    if ( max_age >= (2 * (bridge_info.bridge_hello_time + 1)) )
    {
        bridge_info.bridge_max_age = (Time_t) max_age;

        bridge_info.topology_change_time =
            bridge_info.bridge_max_age + bridge_info.bridge_forward_delay;
        if (startup == False)
        {
            span_update_bridge_parms();
        }
    }
}

/******************************************************************************
* get_stp_bridge_hello_time  - dot1dStpBridgeHelloTime (RW)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_bridge_hello_time
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.bridge_hello_time;
    return Rc;
}

/******************************************************************************
* set_stp_bridge_hello_time  - <one-line description of subroutine's purpose>
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
void set_stp_bridge_hello_time
    (
    ulong_t hello_time,
    Boolean startup
    )
{
    bridge_info.bridge_hello_time = (Time_t) hello_time;
    if (startup == False)
    {
        span_update_bridge_parms();
    }
}

/******************************************************************************
* get_stp_bridge_forward_delay  - dot1dStpBridgeForwardDelay (RW)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_bridge_forward_delay
    (
    void
    )
{
    ulong_t Rc = (ulong_t) bridge_info.bridge_forward_delay;
    return Rc;
}

/******************************************************************************
* set_stp_bridge_forward_delay  - <one-line description of subroutine's purpose>
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
void set_stp_bridge_forward_delay
    (
    ulong_t forward_delay,
    Boolean startup
    )
{
    /* forward_delay must be valid to STP formalus */
    if ( (2 * (forward_delay - 1)) >= bridge_info.bridge_max_age )
    {
        bridge_info.bridge_forward_delay = (Time_t) forward_delay;

        bridge_info.topology_change_time =
            bridge_info.bridge_max_age + bridge_info.bridge_forward_delay;
        if (startup == False)
        {
            span_update_bridge_parms();
        }
    }
}

/******************************************************************************
* get_stp_port  - dot1dStpPort (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_port
    (
    ulong_t port
    )
{
    return port;                /* This is a 1-1 mapping for now */
}

/******************************************************************************
* get_stp_port_state  - dot1dStpPortState (RO)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*
* NOMANUAL <this will be removed later>
*/
ulong_t get_stp_port_state
    (
    ulong_t port
    )
{
    ulong_t Rc;

    Rc=port_info[port].state;

    return Rc;
}

/******************************************************************************
* get_stp_port_enable  - dot1dStpPortEnable (RW)
*
* INPUTS:
*
* RETURNS:
*
* ERRORS:
*
* ERRNO:
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区在线观看| 一区二区不卡在线播放 | 天天av天天翘天天综合网色鬼国产| 日韩三级在线观看| 欧美日韩久久久一区| 欧美日韩黄视频| 欧美变态tickling挠脚心| 26uuu国产电影一区二区| 亚洲天堂a在线| 依依成人综合视频| 亚洲国产美女搞黄色| 美女一区二区久久| 成人免费视频caoporn| 91麻豆产精品久久久久久 | 中文字幕第一区第二区| 国产精品国产精品国产专区不片| 亚洲精品成人在线| 日本伊人色综合网| 99麻豆久久久国产精品免费优播| 色噜噜狠狠成人中文综合 | 日韩国产欧美三级| 国产成人av资源| 欧美一区二区精品在线| 亚洲在线视频免费观看| 麻豆成人在线观看| 91在线国内视频| 国产欧美日本一区视频| 亚洲一区二区在线免费观看视频| 国产精品一品二品| 精品美女在线播放| 亚洲6080在线| 在线观看一区不卡| 亚洲天堂2014| 成人a免费在线看| 久久久久久久综合日本| 理论电影国产精品| 91精品免费在线观看| 亚洲一区日韩精品中文字幕| 99久久精品免费精品国产| 亚洲国产高清在线观看视频| 久久激情五月激情| 久久免费视频色| 国产一区二区三区蝌蚪| 久久精品视频免费| 成人美女在线视频| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美大黄免费观看| 国产最新精品免费| 国产欧美日韩三区| 欧美在线一二三四区| 亚洲国产成人av| 91 com成人网| 国内精品久久久久影院色 | 韩国午夜理伦三级不卡影院| 欧美成人免费网站| 成人禁用看黄a在线| 亚洲综合一区二区精品导航| 欧美四级电影网| 国产高清在线精品| 亚洲精品成人悠悠色影视| 91麻豆精品国产无毒不卡在线观看 | 亚洲成人先锋电影| 国产欧美va欧美不卡在线| 在线视频综合导航| 国产成人精品一区二区三区网站观看| 18成人在线观看| 精品国产自在久精品国产| www.综合网.com| 极品少妇一区二区| 亚洲欧美日韩综合aⅴ视频| 日韩精品中文字幕在线一区| 不卡高清视频专区| 九九国产精品视频| 丝袜美腿亚洲一区二区图片| 一区免费观看视频| 国产偷国产偷精品高清尤物| 欧美嫩在线观看| 欧美中文字幕一区二区三区亚洲| 久久成人免费网| 视频一区二区三区在线| 亚洲一区二区三区国产| **网站欧美大片在线观看| 国产精品欧美经典| 国产精品三级在线观看| 久久女同性恋中文字幕| 久久婷婷成人综合色| 337p粉嫩大胆噜噜噜噜噜91av | 男人的天堂久久精品| 麻豆一区二区99久久久久| eeuss鲁片一区二区三区在线观看| 色婷婷精品久久二区二区蜜臂av| 欧美96一区二区免费视频| 五月婷婷另类国产| 视频一区欧美精品| 精品亚洲国内自在自线福利| 美国一区二区三区在线播放| 久久91精品国产91久久小草| 国产精品1区2区| 不卡的av中国片| 欧美日韩大陆在线| 精品国产免费一区二区三区香蕉| 精品国产乱子伦一区| 日本一区二区成人在线| 亚洲一区精品在线| 久久91精品久久久久久秒播| 成人黄色在线看| 欧美日韩国产一区二区三区地区| 日韩一二三区视频| 国产精品久久久久久亚洲伦| 亚洲h精品动漫在线观看| 国产精品一线二线三线| 色老汉一区二区三区| 久久综合狠狠综合久久激情 | 麻豆国产精品一区二区三区| 成人黄页在线观看| 亚洲精品一区二区三区影院| 亚洲欧美激情小说另类| 国产美女视频一区| 欧美美女一区二区| 亚洲欧美另类久久久精品2019| 国产在线精品国自产拍免费| 欧美色综合久久| 一级特黄大欧美久久久| 99re热这里只有精品免费视频| 久久久久国产精品麻豆| 日本美女一区二区三区| 欧美四级电影网| 亚洲成av人片观看| 欧美影院一区二区三区| 亚洲欧美电影院| 欧美在线看片a免费观看| 中文字幕一区二区三区不卡| 成人精品视频.| 国产精品久久精品日日| av中文字幕在线不卡| 中文字幕一区二区不卡| 99久久er热在这里只有精品15 | 成人久久视频在线观看| 中文无字幕一区二区三区| 成人小视频免费观看| 亚洲精品国产品国语在线app| 色婷婷av一区二区三区大白胸| 亚洲视频免费观看| 欧美亚洲综合在线| 狂野欧美性猛交blacked| 国产午夜精品一区二区| 色综合久久久久综合体桃花网| 亚洲一区二区综合| 欧美第一区第二区| 91香蕉视频mp4| 日本亚洲电影天堂| 欧美激情一区二区三区全黄| 色婷婷av一区二区| 国产麻豆视频一区二区| 中文字幕佐山爱一区二区免费| 欧美日韩一区视频| 国产成人自拍网| 美女久久久精品| 悠悠色在线精品| 国产精品三级电影| 精品少妇一区二区三区在线播放 | 亚洲精品免费一二三区| 欧美va亚洲va| 欧美二区乱c少妇| 欧美日韩精品一区视频| 99久久婷婷国产综合精品| 韩国一区二区视频| 免费视频最近日韩| 日韩 欧美一区二区三区| 中文字幕不卡在线播放| 久久伊99综合婷婷久久伊| 91精品视频网| 日韩欧美成人午夜| 日韩欧美一二区| 亚洲精品一区二区三区影院| 91精品国产综合久久蜜臀| 欧美日韩精品系列| 欧美日韩国产片| 欧美精品一卡二卡| 精品久久一区二区三区| 精品美女一区二区三区| 久久综合久久综合久久综合| 精品日韩在线观看| 久久久国产综合精品女国产盗摄| 久久天天做天天爱综合色| 久久综合久久综合九色| 欧美高清在线精品一区| 国产精品你懂的在线欣赏| 中文字幕欧美一| 视频一区中文字幕| 国产成人在线观看| 色域天天综合网| 欧美一区二区大片| 亚洲欧美在线aaa| 日韩极品在线观看| 不卡的av网站| 日韩一区二区三区av| 国产精品久久久久久久久久免费看| 中文字幕中文字幕在线一区| 亚洲www啪成人一区二区麻豆|