📄 bgp_base.cc
字号:
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 + -