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 + -
显示快捷键?