⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xrl_mld6igmp_node.cc

📁 MLDv2 support igmpv3 lite
💻 CC
📖 第 1 页 / 共 5 页
字号:
XrlCmdErrorXrlMld6igmpNode::common_0_1_get_target_name(    // Output values,     string&		name){    name = xrl_router().class_name();        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::common_0_1_get_version(    // Output values,     string&		version){    version = XORP_MODULE_VERSION;        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::common_0_1_get_status(// Output values, 				       uint32_t& status,				       string& reason){    status = Mld6igmpNode::node_status(reason);        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::common_0_1_shutdown(){    bool is_error = false;    string error_msg;    if (shutdown() != XORP_OK) {	if (! is_error)	    error_msg = c_format("Failed to shutdown %s",				 Mld6igmpNode::proto_is_igmp() ?				 "IGMP" : "MLD");	is_error = true;    }    if (is_error)	return XrlCmdError::COMMAND_FAILED(error_msg);    return XrlCmdError::OKAY();}/** *  Announce target birth to observer. * *  @param target_class the target class name. * *  @param target_instance the target instance name. */XrlCmdErrorXrlMld6igmpNode::finder_event_observer_0_1_xrl_target_birth(    // Input values,    const string&	target_class,    const string&	target_instance){    if (target_class == _fea_target) {	_is_fea_alive = true;	Mld6igmpNode::decr_startup_requests_n();	// XXX: for FEA birth    }    if (target_class == _mfea_target) {	_is_mfea_alive = true;	Mld6igmpNode::decr_startup_requests_n();	// XXX: for MFEA birth	//	// XXX: when the startup is completed,	// IfMgrHintObserver::tree_complete() will be called.	//	if (_ifmgr.startup() != XORP_OK) {	    Mld6igmpNode::set_status(SERVICE_FAILED);	    Mld6igmpNode::update_status();	}    }    return XrlCmdError::OKAY();    UNUSED(target_instance);}/** *  Announce target death to observer. * *  @param target_class the target class name. * *  @param target_instance the target instance name. */XrlCmdErrorXrlMld6igmpNode::finder_event_observer_0_1_xrl_target_death(    // Input values,    const string&	target_class,    const string&	target_instance){    bool do_shutdown = false;    if (target_class == _fea_target) {	XLOG_ERROR("FEA (instance %s) has died, shutting down.",		   target_instance.c_str());	_is_fea_alive = false;	do_shutdown = true;    }    if (target_class == _mfea_target) {	XLOG_ERROR("MFEA (instance %s) has died, shutting down.",		   target_instance.c_str());	_is_mfea_alive = false;	do_shutdown = true;    }    if (do_shutdown)	stop_mld6igmp();    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::cli_processor_0_1_process_command(    // Input values,     const string&	processor_name,     const string&	cli_term_name,     const uint32_t&	cli_session_id,    const string&	command_name,     const string&	command_args,     // Output values,     string&		ret_processor_name,     string&		ret_cli_term_name,     uint32_t&		ret_cli_session_id,    string&		ret_command_output){    Mld6igmpNodeCli::cli_process_command(processor_name,					 cli_term_name,					 cli_session_id,					 command_name,					 command_args,					 ret_processor_name,					 ret_cli_term_name,					 ret_cli_session_id,					 ret_command_output);    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::raw_packet4_client_0_1_recv(    // Input values,    const string&	if_name,    const string&	vif_name,    const IPv4&		src_address,    const IPv4&		dst_address,    const uint32_t&	ip_protocol,    const int32_t&	ip_ttl,    const int32_t&	ip_tos,    const bool&		ip_router_alert,    const bool&		ip_internet_control,    const vector<uint8_t>&	payload){    string error_msg;    //    // Verify the address family    //    if (! Mld6igmpNode::is_ipv4()) {	error_msg = c_format("Received protocol message with "			     "invalid address family: IPv4");	return XrlCmdError::COMMAND_FAILED(error_msg);    }    //    // Receive the message    //    Mld6igmpNode::proto_recv(if_name,			     vif_name,			     IPvX(src_address),			     IPvX(dst_address),			     ip_protocol,			     ip_ttl,			     ip_tos,			     ip_router_alert,			     ip_internet_control,			     payload,			     error_msg);    // XXX: no error returned, because if there is any, it is at the    // protocol level, and the FEA shoudn't care about it.        //    // Success    //    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::raw_packet6_client_0_1_recv(    // Input values,    const string&	if_name,    const string&	vif_name,    const IPv6&		src_address,    const IPv6&		dst_address,    const uint32_t&	ip_protocol,    const int32_t&	ip_ttl,    const int32_t&	ip_tos,    const bool&		ip_router_alert,    const bool&		ip_internet_control,    const XrlAtomList&	ext_headers_type,    const XrlAtomList&	ext_headers_payload,    const vector<uint8_t>&	payload){    string error_msg;    UNUSED(ext_headers_type);    UNUSED(ext_headers_payload);    //    // Verify the address family    //    if (! Mld6igmpNode::is_ipv6()) {	error_msg = c_format("Received protocol message with "			     "invalid address family: IPv6");	return XrlCmdError::COMMAND_FAILED(error_msg);    }    //    // Receive the message    //    Mld6igmpNode::proto_recv(if_name,			     vif_name,			     IPvX(src_address),			     IPvX(dst_address),			     ip_protocol,			     ip_ttl,			     ip_tos,			     ip_router_alert,			     ip_internet_control,			     payload,			     error_msg);    // XXX: no error returned, because if there is any, it is at the    // protocol level, and the FEA shoudn't care about it.        //    // Success    //    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_enable_vif(    // Input values,    const string&	vif_name,    const bool&	enable){    string error_msg;    int ret_value;    if (enable)	ret_value = Mld6igmpNode::enable_vif(vif_name, error_msg);    else	ret_value = Mld6igmpNode::disable_vif(vif_name, error_msg);    if (ret_value != XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_start_vif(    // Input values,     const string&	vif_name){    string error_msg;        if (Mld6igmpNode::start_vif(vif_name, error_msg) != XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_stop_vif(    // Input values,     const string&	vif_name){    string error_msg;        if (Mld6igmpNode::stop_vif(vif_name, error_msg) != XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_enable_all_vifs(    // Input values,    const bool&	enable){    string error_msg;    int ret_value;    if (enable)	ret_value = Mld6igmpNode::enable_all_vifs();    else	ret_value = Mld6igmpNode::enable_all_vifs();    if (ret_value != XORP_OK) {	if (enable)	    error_msg = c_format("Failed to enable all vifs");	else	    error_msg = c_format("Failed to disable all vifs");	return XrlCmdError::COMMAND_FAILED(error_msg);    }    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_start_all_vifs(){    string error_msg;    if (Mld6igmpNode::start_all_vifs() != XORP_OK) {	error_msg = c_format("Failed to start all vifs");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_stop_all_vifs(){    string error_msg;    if (Mld6igmpNode::stop_all_vifs() != XORP_OK) {	error_msg = c_format("Failed to stop all vifs");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_enable_mld6igmp(    // Input values,    const bool&	enable){    string error_msg;    int ret_value;    if (enable)	ret_value = enable_mld6igmp();    else	ret_value = disable_mld6igmp();    if (ret_value != XORP_OK) {	if (enable)	    error_msg = c_format("Failed to enable MLD6IGMP");	else	    error_msg = c_format("Failed to disable MLD6IGMP");	return XrlCmdError::COMMAND_FAILED(error_msg);    }    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_start_mld6igmp(){    string error_msg;    if (start_mld6igmp() != XORP_OK) {	error_msg = c_format("Failed to start MLD6IMGP");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_stop_mld6igmp(){    string error_msg;    if (stop_mld6igmp() != XORP_OK) {	error_msg = c_format("Failed to stop MLD6IMGP");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_enable_cli(    // Input values,    const bool&	enable){    string error_msg;    int ret_value;    if (enable)	ret_value = enable_cli();    else	ret_value = disable_cli();    if (ret_value != XORP_OK) {	if (enable)	    error_msg = c_format("Failed to enable MLD6IGMP CLI");	else	    error_msg = c_format("Failed to disable MLD6IGMP CLI");	return XrlCmdError::COMMAND_FAILED(error_msg);    }    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_start_cli(){    string error_msg;    if (start_cli() != XORP_OK) {	error_msg = c_format("Failed to start MLD6IMGP CLI");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_stop_cli(){    string error_msg;    if (stop_cli() != XORP_OK) {	error_msg = c_format("Failed to stop MLD6IMGP CLI");	return XrlCmdError::COMMAND_FAILED(error_msg);    }        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_get_vif_proto_version(    // Input values,     const string&	vif_name,     // Output values,     uint32_t&		proto_version){    string error_msg;        int v;    if (Mld6igmpNode::get_vif_proto_version(vif_name, v, error_msg) != XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);        proto_version = v;    return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_set_vif_proto_version(    // Input values,     const string&	vif_name,     const uint32_t&	proto_version){    string error_msg;        if (Mld6igmpNode::set_vif_proto_version(vif_name, proto_version, error_msg)	!= XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_reset_vif_proto_version(    // Input values,     const string&	vif_name){    string error_msg;        if (Mld6igmpNode::reset_vif_proto_version(vif_name, error_msg) != XORP_OK)	return XrlCmdError::COMMAND_FAILED(error_msg);        return XrlCmdError::OKAY();}XrlCmdErrorXrlMld6igmpNode::mld6igmp_0_1_get_vif_ip_router_alert_option_check(    // Input values,    const string&	vif_name,    // Output values,    bool&	enabled){    string error_msg;        bool v;    if (Mld6igmpNode::get_vif_ip_router_alert_option_check(vif_name, v,							   error_msg)	!= XORP_OK) {	return XrlCmdError::COMMAND_FAILED(error_msg);    }    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -