ospf_xif.cc
来自「BCAST Implementation for NS2」· CC 代码 · 共 2,721 行 · 第 1/5 页
CC
2,721 行
boolXrlOspfV0p1Client::send_vlink_set_authentication( const char* the_tgt, const uint32_t& transit_area, const uint32_t& neighbor_id, const string& type, const string& key, const VlinkSetAuthenticationCB& cb){ Xrl x(the_tgt, "ospf/0.1/vlink_set_authentication"); x.args().add("transit_area", transit_area); x.args().add("neighbor_id", neighbor_id); x.args().add("type", type); x.args().add("key", key); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_vlink_set_authentication, cb));}/* Unmarshall vlink_set_authentication */voidXrlOspfV0p1Client::unmarshall_vlink_set_authentication( const XrlError& e, XrlArgs* a, VlinkSetAuthenticationCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_vlink_get_authentication( const char* the_tgt, const uint32_t& transit_area, const uint32_t& neighbor_id, const VlinkGetAuthenticationCB& cb){ Xrl x(the_tgt, "ospf/0.1/vlink_get_authentication"); x.args().add("transit_area", transit_area); x.args().add("neighbor_id", neighbor_id); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_vlink_get_authentication, cb));}/* Unmarshall vlink_get_authentication */voidXrlOspfV0p1Client::unmarshall_vlink_get_authentication( const XrlError& e, XrlArgs* a, VlinkGetAuthenticationCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0); return; } else if (a && a->size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != 2)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return; } string type; string key; try { a->get("type", type); a->get("key", key); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0); return; } cb->dispatch(e, &type, &key);}boolXrlOspfV0p1Client::send_list_vlinks( const char* the_tgt, const uint32_t& transit_id, const ListVlinksCB& cb){ Xrl x(the_tgt, "ospf/0.1/list_vlinks"); x.args().add("transit_id", transit_id); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_list_vlinks, cb));}/* Unmarshall list_vlinks */voidXrlOspfV0p1Client::unmarshall_list_vlinks( const XrlError& e, XrlArgs* a, ListVlinksCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } XrlAtomList neighbor_ids; try { a->get("neighbor_ids", neighbor_ids); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &neighbor_ids);}boolXrlOspfV0p1Client::send_add_or_configure_external_route( const char* the_tgt, const IPv4Net& network, const IPv4& gateway, const uint32_t& type, const uint32_t& cost, const bool& multicast, const uint32_t& external_route_tag, const AddOrConfigureExternalRouteCB& cb){ Xrl x(the_tgt, "ospf/0.1/add_or_configure_external_route"); x.args().add("network", network); x.args().add("gateway", gateway); x.args().add("type", type); x.args().add("cost", cost); x.args().add("multicast", multicast); x.args().add("external_route_tag", external_route_tag); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_add_or_configure_external_route, cb));}/* Unmarshall add_or_configure_external_route */voidXrlOspfV0p1Client::unmarshall_add_or_configure_external_route( const XrlError& e, XrlArgs* a, AddOrConfigureExternalRouteCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_delete_external_route( const char* the_tgt, const IPv4Net& network, const IPv4& gateway, const DeleteExternalRouteCB& cb){ Xrl x(the_tgt, "ospf/0.1/delete_external_route"); x.args().add("network", network); x.args().add("gateway", gateway); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_delete_external_route, cb));}/* Unmarshall delete_external_route */voidXrlOspfV0p1Client::unmarshall_delete_external_route( const XrlError& e, XrlArgs* a, DeleteExternalRouteCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_query_external_route( const char* the_tgt, const IPv4Net& network, const IPv4& gateway, const QueryExternalRouteCB& cb){ Xrl x(the_tgt, "ospf/0.1/query_external_route"); x.args().add("network", network); x.args().add("gateway", gateway); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_query_external_route, cb));}/* Unmarshall query_external_route */voidXrlOspfV0p1Client::unmarshall_query_external_route( const XrlError& e, XrlArgs* a, QueryExternalRouteCB 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 != 4)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0); return; } uint32_t type; uint32_t cost; bool multicast; uint32_t external_route_tag; try { a->get("type", type); a->get("cost", cost); a->get("multicast", multicast); a->get("external_route_tag", external_route_tag); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0); return; } cb->dispatch(e, &type, &cost, &multicast, &external_route_tag);}boolXrlOspfV0p1Client::send_list_external_routes( const char* the_tgt, const IPv4Net& network, const ListExternalRoutesCB& cb){ Xrl x(the_tgt, "ospf/0.1/list_external_routes"); x.args().add("network", network); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_list_external_routes, cb));}/* Unmarshall list_external_routes */voidXrlOspfV0p1Client::unmarshall_list_external_routes( const XrlError& e, XrlArgs* a, ListExternalRoutesCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } XrlAtomList gateways; try { a->get("gateways", gateways); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &gateways);}boolXrlOspfV0p1Client::send_add_interface( const char* the_tgt, const string& identifier, const uint32_t& if_index, const uint32_t& area_id, const uint32_t& cost, const uint32_t& mtu, const string& type, const bool& on_demand, const bool& passive, const AddInterfaceCB& cb){ Xrl x(the_tgt, "ospf/0.1/add_interface"); x.args().add("identifier", identifier); x.args().add("if_index", if_index); x.args().add("area_id", area_id); x.args().add("cost", cost); x.args().add("mtu", mtu); x.args().add("type", type); x.args().add("on_demand", on_demand); x.args().add("passive", passive); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_add_interface, cb));}/* Unmarshall add_interface */voidXrlOspfV0p1Client::unmarshall_add_interface( const XrlError& e, XrlArgs* a, AddInterfaceCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_interface_set_if_index( const char* the_tgt, const string& identifier, const uint32_t& index, const InterfaceSetIfIndexCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_set_if_index"); x.args().add("identifier", identifier); x.args().add("index", index); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_set_if_index, cb));}/* Unmarshall interface_set_if_index */voidXrlOspfV0p1Client::unmarshall_interface_set_if_index( const XrlError& e, XrlArgs* a, InterfaceSetIfIndexCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_interface_get_if_index( const char* the_tgt, const string& identifier, const InterfaceGetIfIndexCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_get_if_index"); x.args().add("identifier", identifier); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_get_if_index, cb));}/* Unmarshall interface_get_if_index */voidXrlOspfV0p1Client::unmarshall_interface_get_if_index( const XrlError& e, XrlArgs* a, InterfaceGetIfIndexCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } uint32_t index; try { a->get("index", index); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &index);}boolXrlOspfV0p1Client::send_interface_set_area_id( const char* the_tgt, const string& identifier, const uint32_t& area_id, const InterfaceSetAreaIdCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_set_area_id"); x.args().add("identifier", identifier); x.args().add("area_id", area_id); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_set_area_id, cb));}/* Unmarshall interface_set_area_id */voidXrlOspfV0p1Client::unmarshall_interface_set_area_id( const XrlError& e, XrlArgs* a, InterfaceSetAreaIdCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_interface_get_area_id( const char* the_tgt, const string& identifier, const InterfaceGetAreaIdCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_get_area_id"); x.args().add("identifier", identifier); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_get_area_id, cb));}/* Unmarshall interface_get_area_id */voidXrlOspfV0p1Client::unmarshall_interface_get_area_id( const XrlError& e, XrlArgs* a, InterfaceGetAreaIdCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } uint32_t area_id; try { a->get("area_id", area_id); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &area_id);}boolXrlOspfV0p1Client::send_interface_set_cost( const char* the_tgt, const string& identifier, const uint32_t& cost, const InterfaceSetCostCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_set_cost"); x.args().add("identifier", identifier); x.args().add("cost", cost); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_set_cost, cb));}/* Unmarshall interface_set_cost */voidXrlOspfV0p1Client::unmarshall_interface_set_cost( const XrlError& e, XrlArgs* a, InterfaceSetCostCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlOspfV0p1Client::send_interface_get_cost( const char* the_tgt, const string& identifier, const InterfaceGetCostCB& cb){ Xrl x(the_tgt, "ospf/0.1/interface_get_cost"); x.args().add("identifier", identifier); return _sender->send(x, callback(this, &XrlOspfV0p1Client::unmarshall_interface_get_cost, cb));}/* Unmarshall interface_get_cost */voidXrlOspfV0p1Client::unmarshall_interface_get_cost( const XrlError& e, XrlArgs* a, InterfaceGetCostCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } uint32_t cost; try {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?