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

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

?? ospf_dynamic_config.c

?? vxworks下ospf協(xié)議棧
?? C
?? 第 1 頁 / 共 5 頁
字號:
    OSPF_AREA_ENTRY *sptr_area = NULL;    OSPF_AREA_ENTRY *sptr_next_area = NULL;    for (sptr_area = ospf.sptr_area_list; sptr_area != NULL;         sptr_area = sptr_next_area )    {        sptr_next_area = sptr_area->sptr_forward_link;        if ( sptr_area->area_id == area_id )            return TRUE;    }    return FALSE;}/***************************************************************************************** ospf_dynamic_step_intfSm - dynamically invoke the interface state machine** This routine dynamically invoke the interface state machine for the given event and* inteface state.** <event> OSPF interface event** <state> Current OSPF interface state** <sptr_interface> OSPF interface** RETURNS: N/A** ERRNO:N/A** NOMANUAL*/void ospf_dynamic_step_intfSm( enum OSPF_INTERFACE_EVENT event,                               enum OSPF_INTERFACE_STATE state,                               OSPF_INTERFACE *sptr_interface ){    if ( sptr_interface != NULL )        ospf_execute_interface_state_machine( event, state, sptr_interface );    return;}/****************************************************************************************  ospf_dynamic_send_default_summary_lsa - dynamically send default summary*                                          LSA for an stub area.** This routine dynamically calculate the shortest path for the given area* and send a default summary LSA for the stub Area. This routine is invoked* when a stub area is configured to sendAreaSummary (previously configured* as sendNoAreaSummary) or the stub default cost has changed.** <sptr_area> OSPF area** RETURNS: N/A** ERRNO:N/A** NOMANUAL*/void ospf_dynamic_send_default_summary_lsa( OSPF_AREA_ENTRY *sptr_area,                                            enum BOOLEAN send_max_age ){    /* do nothing if router is not configured as Area Border Router */    if ( ospf_check_if_area_border_router() == FALSE )        return;    if ( sptr_area != NULL )    {        /* stub default cost has changed, reclaculate the shortest path for this area */        ospf_calculate_shortest_path_tree (sptr_area);        /* originate a default summary into the stub area */        ospf_originate_default_summary_link_into_the_area( sptr_area, send_max_age );    }    return;}/***************************************************************************************** ospf_dynamic_create_area_range - dynamically create an address range for an area** This routine dynamically create an address range for the given area. Shortest path* tree will then be rerun to reevaluate the best paths for this area resulting from* the new address range.** <sptr_area> OSPF area** <addr_ranges> OSPF area address ranges** RETURNS: N/A** ERRNO:N/A** NOMANUAL*/void ospf_dynamic_create_area_range( OSPF_AREA_ENTRY *sptr_area,                                     OSPF_ADDRESS_RANGE_LIST_ENTRY *addr_ranges ){    OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "ospf_dynamic_config: Entering ospf_dynamic_create_area_range\r\n");    if (sptr_area == NULL )        return;    /* SPR 88613 - Begin */    /* Withdraw the individual advertisements for nodes now in the address range.     * MUST do this before adding the address range, or LSAs are not generated for     * links within the new range     */    ospf_advertise_lsas_contained_in_address_range (addr_ranges, TRUE);    if (sptr_area->sptr_address_ranges == NULL)        sptr_area->sptr_address_ranges = addr_ranges;    else        ospf_add_node_to_end_of_list ((OSPF_GENERIC_NODE *) addr_ranges,                                      (OSPF_GENERIC_NODE *) sptr_area->sptr_address_ranges);    /* keep track the number of address range that we got */    sptr_area->number_of_address_ranges++;    /* need to set "active" flag to correct value */    addr_ranges->active = ospf_is_address_range_active (addr_ranges);    if (addr_ranges->active)        {        /* set cost of address range, if it's active */        addr_ranges->cost = ospf_get_metric_cost_of_address_range(addr_ranges);        /* area address range has been created, advertise it */        ospf_generate_summary_lsa_for_address_range (addr_ranges, FALSE);        }    /* SPR 88613 - End */    return;}/***************************************************************************************** ospf_dynamic_destroy_area_range - dynamically destory an address range for an area** This routine dynamically destroy an address range for the given area. The shortest* path tree for the area will be reevaluated due to the changes to the address range.** <sptr_area> OSPF area** <addr_ranges> OSPF area address ranges** RETURNS: N/A** ERRNO:N/A** NOMANUAL*/void ospf_dynamic_destroy_area_range( OSPF_AREA_ENTRY *sptr_area,                                      OSPF_ADDRESS_RANGE_LIST_ENTRY *addr_range ){    OSPF_ADDRESS_RANGE_LIST_ENTRY *sptr_addr_range;    OSPF_PRINTF_PROLOGUE (OSPF_PROLOGUE_PRINTF, "ospf_dynamic_config: Entering ospf_dynamic_destroy_area_range\r\n");    if ( (sptr_area == NULL) || (addr_range == NULL) )        return;    for (sptr_addr_range = sptr_area->sptr_address_ranges; sptr_addr_range != NULL;         sptr_addr_range = sptr_addr_range->sptr_forward_link)    {        if ( (sptr_addr_range->area_id == addr_range->area_id) &&             (sptr_addr_range->network == addr_range->network) &&             (sptr_addr_range->mask == addr_range->mask) )        {            break;        }    }    /* it is ok to try to delete a non-existence addres range */    if ( sptr_addr_range == NULL )        return;    /* SPR 88613 Begin */    /* Only age out address range if it was active */    if (sptr_addr_range->active)    {        /* area address range has been deleted, age out LSA for that range         * Must do this before removing node from list, so that the check in         * ospf_flood.c (ospf_flood_advertisement_out_some_subset_of_the_routers_interfaces)         * will find the address range and allow the LSA to go through         */        ospf_generate_summary_lsa_for_address_range (addr_range, TRUE);    }    /* SPR 88613 End */    ospf_remove_node_from_list((OSPF_GENERIC_NODE **)&sptr_area->sptr_address_ranges,                               (OSPF_GENERIC_NODE *)addr_range );    /* if we are here, the adress range has been deleted, decrement the counter */    sptr_area->number_of_address_ranges--;    if ( sptr_area->number_of_address_ranges == 0 )        sptr_area->sptr_address_ranges = NULL;    /* SPR 88613 Begin */    /* Only advertise links in the address range if it was active (ie, if there     * are links to worry about     */    if (sptr_addr_range->active)    {        /* Now advertise all links that used to be summarized */        ospf_advertise_lsas_contained_in_address_range (addr_range, FALSE);    }    /* SPR 88613 End */    return;}/***************************************************************************************** ospf_dynamic_create_area - dynamically create an OSPF Area** This routine dynamically create an OSPF Area at runtime. It sets up all the necessary* area default values. It also associates an instance of stub area or nssa to the area,* depends on whether the area is defined as stub area or nssa.** <sptr_area> OSPF area** RETURNS: OK or ERROR** ERRNO:N/A** NOMANUAL*/STATUS ospf_dynamic_create_area( OSPF_AREA_ENTRY *sptr_area ){    if ( sptr_area == NULL )        return ERROR;    /* initialize the rest of the area parameters */    sptr_area->shortest_path_first_tree.vertex = ospf.router_id;    sptr_area->shortest_path_first_tree.vertex_type = OSPF_LS_ROUTER;    sptr_area->shortest_path_first_tree.intervening_router = 0x00000000L;    sptr_area->run_shortest_path_calculation = FALSE;    sptr_area->shortest_path_calculation_time_counter = 0x00000000L;    sptr_area->bring_up_virtual_links = FALSE;    sptr_area->mib_number_of_link_state_advertisements = 0x00000000L;    sptr_area->mib_checksum_sum = 0x00000000L;    sptr_area->mib_number_of_type10_lsa = 0x00000000L;    sptr_area->mib_type10_checksum_sum = 0x00000000L;    /* initialize the hash table list for the area */    ospf_dynamic_init_area_hash_list( sptr_area );    /* determine if this are is defined as stub */    if (sptr_area->flags._bit.stub == TRUE)    {        OSPF_STUB_AREA_ENTRY *sptr_stub_area;        int size;        size = sizeof(OSPF_STUB_AREA_ENTRY);        sptr_stub_area = (OSPF_STUB_AREA_ENTRY *) table_malloc (1, size);        if ( sptr_stub_area == NULL )        {            OSPF_PRINTF_ALARM (OSPF_ALARM_PRINTF,            "ospf_dynamic_create_area:can't allocate OSPF_STUB_AREA_ENTRY instance!\n");            return ERROR;        }        memset (sptr_stub_area, 0x00, sizeof (OSPF_STUB_AREA_ENTRY));        sptr_stub_area->sptr_area = sptr_area;        if (ospf.sptr_stub_area_list == NULL)            ospf.sptr_stub_area_list = sptr_stub_area;        else        {            ospf_add_node_to_end_of_list( (OSPF_GENERIC_NODE *)sptr_stub_area,                                          (OSPF_GENERIC_NODE *)ospf.sptr_stub_area_list );        }        /* keep track the number of stub areas that have been configured */        ospf.number_of_stub_areas++;    }    /* determine if this area is defined for nssa */#if defined(__NSSA__)    else if (sptr_area->flags._bit.nssa == TRUE )    {        OSPF_NSSA_AREA_ENTRY *sptr_nssa_area;        int size;        size = sizeof(OSPF_NSSA_AREA_ENTRY);        sptr_nssa_area = (OSPF_NSSA_AREA_ENTRY *)table_malloc(1, size);        if ( sptr_nssa_area == NULL )        {            OSPF_PRINTF_ALARM (OSPF_ALARM_PRINTF,            "ospf_dynamic_create_area:can't allocate OSPF_NSSA_AREA_ENTRY instance!\n");            return ERROR;        }        memset (sptr_nssa_area, 0x00, sizeof (OSPF_NSSA_AREA_ENTRY));        sptr_nssa_area->sptr_area = sptr_area;        if (ospf.sptr_nssa_area_list == NULL)            ospf.sptr_nssa_area_list = sptr_nssa_area;        else        {            ospf_add_node_to_end_of_list ((OSPF_GENERIC_NODE *)sptr_nssa_area,                                          (OSPF_GENERIC_NODE *)ospf.sptr_nssa_area_list);        }        /* keep track the number of nssa areas that have been configured */        ospf.number_of_nssa_areas++;    }#endif /* __NSSA__ */    if ((ospf.sptr_backbone_area == NULL) && (sptr_area->area_id == OSPF_BACKBONE))        ospf.sptr_backbone_area = sptr_area;    if ( ospf.sptr_area_list == NULL )    {    	/* SPR#76812 */    	semTake (ospf_config_mutex, WAIT_FOREVER);        ospf.sptr_area_list = sptr_area;        semGive (ospf_config_mutex);	}    else    {		/* SPR#76812 */		semTake (ospf_config_mutex, WAIT_FOREVER);        ospf_add_node_to_end_of_list( (OSPF_GENERIC_NODE *) sptr_area,                                      (OSPF_GENERIC_NODE *) ospf.sptr_area_list );		semGive (ospf_config_mutex);    }    /* keep track the number of areas that have been configured */    ospf.number_of_areas++;    /* force the interfaces list on the area to always point to the head of the overall     * interface list in the ospf data structure     */	/* SPR#76812 */	semTake (ospf_config_mutex, WAIT_FOREVER);    sptr_area->sptr_interfaces = ospf.sptr_interface_list;	semGive (ospf_config_mutex);    /* check for area border status */    return OK;}/***************************************************************************************** ospf_dynamic_reinit_area - reinitialize the given OSPF Area** This routine reinitialize an existing OSPF Area. All the area-specific parameters* will be reset. Based on the <delete_stub> boolean flag, an existing stub/nssa area* may be destroyed (if the area was previously configured as stub/nssa) or a new* stub/nssa area may be created (if the area is now configured as stub/nssa).

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日产欧美精品一区二区三区| 日韩欧美国产一区二区在线播放| 大胆亚洲人体视频| 成人av午夜电影| 色综合久久久久综合| 欧美午夜宅男影院| 欧美日韩国产一二三| ww久久中文字幕| 亚洲男同性恋视频| 美女视频网站久久| 99re这里都是精品| 日韩免费成人网| 亚洲精品第1页| 久久se精品一区精品二区| 成人综合在线网站| 欧美精品久久天天躁| 国产精品不卡一区| 精品一区二区三区视频在线观看| 91色.com| 日本一区二区三区国色天香 | 热久久国产精品| 国产成人在线视频网站| 欧美日本一区二区三区四区| 亚洲欧美自拍偷拍色图| 国产精品综合在线视频| 日韩欧美一二三| 日韩精品91亚洲二区在线观看 | 日韩影院免费视频| 欧美日韩国产综合久久| 亚洲精品视频免费看| 一本色道久久综合亚洲aⅴ蜜桃 | 91论坛在线播放| 中文字幕一区二区三区在线不卡 | 国产精品乱码人人做人人爱 | 一区在线中文字幕| caoporm超碰国产精品| 国产精品国产三级国产a| 91丝袜美腿高跟国产极品老师 | 久久久www成人免费毛片麻豆| 五月婷婷激情综合网| 日韩一区二区三区观看| 捆绑紧缚一区二区三区视频| 欧美疯狂性受xxxxx喷水图片| 日韩影视精彩在线| 久久婷婷国产综合国色天香| 岛国精品在线播放| 亚洲卡通欧美制服中文| 欧美精品高清视频| 国产一区999| 亚洲天堂成人在线观看| 欧美三级视频在线| 久久99精品久久久久久| 自拍偷拍亚洲综合| 精品欧美乱码久久久久久1区2区| 豆国产96在线|亚洲| 视频一区二区三区入口| 久久综合久久鬼色中文字| 欧美在线视频日韩| 国产精品一区二区久久不卡| 亚洲精品高清视频在线观看| 2020国产精品自拍| 91蜜桃免费观看视频| 国产福利一区在线| 秋霞午夜av一区二区三区| 一区二区三区在线播放| 欧美高清在线精品一区| 欧美mv日韩mv| 欧美一二三区在线观看| 欧美亚洲日本一区| 在线视频一区二区三区| 成人97人人超碰人人99| 成人午夜私人影院| 国产成人免费视频一区| 国产精品一品二品| 美国一区二区三区在线播放| 奇米在线7777在线精品| 亚洲成人自拍偷拍| 亚洲不卡av一区二区三区| 日韩美女视频一区二区| 亚洲美女少妇撒尿| 亚洲女同ⅹxx女同tv| 亚洲国产综合色| 亚洲成av人影院| 久久成人久久爱| 成人永久免费视频| a级精品国产片在线观看| 91色视频在线| 欧美丰满少妇xxxxx高潮对白| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩在线综合| 欧美va日韩va| 一区二区成人在线| 日产国产欧美视频一区精品| 国产精品综合网| 色呦呦一区二区三区| 欧美xxxxxxxx| 日韩美女精品在线| 蜜桃视频一区二区三区 | 欧美精彩视频一区二区三区| 综合中文字幕亚洲| 麻豆国产一区二区| 91在线观看高清| 久久九九国产精品| 亚洲成人先锋电影| 成人国产视频在线观看| 日韩免费一区二区三区在线播放| 亚洲免费在线观看| 国产精品99久久久久久似苏梦涵 | 久久成人久久鬼色| 在线视频国内自拍亚洲视频| 国产三级欧美三级日产三级99| 亚洲一二三四在线观看| 精东粉嫩av免费一区二区三区| 色婷婷综合中文久久一本| 欧美国产综合一区二区| 色综合久久66| 国产欧美日韩在线| 黄色日韩三级电影| 欧美刺激午夜性久久久久久久| 亚洲国产cao| 欧美久久婷婷综合色| 午夜国产不卡在线观看视频| 欧美丝袜丝交足nylons| 亚洲国产综合色| 精品视频免费看| 亚洲成人资源网| 欧美一卡二卡三卡四卡| 日韩av一二三| 久久亚洲综合色一区二区三区| 麻豆成人免费电影| 欧美国产日本韩| 99久久久精品| 亚洲123区在线观看| 日韩欧美资源站| 成人黄色在线视频| 亚洲精品国久久99热| 欧美一区二视频| 丰满少妇在线播放bd日韩电影| 亚洲欧洲精品成人久久奇米网| 成人丝袜18视频在线观看| 99视频国产精品| 欧美mv日韩mv| 国产不卡高清在线观看视频| 国产精品剧情在线亚洲| 一本色道**综合亚洲精品蜜桃冫| 亚洲综合在线五月| 精品久久久久香蕉网| 成人av第一页| 韩国av一区二区| 国产蜜臀97一区二区三区| www.一区二区| 国内一区二区视频| 亚洲妇熟xx妇色黄| 国产片一区二区| 欧美一区二区视频在线观看| 99精品国产91久久久久久| 九一久久久久久| 日本不卡一区二区三区| 国产精品毛片久久久久久久| 欧美日韩一区二区三区视频| 国产成人在线免费观看| 久久精品99国产精品日本| 亚洲一区二区视频在线观看| 国产精品白丝在线| 国产精品伦理在线| 国产日产欧美一区二区三区| 欧美变态凌虐bdsm| 精品国产乱码久久久久久影片| 欧美精品一级二级| 欧美人xxxx| 日韩一区二区三区四区| 欧美系列日韩一区| 欧美日韩在线一区二区| 欧美精品一二三四| 日韩片之四级片| 国产日韩精品久久久| 亚洲国产精品激情在线观看| 国产午夜三级一区二区三| 中文字幕欧美一| 一片黄亚洲嫩模| 久久99久久99| 国产成人免费av在线| 99精品久久免费看蜜臀剧情介绍| 成人动漫一区二区三区| 91豆麻精品91久久久久久| 91精品国产一区二区三区| 精品欧美一区二区久久| 亚洲欧美日韩人成在线播放| 亚洲成人动漫一区| 国产一区二区免费视频| 国产成人免费视频网站| 欧美三级乱人伦电影| 国产午夜精品久久久久久免费视| 亚洲色图在线视频| 久久成人久久爱| 欧美性大战久久久久久久| 国产午夜精品一区二区三区视频 | 色综合久久久网| 欧美精品一区二区三区蜜桃视频| 中文欧美字幕免费|