📄 rib_base.cc
字号:
metric); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "rib/0.1/register_interest6", 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_interest6(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()), "rib/0.1/deregister_interest6"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = rib_0_1_deregister_interest6( xa_inputs.get_string("target"), xa_inputs.get_ipv6("addr"), xa_inputs.get_uint32("prefix_len")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "rib/0.1/deregister_interest6", 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_insert_policy_redist_tags(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()), "rib/0.1/insert_policy_redist_tags"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = rib_0_1_insert_policy_redist_tags( xa_inputs.get_string("protocol"), xa_inputs.get_list("policytags")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "rib/0.1/insert_policy_redist_tags", 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_reset_policy_redist_tags(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()), "rib/0.1/reset_policy_redist_tags"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = rib_0_1_reset_policy_redist_tags(); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "rib/0.1/reset_policy_redist_tags", 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_profile_0_1_enable(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()), "profile/0.1/enable"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = profile_0_1_enable( xa_inputs.get_string("pname")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "profile/0.1/enable", 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_profile_0_1_disable(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()), "profile/0.1/disable"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = profile_0_1_disable( xa_inputs.get_string("pname")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "profile/0.1/disable", 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_profile_0_1_get_entries(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()), "profile/0.1/get_entries"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = profile_0_1_get_entries( xa_inputs.get_string("pname"), xa_inputs.get_string("instance_name")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "profile/0.1/get_entries", 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_profile_0_1_clear(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()), "profile/0.1/clear"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = profile_0_1_clear( xa_inputs.get_string("pname")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "profile/0.1/clear", 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_profile_0_1_list(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()), "profile/0.1/list"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ string info; try { XrlCmdError e = profile_0_1_list( info); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "profile/0.1/list", 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("info", info); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}voidXrlRibTargetBase::add_handlers(){ if (_cmds->add_handler("common/0.1/get_target_name", callback(this, &XrlRibTargetBase::handle_common_0_1_get_target_name)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "common/0.1/get_target_name"); } if (_cmds->add_handler("common/0.1/get_version", callback(this, &XrlRibTargetBase::handle_common_0_1_get_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "common/0.1/get_version"); } if (_cmds->add_handler("common/0.1/get_status", callback(this, &XrlRibTargetBase::handle_common_0_1_get_status)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "common/0.1/get_status"); } if (_cmds->add_handler("common/0.1/shutdown", callback(this, &XrlRibTargetBase::handle_common_0_1_shutdown)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "common/0.1/shutdown"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_birth", callback(this, &XrlRibTargetBase::handle_finder_event_observer_0_1_xrl_target_birth)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "finder_event_observer/0.1/xrl_target_birth"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_death", callback(this, &XrlRibTargetBase::handle_finder_event_observer_0_1_xrl_target_death)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "finder_event_observer/0.1/xrl_target_death"); } if (_cmds->add_handler("policy_backend/0.1/configure", callback(this, &XrlRibTargetBase::handle_policy_backend_0_1_configure)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "policy_backend/0.1/configure"); } if (_cmds->add_handler("policy_backend/0.1/reset", callback(this, &XrlRibTargetBase::handle_policy_backend_0_1_reset)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "policy_backend/0.1/reset"); } if (_cmds->add_handler("policy_backend/0.1/push_routes", callback(this, &XrlRibTargetBase::handle_policy_backend_0_1_push_routes)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "policy_backend/0.1/push_routes"); } if (_cmds->add_handler("rib/0.1/enable_rib", callback(this, &XrlRibTargetBase::handle_rib_0_1_enable_rib)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/enable_rib"); } if (_cmds->add_handler("rib/0.1/disable_rib", callback(this, &XrlRibTargetBase::handle_rib_0_1_disable_rib)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/disable_rib"); } if (_cmds->add_handler("rib/0.1/start_rib", callback(this, &XrlRibTargetBase::handle_rib_0_1_start_rib)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/start_rib"); } if (_cmds->add_handler("rib/0.1/stop_rib", callback(this, &XrlRibTargetBase::handle_rib_0_1_stop_rib)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/stop_rib"); } if (_cmds->add_handler("rib/0.1/make_errors_fatal", callback(this, &XrlRibTargetBase::handle_rib_0_1_make_errors_fatal)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/make_errors_fatal"); } if (_cmds->add_handler("rib/0.1/get_registered_protocols", callback(this, &XrlRibTargetBase::handle_rib_0_1_get_registered_protocols)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/get_registered_protocols"); } if (_cmds->add_handler("rib/0.1/add_igp_table4", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_igp_table4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_igp_table4"); } if (_cmds->add_handler("rib/0.1/add_igp_table6", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_igp_table6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_igp_table6"); } if (_cmds->add_handler("rib/0.1/delete_igp_table4", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_igp_table4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_igp_table4"); } if (_cmds->add_handler("rib/0.1/delete_igp_table6", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_igp_table6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_igp_table6"); } if (_cmds->add_handler("rib/0.1/add_egp_table4", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_egp_table4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_egp_table4"); } if (_cmds->add_handler("rib/0.1/add_egp_table6", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_egp_table6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_egp_table6"); } if (_cmds->add_handler("rib/0.1/delete_egp_table4", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_egp_table4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_egp_table4"); } if (_cmds->add_handler("rib/0.1/delete_egp_table6", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_egp_table6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_egp_table6"); } if (_cmds->add_handler("rib/0.1/add_route4", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_route4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_route4"); } if (_cmds->add_handler("rib/0.1/add_route6", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_route6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_route6"); } if (_cmds->add_handler("rib/0.1/replace_route4", callback(this, &XrlRibTargetBase::handle_rib_0_1_replace_route4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/replace_route4"); } if (_cmds->add_handler("rib/0.1/replace_route6", callback(this, &XrlRibTargetBase::handle_rib_0_1_replace_route6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/replace_route6"); } if (_cmds->add_handler("rib/0.1/delete_route4", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_route4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_route4"); } if (_cmds->add_handler("rib/0.1/delete_route6", callback(this, &XrlRibTargetBase::handle_rib_0_1_delete_route6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/delete_route6"); } if (_cmds->add_handler("rib/0.1/add_interface_route4", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_interface_route4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_interface_route4"); } if (_cmds->add_handler("rib/0.1/add_interface_route6", callback(this, &XrlRibTargetBase::handle_rib_0_1_add_interface_route6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/add_interface_route6"); } if (_cmds->add_handler("rib/0.1/replace_interface_route4", callback(this, &XrlRibTargetBase::handle_rib_0_1_replace_interface_route4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/replace_interface_route4"); } if (_cmds->add_handler("rib/0.1/replace_interface_route6", callback(this, &XrlRibTargetBase::handle_rib_0_1_replace_interface_route6)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/replace_interface_route6"); } if (_cmds->add_handler("rib/0.1/lookup_route_by_dest4", callback(this, &XrlRibTargetBase::handle_rib_0_1_lookup_route_by_dest4)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "rib", "rib/0.1/lookup_route_by_dest4"); } if (_cmds->add_handler("rib/0.1/lookup_route_by_dest6", callback(this, &XrlRibTargetBase::handle_rib_0_1_lookup_route_by_dest6)) == false) { XLOG_ERROR("Failed to xrl handler
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -