📄 bgp_xif.cc
字号:
const string& password, const SetPeerMd5PasswordCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/set_peer_md5_password"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); x.args().add("password", password); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_set_peer_md5_password, cb));}/* Unmarshall set_peer_md5_password */voidXrlBgpV0p2Client::unmarshall_set_peer_md5_password( const XrlError& e, XrlArgs* a, SetPeerMd5PasswordCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_activate( const char* dst_xrl_target_name, const string& local_ip, const uint32_t& local_port, const string& peer_ip, const uint32_t& peer_port, const ActivateCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/activate"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_activate, cb));}/* Unmarshall activate */voidXrlBgpV0p2Client::unmarshall_activate( const XrlError& e, XrlArgs* a, ActivateCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_set_parameter( const char* dst_xrl_target_name, const string& local_ip, const uint32_t& local_port, const string& peer_ip, const uint32_t& peer_port, const string& parameter, const bool& toggle, const SetParameterCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/set_parameter"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); x.args().add("parameter", parameter); x.args().add("toggle", toggle); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_set_parameter, cb));}/* Unmarshall set_parameter */voidXrlBgpV0p2Client::unmarshall_set_parameter( const XrlError& e, XrlArgs* a, SetParameterCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_next_hop_rewrite_filter( const char* dst_xrl_target_name, const string& local_ip, const uint32_t& local_port, const string& peer_ip, const uint32_t& peer_port, const IPv4& next_hop, const NextHopRewriteFilterCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/next_hop_rewrite_filter"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); x.args().add("next_hop", next_hop); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_next_hop_rewrite_filter, cb));}/* Unmarshall next_hop_rewrite_filter */voidXrlBgpV0p2Client::unmarshall_next_hop_rewrite_filter( const XrlError& e, XrlArgs* a, NextHopRewriteFilterCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_originate_route4( const char* dst_xrl_target_name, const IPv4Net& nlri, const IPv4& next_hop, const bool& unicast, const bool& multicast, const OriginateRoute4CB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/originate_route4"); x.args().add("nlri", nlri); x.args().add("next_hop", next_hop); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_originate_route4, cb));}/* Unmarshall originate_route4 */voidXrlBgpV0p2Client::unmarshall_originate_route4( const XrlError& e, XrlArgs* a, OriginateRoute4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_originate_route6( const char* dst_xrl_target_name, const IPv6Net& nlri, const IPv6& next_hop, const bool& unicast, const bool& multicast, const OriginateRoute6CB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/originate_route6"); x.args().add("nlri", nlri); x.args().add("next_hop", next_hop); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_originate_route6, cb));}/* Unmarshall originate_route6 */voidXrlBgpV0p2Client::unmarshall_originate_route6( const XrlError& e, XrlArgs* a, OriginateRoute6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_withdraw_route4( const char* dst_xrl_target_name, const IPv4Net& nlri, const bool& unicast, const bool& multicast, const WithdrawRoute4CB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/withdraw_route4"); x.args().add("nlri", nlri); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_withdraw_route4, cb));}/* Unmarshall withdraw_route4 */voidXrlBgpV0p2Client::unmarshall_withdraw_route4( const XrlError& e, XrlArgs* a, WithdrawRoute4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_withdraw_route6( const char* dst_xrl_target_name, const IPv6Net& nlri, const bool& unicast, const bool& multicast, const WithdrawRoute6CB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/withdraw_route6"); x.args().add("nlri", nlri); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_withdraw_route6, cb));}/* Unmarshall withdraw_route6 */voidXrlBgpV0p2Client::unmarshall_withdraw_route6( const XrlError& e, XrlArgs* a, WithdrawRoute6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_trace( const char* dst_xrl_target_name, const string& tvar, const bool& enable, const TraceCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/trace"); x.args().add("tvar", tvar); x.args().add("enable", enable); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_trace, cb));}/* Unmarshall trace */voidXrlBgpV0p2Client::unmarshall_trace( const XrlError& e, XrlArgs* a, TraceCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0)); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlBgpV0p2Client::send_get_peer_list_start( const char* dst_xrl_target_name, const GetPeerListStartCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/get_peer_list_start"); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_get_peer_list_start, cb));}/* Unmarshall get_peer_list_start */voidXrlBgpV0p2Client::unmarshall_get_peer_list_start( const XrlError& e, XrlArgs* a, GetPeerListStartCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0); return; } else if (a && a->size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(2)); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return; } uint32_t token; bool more; try { a->get("token", token); a->get("more", more); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return; } cb->dispatch(e, &token, &more);}boolXrlBgpV0p2Client::send_get_peer_list_next( const char* dst_xrl_target_name, const uint32_t& token, const GetPeerListNextCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/get_peer_list_next"); x.args().add("token", token); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_get_peer_list_next, cb));}/* Unmarshall get_peer_list_next */voidXrlBgpV0p2Client::unmarshall_get_peer_list_next( const XrlError& e, XrlArgs* a, GetPeerListNextCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0, 0, 0, 0); return; } else if (a && a->size() != 5) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(5)); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0); return; } string local_ip; uint32_t local_port; string peer_ip; uint32_t peer_port; bool more; try { a->get("local_ip", local_ip); a->get("local_port", local_port); a->get("peer_ip", peer_ip); a->get("peer_port", peer_port); a->get("more", more); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0); return; } cb->dispatch(e, &local_ip, &local_port, &peer_ip, &peer_port, &more);}boolXrlBgpV0p2Client::send_get_peer_id( const char* dst_xrl_target_name, const string& local_ip, const uint32_t& local_port, const string& peer_ip, const uint32_t& peer_port, const GetPeerIdCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/get_peer_id"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_get_peer_id, cb));}/* Unmarshall get_peer_id */voidXrlBgpV0p2Client::unmarshall_get_peer_id( const XrlError& e, XrlArgs* a, GetPeerIdCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(1)); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } IPv4 peer_id; try { a->get("peer_id", peer_id); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &peer_id);}boolXrlBgpV0p2Client::send_get_peer_status( const char* dst_xrl_target_name, const string& local_ip, const uint32_t& local_port, const string& peer_ip, const uint32_t& peer_port, const GetPeerStatusCB& cb){ Xrl x(dst_xrl_target_name, "bgp/0.2/get_peer_status"); x.args().add("local_ip", local_ip); x.args().add("local_port", local_port); x.args().add("peer_ip", peer_ip); x.args().add("peer_port", peer_port); return _sender->send(x, callback(this, &XrlBgpV0p2Client::unmarshall_get_peer_status, cb));}/* Unmarshall get_peer_status */voidXrlBgpV0p2Client::unmarshall_get_peer_status( const XrlError& e, XrlArgs* a, GetPeerStatusCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0); return; } else if (a && a->size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(2)); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return; } uint32_t peer_state; uint32_t admin_status; try { a->get("peer_state", peer_state); a->get("admin_status", admin_status); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -