rib_base.cc

来自「BCAST Implementation for NS2」· CC 代码 · 共 1,522 行 · 第 1/4 页

CC
1,522
字号
    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_delete_route6(	    xa_inputs.get_string("protocol"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    xa_inputs.get_ipv6net("network"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/delete_route6 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_lookup_route4(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != 3) handling rib/0.1/lookup_route4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    IPv4 nexthop;    try {	XrlCmdError e = rib_0_1_lookup_route4(	    xa_inputs.get_ipv4("addr"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    nexthop);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/lookup_route4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("nexthop", nexthop);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_lookup_route6(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != 3) handling rib/0.1/lookup_route6",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    IPv6 nexthop;    try {	XrlCmdError e = rib_0_1_lookup_route6(	    xa_inputs.get_ipv6("addr"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    nexthop);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/lookup_route6 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("nexthop", nexthop);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_new_vif(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != 1) handling rib/0.1/new_vif",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_new_vif(	    xa_inputs.get_string("name"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/new_vif failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_add_vif_addr4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != 3) handling rib/0.1/add_vif_addr4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_add_vif_addr4(	    xa_inputs.get_string("name"),	    xa_inputs.get_ipv4("addr"),	    xa_inputs.get_ipv4net("subnet"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/add_vif_addr4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_add_vif_addr6(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != 3) handling rib/0.1/add_vif_addr6",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_add_vif_addr6(	    xa_inputs.get_string("name"),	    xa_inputs.get_ipv6("addr"),	    xa_inputs.get_ipv6net("subnet"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/add_vif_addr6 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_redist_enable4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != 4) handling rib/0.1/redist_enable4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_redist_enable4(	    xa_inputs.get_string("from"),	    xa_inputs.get_string("to"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/redist_enable4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_redist_enable6(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != 4) handling rib/0.1/redist_enable6",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_redist_enable6(	    xa_inputs.get_string("from"),	    xa_inputs.get_string("to"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/redist_enable6 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_redist_disable4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != 4) handling rib/0.1/redist_disable4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_redist_disable4(	    xa_inputs.get_string("from"),	    xa_inputs.get_string("to"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/redist_disable4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_redist_disable6(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != 4) handling rib/0.1/redist_disable6",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_redist_disable6(	    xa_inputs.get_string("from"),	    xa_inputs.get_string("to"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/redist_disable6 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_register_interest4(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != 2) handling rib/0.1/register_interest4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    bool resolves;    IPv4 base_addr;    uint32_t prefix_len;    uint32_t real_prefix_len;    IPv4 nexthop;    uint32_t metric;    try {	XrlCmdError e = rib_0_1_register_interest4(	    xa_inputs.get_string("target"),	    xa_inputs.get_ipv4("addr"),	    resolves,	    base_addr,	    prefix_len,	    real_prefix_len,	    nexthop,	    metric);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/register_interest4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("resolves", resolves);	pxa_outputs->add("base_addr", base_addr);	pxa_outputs->add("prefix_len", prefix_len);	pxa_outputs->add("real_prefix_len", real_prefix_len);	pxa_outputs->add("nexthop", nexthop);	pxa_outputs->add("metric", metric);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_deregister_interest4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != 3) handling rib/0.1/deregister_interest4",            (uint32_t)xa_inputs.size());	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = rib_0_1_deregister_interest4(	    xa_inputs.get_string("target"),	    xa_inputs.get_ipv4("addr"),	    xa_inputs.get_uint32("prefix_len"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for rib/0.1/deregister_interest4 failed: %s",            		 e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRibTargetBase::handle_rib_0_1_register_interest6(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != 2) handling rib/0.1/register_interest6",            (uint32_t)xa_inputs.size());

⌨️ 快捷键说明

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