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

📄 bgp_base.cc

📁 xorp源码hg
💻 CC
📖 第 1 页 / 共 5 页
字号:
    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    uint32_t token;    try {	XrlCmdError e = bgp_0_2_get_v4_route_list_start(	    xa_inputs.get_ipv4net("net"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    token);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "bgp/0.2/get_v4_route_list_start", 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("token", token);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_bgp_0_2_get_v6_route_list_start(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "bgp/0.2/get_v6_route_list_start");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    uint32_t token;    try {	XrlCmdError e = bgp_0_2_get_v6_route_list_start(	    xa_inputs.get_ipv6net("net"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    token);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "bgp/0.2/get_v6_route_list_start", 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("token", token);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_bgp_0_2_get_v4_route_list_next(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(1), XORP_UINT_CAST(xa_inputs.size()), "bgp/0.2/get_v4_route_list_next");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    IPv4 peer_id;    IPv4Net net;    uint32_t best_and_origin;    vector<uint8_t> aspath;    IPv4 nexthop;    int32_t med;    int32_t localpref;    int32_t atomic_agg;    vector<uint8_t> aggregator;    int32_t calc_localpref;    vector<uint8_t> attr_unknown;    bool valid;    bool unicast;    bool multicast;    try {	XrlCmdError e = bgp_0_2_get_v4_route_list_next(	    xa_inputs.get_uint32("token"),	    peer_id,	    net,	    best_and_origin,	    aspath,	    nexthop,	    med,	    localpref,	    atomic_agg,	    aggregator,	    calc_localpref,	    attr_unknown,	    valid,	    unicast,	    multicast);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "bgp/0.2/get_v4_route_list_next", 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("peer_id", peer_id);	pxa_outputs->add("net", net);	pxa_outputs->add("best_and_origin", best_and_origin);	pxa_outputs->add("aspath", aspath);	pxa_outputs->add("nexthop", nexthop);	pxa_outputs->add("med", med);	pxa_outputs->add("localpref", localpref);	pxa_outputs->add("atomic_agg", atomic_agg);	pxa_outputs->add("aggregator", aggregator);	pxa_outputs->add("calc_localpref", calc_localpref);	pxa_outputs->add("attr_unknown", attr_unknown);	pxa_outputs->add("valid", valid);	pxa_outputs->add("unicast", unicast);	pxa_outputs->add("multicast", multicast);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_bgp_0_2_get_v6_route_list_next(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(1), XORP_UINT_CAST(xa_inputs.size()), "bgp/0.2/get_v6_route_list_next");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    IPv4 peer_id;    IPv6Net net;    uint32_t best_and_origin;    vector<uint8_t> aspath;    IPv6 nexthop;    int32_t med;    int32_t localpref;    int32_t atomic_agg;    vector<uint8_t> aggregator;    int32_t calc_localpref;    vector<uint8_t> attr_unknown;    bool valid;    bool unicast;    bool multicast;    try {	XrlCmdError e = bgp_0_2_get_v6_route_list_next(	    xa_inputs.get_uint32("token"),	    peer_id,	    net,	    best_and_origin,	    aspath,	    nexthop,	    med,	    localpref,	    atomic_agg,	    aggregator,	    calc_localpref,	    attr_unknown,	    valid,	    unicast,	    multicast);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "bgp/0.2/get_v6_route_list_next", 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("peer_id", peer_id);	pxa_outputs->add("net", net);	pxa_outputs->add("best_and_origin", best_and_origin);	pxa_outputs->add("aspath", aspath);	pxa_outputs->add("nexthop", nexthop);	pxa_outputs->add("med", med);	pxa_outputs->add("localpref", localpref);	pxa_outputs->add("atomic_agg", atomic_agg);	pxa_outputs->add("aggregator", aggregator);	pxa_outputs->add("calc_localpref", calc_localpref);	pxa_outputs->add("attr_unknown", attr_unknown);	pxa_outputs->add("valid", valid);	pxa_outputs->add("unicast", unicast);	pxa_outputs->add("multicast", multicast);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_finder_event_observer_0_1_xrl_target_birth(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(2), XORP_UINT_CAST(xa_inputs.size()), "finder_event_observer/0.1/xrl_target_birth");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = finder_event_observer_0_1_xrl_target_birth(	    xa_inputs.get_string("target_class"),	    xa_inputs.get_string("target_instance"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "finder_event_observer/0.1/xrl_target_birth", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_finder_event_observer_0_1_xrl_target_death(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(2), XORP_UINT_CAST(xa_inputs.size()), "finder_event_observer/0.1/xrl_target_death");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = finder_event_observer_0_1_xrl_target_death(	    xa_inputs.get_string("target_class"),	    xa_inputs.get_string("target_instance"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "finder_event_observer/0.1/xrl_target_death", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_backend_0_1_configure(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(2), XORP_UINT_CAST(xa_inputs.size()), "policy_backend/0.1/configure");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = policy_backend_0_1_configure(	    xa_inputs.get_uint32("filter"),	    xa_inputs.get_string("conf"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "policy_backend/0.1/configure", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_backend_0_1_reset(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(1), XORP_UINT_CAST(xa_inputs.size()), "policy_backend/0.1/reset");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = policy_backend_0_1_reset(	    xa_inputs.get_uint32("filter"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "policy_backend/0.1/reset", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_backend_0_1_push_routes(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(0), XORP_UINT_CAST(xa_inputs.size()), "policy_backend/0.1/push_routes");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = policy_backend_0_1_push_routes();	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "policy_backend/0.1/push_routes", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_redist4_0_1_add_route4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 6) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(6), XORP_UINT_CAST(xa_inputs.size()), "policy_redist4/0.1/add_route4");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = policy_redist4_0_1_add_route4(	    xa_inputs.get_ipv4net("network"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"),	    xa_inputs.get_ipv4("nexthop"),	    xa_inputs.get_uint32("metric"),	    xa_inputs.get_list("policytags"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "policy_redist4/0.1/add_route4", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_redist4_0_1_delete_route4(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "policy_redist4/0.1/delete_route4");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = policy_redist4_0_1_delete_route4(	    xa_inputs.get_ipv4net("network"),	    xa_inputs.get_bool("unicast"),	    xa_inputs.get_bool("multicast"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "policy_redist4/0.1/delete_route4", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlBgpTargetBase::handle_policy_redist6_0_1_add_route6(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 6) 

⌨️ 快捷键说明

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