📄 ospfv3_xif.cc
字号:
const SetPassiveCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/set_passive"); x.args().add("ifname", ifname); x.args().add("vifname", vifname); x.args().add("area", area); x.args().add("passive", passive); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_set_passive, cb));}/* Unmarshall set_passive */voidXrlOspfv3V0p1Client::unmarshall_set_passive( const XrlError& e, XrlArgs* a, SetPassiveCB 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);}boolXrlOspfv3V0p1Client::send_originate_default_route( const char* dst_xrl_target_name, const IPv4& area, const bool& enable, const OriginateDefaultRouteCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/originate_default_route"); x.args().add("area", area); x.args().add("enable", enable); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_originate_default_route, cb));}/* Unmarshall originate_default_route */voidXrlOspfv3V0p1Client::unmarshall_originate_default_route( const XrlError& e, XrlArgs* a, OriginateDefaultRouteCB 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);}boolXrlOspfv3V0p1Client::send_stub_default_cost( const char* dst_xrl_target_name, const IPv4& area, const uint32_t& cost, const StubDefaultCostCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/stub_default_cost"); x.args().add("area", area); x.args().add("cost", cost); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_stub_default_cost, cb));}/* Unmarshall stub_default_cost */voidXrlOspfv3V0p1Client::unmarshall_stub_default_cost( const XrlError& e, XrlArgs* a, StubDefaultCostCB 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);}boolXrlOspfv3V0p1Client::send_summaries( const char* dst_xrl_target_name, const IPv4& area, const bool& enable, const SummariesCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/summaries"); x.args().add("area", area); x.args().add("enable", enable); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_summaries, cb));}/* Unmarshall summaries */voidXrlOspfv3V0p1Client::unmarshall_summaries( const XrlError& e, XrlArgs* a, SummariesCB 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);}boolXrlOspfv3V0p1Client::send_area_range_add( const char* dst_xrl_target_name, const IPv4& area, const IPv6Net& net, const bool& advertise, const AreaRangeAddCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_add"); x.args().add("area", area); x.args().add("net", net); x.args().add("advertise", advertise); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_add, cb));}/* Unmarshall area_range_add */voidXrlOspfv3V0p1Client::unmarshall_area_range_add( const XrlError& e, XrlArgs* a, AreaRangeAddCB 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);}boolXrlOspfv3V0p1Client::send_area_range_delete( const char* dst_xrl_target_name, const IPv4& area, const IPv6Net& net, const AreaRangeDeleteCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_delete"); x.args().add("area", area); x.args().add("net", net); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_delete, cb));}/* Unmarshall area_range_delete */voidXrlOspfv3V0p1Client::unmarshall_area_range_delete( const XrlError& e, XrlArgs* a, AreaRangeDeleteCB 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);}boolXrlOspfv3V0p1Client::send_area_range_change_state( const char* dst_xrl_target_name, const IPv4& area, const IPv6Net& net, const bool& advertise, const AreaRangeChangeStateCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_change_state"); x.args().add("area", area); x.args().add("net", net); x.args().add("advertise", advertise); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_change_state, cb));}/* Unmarshall area_range_change_state */voidXrlOspfv3V0p1Client::unmarshall_area_range_change_state( const XrlError& e, XrlArgs* a, AreaRangeChangeStateCB 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);}boolXrlOspfv3V0p1Client::send_trace( const char* dst_xrl_target_name, const string& tvar, const bool& enable, const TraceCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/trace"); x.args().add("tvar", tvar); x.args().add("enable", enable); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_trace, cb));}/* Unmarshall trace */voidXrlOspfv3V0p1Client::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);}boolXrlOspfv3V0p1Client::send_get_lsa( const char* dst_xrl_target_name, const IPv4& area, const uint32_t& index, const GetLsaCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_lsa"); x.args().add("area", area); x.args().add("index", index); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_lsa, cb));}/* Unmarshall get_lsa */voidXrlOspfv3V0p1Client::unmarshall_get_lsa( const XrlError& e, XrlArgs* a, GetLsaCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0, 0, 0); return; } else if (a && a->size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(4)); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0); return; } bool valid; bool toohigh; bool self; vector<uint8_t> lsa; try { a->get("valid", valid); a->get("toohigh", toohigh); a->get("self", self); a->get("lsa", lsa); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0); return; } cb->dispatch(e, &valid, &toohigh, &self, &lsa);}boolXrlOspfv3V0p1Client::send_get_area_list( const char* dst_xrl_target_name, const GetAreaListCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_area_list"); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_area_list, cb));}/* Unmarshall get_area_list */voidXrlOspfv3V0p1Client::unmarshall_get_area_list( const XrlError& e, XrlArgs* a, GetAreaListCB 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; } XrlAtomList areas; try { a->get("areas", areas); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &areas);}boolXrlOspfv3V0p1Client::send_get_neighbour_list( const char* dst_xrl_target_name, const GetNeighbourListCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_neighbour_list"); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_neighbour_list, cb));}/* Unmarshall get_neighbour_list */voidXrlOspfv3V0p1Client::unmarshall_get_neighbour_list( const XrlError& e, XrlArgs* a, GetNeighbourListCB 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; } XrlAtomList areas; try { a->get("areas", areas); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &areas);}boolXrlOspfv3V0p1Client::send_get_neighbour_info( const char* dst_xrl_target_name, const uint32_t& nid, const GetNeighbourInfoCB& cb){ Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_neighbour_info"); x.args().add("nid", nid); return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_neighbour_info, cb));}/* Unmarshall get_neighbour_info */voidXrlOspfv3V0p1Client::unmarshall_get_neighbour_info( const XrlError& e, XrlArgs* a, GetNeighbourInfoCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return; } else if (a && a->size() != 12) { XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(12)); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return; } string address; string interface; string state; IPv4 rid; uint32_t priority; uint32_t deadtime; IPv4 area; uint32_t opt; IPv4 dr; IPv4 bdr; uint32_t up; uint32_t adjacent; try { a->get("address", address); a->get("interface", interface); a->get("state", state); a->get("rid", rid); a->get("priority", priority); a->get("deadtime", deadtime); a->get("area", area); a->get("opt", opt); a->get("dr", dr); a->get("bdr", bdr); a->get("up", up); a->get("adjacent", adjacent); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return; } cb->dispatch(e, &address, &interface, &state, &rid, &priority, &deadtime, &area, &opt, &dr, &bdr, &up, &adjacent);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -