📄 ripng_base.cc
字号:
} } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("ifnames", ifnames); pxa_outputs->add("vifnames", vifnames); pxa_outputs->add("addrs", addrs); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_counters(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()), "ripng/0.1/get_counters"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList counter_descriptions; XrlAtomList counter_values; try { XrlCmdError e = ripng_0_1_get_counters( xa_inputs.get_string("ifname"), xa_inputs.get_string("vifname"), xa_inputs.get_ipv6("addr"), counter_descriptions, counter_values); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/get_counters", 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("counter_descriptions", counter_descriptions); pxa_outputs->add("counter_values", counter_values); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_peers(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()), "ripng/0.1/get_peers"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList peers; try { XrlCmdError e = ripng_0_1_get_peers( xa_inputs.get_string("ifname"), xa_inputs.get_string("vifname"), xa_inputs.get_ipv6("addr"), peers); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/get_peers", 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("peers", peers); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_all_peers(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()), "ripng/0.1/get_all_peers"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList peers; XrlAtomList ifnames; XrlAtomList vifnames; XrlAtomList addrs; try { XrlCmdError e = ripng_0_1_get_all_peers( peers, ifnames, vifnames, addrs); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/get_all_peers", 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("peers", peers); pxa_outputs->add("ifnames", ifnames); pxa_outputs->add("vifnames", vifnames); pxa_outputs->add("addrs", addrs); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_peer_counters(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/get_peer_counters"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ XrlAtomList counter_descriptions; XrlAtomList counter_values; uint32_t peer_last_active; try { XrlCmdError e = ripng_0_1_get_peer_counters( xa_inputs.get_string("ifname"), xa_inputs.get_string("vifname"), xa_inputs.get_ipv6("addr"), xa_inputs.get_ipv6("peer"), counter_descriptions, counter_values, peer_last_active); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/get_peer_counters", 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("counter_descriptions", counter_descriptions); pxa_outputs->add("counter_values", counter_values); pxa_outputs->add("peer_last_active", peer_last_active); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_redist_protocol_routes(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()), "ripng/0.1/redist_protocol_routes"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ripng_0_1_redist_protocol_routes( xa_inputs.get_string("protocol_name"), xa_inputs.get_uint32("cost"), xa_inputs.get_uint32("tag")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/redist_protocol_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 XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_no_redist_protocol_routes(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()), "ripng/0.1/no_redist_protocol_routes"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = ripng_0_1_no_redist_protocol_routes( xa_inputs.get_string("protocol_name")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "ripng/0.1/no_redist_protocol_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 XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_recv_event(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/recv_event"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_user_0_1_recv_event( xa_inputs.get_string("sockid"), xa_inputs.get_ipv6("src_host"), xa_inputs.get_uint32("src_port"), xa_inputs.get_binary("data")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6_user/0.1/recv_event", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_connect_event(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/connect_event"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ bool accept; try { XrlCmdError e = socket6_user_0_1_connect_event( xa_inputs.get_string("sockid"), xa_inputs.get_ipv6("src_host"), xa_inputs.get_uint32("src_port"), xa_inputs.get_string("new_sockid"), accept); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6_user/0.1/connect_event", 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("accept", accept); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_error_event(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()), "socket6_user/0.1/error_event"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_user_0_1_error_event( xa_inputs.get_string("sockid"), xa_inputs.get_string("error"), xa_inputs.get_bool("fatal")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6_user/0.1/error_event", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_close_event(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()), "socket6_user/0.1/close_event"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_user_0_1_close_event( xa_inputs.get_string("sockid"), xa_inputs.get_string("reason")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6_user/0.1/close_event", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}voidXrlRipngTargetBase::add_handlers(){ if (_cmds->add_handler("common/0.1/get_target_name", callback(this, &XrlRipngTargetBase::handle_common_0_1_get_target_name)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_target_name"); } if (_cmds->add_handler("common/0.1/get_version", callback(this, &XrlRipngTargetBase::handle_common_0_1_get_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_version"); } if (_cmds->add_handler("common/0.1/get_status", callback(this, &XrlRipngTargetBase::handle_common_0_1_get_status)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_status"); } if (_cmds->add_handler("common/0.1/shutdown", callback(this, &XrlRipngTargetBase::handle_common_0_1_shutdown)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/shutdown"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_birth", callback(this, &XrlRipngTargetBase::handle_finder_event_observer_0_1_xrl_target_birth)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "finder_event_observer/0.1/xrl_target_birth"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_death", callback(this, &XrlRipngTargetBase::handle_finder_event_observer_0_1_xrl_target_death)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "finder_event_observer/0.1/xrl_target_death"); } if (_cmds->add_handler("policy_backend/0.1/configure", callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_configure)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_backend/0.1/configure"); } if (_cmds->add_handler("policy_backend/0.1/reset", callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_reset)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_backend/0.1/reset"); } if (_cmds->add_handler("policy_backend/0.1/push_routes", callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_push_routes)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_ba
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -