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

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

?? mld6igmp_config.cc

?? MLDv2 support igmpv3 lite
?? CC
字號(hào):
// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-// Copyright (c) 2001-2008 XORP, Inc.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the "Software")// to deal in the Software without restriction, subject to the conditions// listed in the XORP LICENSE file. These conditions include: you must// preserve this copyright notice, and you cannot mention the copyright// holders in advertising related to the Software without their permission.// The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This// notice is a summary of the XORP LICENSE file; the license in that file is// legally binding.#ident "$XORP: xorp/contrib/mld6igmp_lite/mld6igmp_config.cc,v 1.2 2008/07/23 05:09:48 pavlin Exp $"//// TODO: a temporary solution for various MLD6IGMP configuration//#include "mld6igmp_module.h"#include "libxorp/xorp.h"#include "libxorp/xlog.h"#include "libxorp/debug.h"#include "libxorp/ipvx.hh"#include "mld6igmp_node.hh"#include "mld6igmp_vif.hh"intMld6igmpNode::set_config_all_vifs_done(string& error_msg){    map<string, Vif>::iterator vif_iter;    map<string, Vif>& configured_vifs = ProtoNode<Mld6igmpVif>::configured_vifs();    string dummy_error_msg;    //    // Add new vifs and update existing ones    //    for (vif_iter = configured_vifs.begin();	 vif_iter != configured_vifs.end();	 ++vif_iter) {	Vif* vif = &vif_iter->second;	Vif* node_vif = vif_find_by_name(vif->name());	if (vif->is_pim_register())	    continue;	// XXX: don't add the PIM Register vifs	//	// Add a new vif	//	if (node_vif == NULL) {	    add_vif(*vif, dummy_error_msg);	    continue;	}		//	// Update the vif flags	//	set_vif_flags(vif->name(), vif->is_pim_register(), vif->is_p2p(),		      vif->is_loopback(), vif->is_multicast_capable(),		      vif->is_broadcast_capable(), vif->is_underlying_vif_up(),		      vif->mtu(),		      dummy_error_msg);    }    //    // Add new vif addresses, update existing ones, and remove old addresses    //    for (vif_iter = configured_vifs.begin();	 vif_iter != configured_vifs.end();	 ++vif_iter) {	Vif* vif = &vif_iter->second;	Vif* node_vif = vif_find_by_name(vif->name());	list<VifAddr>::const_iterator vif_addr_iter;	if (vif->is_pim_register())	    continue;	// XXX: don't add the PIM Register vifs	if (node_vif == NULL)	    continue;		for (vif_addr_iter = vif->addr_list().begin();	     vif_addr_iter != vif->addr_list().end();	     ++vif_addr_iter) {	    const VifAddr& vif_addr = *vif_addr_iter;	    add_vif_addr(vif->name(), vif_addr.addr(),			 vif_addr.subnet_addr(),			 vif_addr.broadcast_addr(),			 vif_addr.peer_addr(),			 dummy_error_msg);	}	//	// Delete vif addresses that don't exist anymore	//	{	    list<IPvX> delete_addresses_list;	    for (vif_addr_iter = node_vif->addr_list().begin();		 vif_addr_iter != node_vif->addr_list().end();		 ++vif_addr_iter) {		const VifAddr& vif_addr = *vif_addr_iter;		if (vif->find_address(vif_addr.addr()) == NULL)		    delete_addresses_list.push_back(vif_addr.addr());	    }	    // Delete the addresses	    list<IPvX>::iterator ipvx_iter;	    for (ipvx_iter = delete_addresses_list.begin();		 ipvx_iter != delete_addresses_list.end();		 ++ipvx_iter) {		const IPvX& ipvx = *ipvx_iter;		delete_vif_addr(vif->name(), ipvx, dummy_error_msg);	    }	}    }    //    // Remove vifs that don't exist anymore    //    for (uint32_t i = 0; i < maxvifs(); i++) {	Vif* node_vif = vif_find_by_vif_index(i);	if (node_vif == NULL)	    continue;	if (configured_vifs.find(node_vif->name()) == configured_vifs.end()) {	    // Delete the interface	    string vif_name = node_vif->name();	    delete_vif(vif_name, dummy_error_msg);	    continue;	}    }    if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_proto_version(const string& vif_name, int& proto_version,				    string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get protocol version for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        proto_version = mld6igmp_vif->proto_version();        return (XORP_OK);}intMld6igmpNode::set_vif_proto_version(const string& vif_name, int proto_version,				    string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set protocol version for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        if (mld6igmp_vif->set_proto_version(proto_version) != XORP_OK) {	end_config(error_msg);        error_msg = c_format("Cannot set protocol version for vif %s: "			     "invalid protocol version %d",			     vif_name.c_str(), proto_version);	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_proto_version(const string& vif_name,				      string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset protocol version for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->set_proto_version(mld6igmp_vif->proto_version_default());        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_ip_router_alert_option_check(const string& vif_name,						   bool& enabled,						   string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get 'IP Router Alert option check' "			     "flag for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        enabled = mld6igmp_vif->ip_router_alert_option_check().get();        return (XORP_OK);}intMld6igmpNode::set_vif_ip_router_alert_option_check(const string& vif_name,						   bool enable,						   string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set 'IP Router Alert option check' "			     "flag for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->ip_router_alert_option_check().set(enable);        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_ip_router_alert_option_check(const string& vif_name,						     string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset 'IP Router Alert option check' "			     "flag for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->ip_router_alert_option_check().reset();        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_query_interval(const string& vif_name,				     TimeVal& interval,				     string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        interval = mld6igmp_vif->configured_query_interval().get();        return (XORP_OK);}intMld6igmpNode::set_vif_query_interval(const string& vif_name,				     const TimeVal& interval,				     string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->configured_query_interval().set(interval);        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_query_interval(const string& vif_name,				       string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->configured_query_interval().reset();        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_query_last_member_interval(const string& vif_name,						 TimeVal& interval,						 string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get Last Member Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        interval = mld6igmp_vif->query_last_member_interval().get();        return (XORP_OK);}intMld6igmpNode::set_vif_query_last_member_interval(const string& vif_name,						 const TimeVal& interval,						 string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set Last Member Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->query_last_member_interval().set(interval);        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_query_last_member_interval(const string& vif_name,						   string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset Last Member Query Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->query_last_member_interval().reset();        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_query_response_interval(const string& vif_name,					      TimeVal& interval,					      string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get Query Response Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        interval = mld6igmp_vif->query_response_interval().get();        return (XORP_OK);}intMld6igmpNode::set_vif_query_response_interval(const string& vif_name,					      const TimeVal& interval,					      string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set Query Response Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->query_response_interval().set(interval);        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_query_response_interval(const string& vif_name,						string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset Query Response Interval for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->query_response_interval().reset();        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::get_vif_robust_count(const string& vif_name,				   uint32_t& robust_count,				   string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (mld6igmp_vif == NULL) {	error_msg = c_format("Cannot get Robustness Variable count for vif %s: "			     "no such vif",			     vif_name.c_str());	return (XORP_ERROR);    }        robust_count = mld6igmp_vif->configured_robust_count().get();        return (XORP_OK);}intMld6igmpNode::set_vif_robust_count(const string& vif_name,				   uint32_t robust_count,				   string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);    if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);    if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot set Robustness Variable count for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->configured_robust_count().set(robust_count);        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}intMld6igmpNode::reset_vif_robust_count(const string& vif_name,				     string& error_msg){    Mld6igmpVif *mld6igmp_vif = vif_find_by_name(vif_name);        if (start_config(error_msg) != XORP_OK)	return (XORP_ERROR);        if (mld6igmp_vif == NULL) {	end_config(error_msg);	error_msg = c_format("Cannot reset Robustness Variable count for vif %s: "			     "no such vif",			     vif_name.c_str());	XLOG_ERROR("%s", error_msg.c_str());	return (XORP_ERROR);    }        mld6igmp_vif->configured_robust_count().reset();        if (end_config(error_msg) != XORP_OK)	return (XORP_ERROR);        return (XORP_OK);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩久久一区二区| 奇米色777欧美一区二区| 伦理电影国产精品| 欧美伊人久久大香线蕉综合69| 日本一区二区免费在线 | 日本亚洲欧美天堂免费| 欧美日韩成人综合天天影院| 亚洲国产成人va在线观看天堂| 99久精品国产| 日韩理论片一区二区| 精品少妇一区二区三区免费观看 | 一区二区三区四区在线播放 | 欧美一区二区视频在线观看2022| 亚洲午夜电影网| 欧美国产一区视频在线观看| av在线不卡观看免费观看| 亚洲精品v日韩精品| 欧美一区二区三区免费视频| 91麻豆国产香蕉久久精品| 天天综合网天天综合色| 欧美一二三四在线| 国产大片一区二区| 樱桃视频在线观看一区| 中文字幕成人网| 久久久久久综合| eeuss影院一区二区三区| 国产乱子轮精品视频| 欧美va日韩va| 777xxx欧美| 成人免费视频一区| 亚洲夂夂婷婷色拍ww47| 日韩精品一区二区三区四区| 成人看片黄a免费看在线| 日韩精品一区二区三区四区| 欧美美女黄视频| 高清国产一区二区三区| 亚洲www啪成人一区二区麻豆| 精品对白一区国产伦| 色偷偷成人一区二区三区91| 肉肉av福利一精品导航| 中文字幕欧美国产| 亚洲精品一线二线三线无人区| 一本久久综合亚洲鲁鲁五月天 | 久久先锋影音av鲁色资源网| 99re这里只有精品视频首页| 国产69精品久久99不卡| 岛国一区二区在线观看| 成人av免费网站| 麻豆精品视频在线观看免费| 亚洲欧美日韩国产成人精品影院| 欧美变态tickling挠脚心| 精品国产成人在线影院| 国产性天天综合网| 51精品国自产在线| 日韩亚洲欧美综合| 欧美videossexotv100| 国产香蕉久久精品综合网| 欧美国产精品一区二区三区| 欧美国产1区2区| 亚洲美女在线国产| 天天色综合成人网| 青青草国产精品97视觉盛宴| 激情综合色综合久久| 亚洲午夜免费电影| 日本欧美一区二区| 国产美女av一区二区三区| 成人免费看黄yyy456| 欧美在线免费播放| 一本到高清视频免费精品| 欧美色国产精品| 在线欧美日韩精品| 91精品黄色片免费大全| 国产欧美精品一区| 亚洲视频一二三区| 美腿丝袜亚洲三区| 成人激情小说乱人伦| 欧美日韩国产一级| 国产欧美精品一区二区色综合朱莉| 亚洲欧美另类久久久精品| 青青草国产成人av片免费| 成人午夜精品在线| 在线成人免费观看| 国产免费久久精品| 日韩av不卡在线观看| 成人午夜视频免费看| 欧美日本精品一区二区三区| 久久久久久久久久久99999| 一区二区三区欧美视频| 国产一区二区按摩在线观看| 在线观看中文字幕不卡| 国产三级三级三级精品8ⅰ区| 一区二区三区四区不卡在线| 国产毛片一区二区| 欧美日韩国产色站一区二区三区| 久久久久99精品国产片| 日韩av一区二| 91免费视频观看| 欧美成人女星排行榜| 1000精品久久久久久久久| 亚洲图片另类小说| 韩国成人福利片在线播放| 丁香一区二区三区| 日韩欧美一二三区| 亚洲影视在线播放| 国产精品77777竹菊影视小说| 欧美亚洲愉拍一区二区| 欧美激情艳妇裸体舞| 久草这里只有精品视频| 欧美四级电影在线观看| 日韩毛片一二三区| 国产aⅴ综合色| 精品伦理精品一区| 日韩经典一区二区| 欧美日韩美少妇| 亚洲女人的天堂| 成人午夜伦理影院| 久久久91精品国产一区二区精品| 日韩国产在线观看| 欧美亚洲丝袜传媒另类| 亚洲日本青草视频在线怡红院| 国产精品一区二区在线播放| 日韩三级在线观看| 偷拍一区二区三区| 欧美日本一区二区三区| 亚洲一区二区av电影| 91麻豆高清视频| 亚洲欧美另类在线| 91在线小视频| 国产精品电影院| 奇米888四色在线精品| 欧美日韩国产123区| 亚洲国产成人高清精品| 欧美唯美清纯偷拍| 亚洲国产色一区| 欧美日韩成人一区二区| 亚洲一区二区三区四区五区黄| 91麻豆6部合集magnet| 成人欧美一区二区三区白人| 成人免费的视频| 国产精品美女久久久久久| 麻豆成人久久精品二区三区小说| 8x8x8国产精品| 麻豆精品久久精品色综合| 精品久久久久香蕉网| 国产一区二区三区日韩| 国产区在线观看成人精品| 成人一级片在线观看| 亚洲欧美在线视频观看| 色狠狠综合天天综合综合| 久久中文字幕电影| 国产成人综合亚洲91猫咪| 国产精品久久久久久亚洲毛片 | 欧美精品久久一区二区三区| 午夜精品一区二区三区电影天堂| 欧美日韩另类一区| 美女视频一区在线观看| 久久嫩草精品久久久久| 国产伦精品一区二区三区视频青涩| 欧美精彩视频一区二区三区| 91在线免费看| 亚洲小少妇裸体bbw| 日韩免费观看高清完整版 | 成人国产精品视频| 亚洲欧美一区二区三区极速播放| 欧美视频在线播放| 看电视剧不卡顿的网站| 国产日本亚洲高清| 欧美视频第二页| 九九精品一区二区| 亚洲丝袜自拍清纯另类| 欧美高清hd18日本| 国产毛片精品视频| 亚洲一区影音先锋| 精品国产免费人成在线观看| 丰满白嫩尤物一区二区| 亚洲国产美国国产综合一区二区| 日韩一卡二卡三卡| 99久久久久免费精品国产 | 色综合中文字幕国产 | 国产激情一区二区三区四区| 亚洲视频中文字幕| 日韩一区二区三区视频| 91免费视频网| 九九九精品视频| 亚洲一区二区欧美激情| 久久综合九色综合欧美98 | 中文字幕欧美国产| 884aa四虎影成人精品一区| 成人黄色在线网站| 蜜桃视频免费观看一区| 中文字幕一区二区三区在线播放| 在线电影国产精品| 一本大道av一区二区在线播放| 日韩av一级电影| 一个色妞综合视频在线观看| 久久蜜桃一区二区| 欧美一区二区三区不卡| 色偷偷88欧美精品久久久| 国产大陆a不卡| 免费成人在线网站|