rib_xif.cc

来自「BCAST Implementation for NS2」· CC 代码 · 共 1,565 行 · 第 1/3 页

CC
1,565
字号
boolXrlRibV0p1Client::send_lookup_route4(	const char*	the_tgt, 	const IPv4&	addr, 	const bool&	unicast, 	const bool&	multicast, 	const LookupRoute4CB&	cb){    Xrl x(the_tgt, "rib/0.1/lookup_route4");    x.args().add("addr", addr);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_lookup_route4, cb));}/* Unmarshall lookup_route4 */voidXrlRibV0p1Client::unmarshall_lookup_route4(	const XrlError&	e, 	XrlArgs*	a, 	LookupRoute4CB		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;    }    IPv4 nexthop;    try {	a->get("nexthop", nexthop);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    cb->dispatch(e, &nexthop);}boolXrlRibV0p1Client::send_lookup_route6(	const char*	the_tgt, 	const IPv6&	addr, 	const bool&	unicast, 	const bool&	multicast, 	const LookupRoute6CB&	cb){    Xrl x(the_tgt, "rib/0.1/lookup_route6");    x.args().add("addr", addr);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_lookup_route6, cb));}/* Unmarshall lookup_route6 */voidXrlRibV0p1Client::unmarshall_lookup_route6(	const XrlError&	e, 	XrlArgs*	a, 	LookupRoute6CB		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;    }    IPv6 nexthop;    try {	a->get("nexthop", nexthop);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    cb->dispatch(e, &nexthop);}boolXrlRibV0p1Client::send_new_vif(	const char*	the_tgt, 	const string&	name, 	const NewVifCB&	cb){    Xrl x(the_tgt, "rib/0.1/new_vif");    x.args().add("name", name);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_new_vif, cb));}/* Unmarshall new_vif */voidXrlRibV0p1Client::unmarshall_new_vif(	const XrlError&	e, 	XrlArgs*	a, 	NewVifCB		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);}boolXrlRibV0p1Client::send_add_vif_addr4(	const char*	the_tgt, 	const string&	name, 	const IPv4&	addr, 	const IPv4Net&	subnet, 	const AddVifAddr4CB&	cb){    Xrl x(the_tgt, "rib/0.1/add_vif_addr4");    x.args().add("name", name);    x.args().add("addr", addr);    x.args().add("subnet", subnet);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_add_vif_addr4, cb));}/* Unmarshall add_vif_addr4 */voidXrlRibV0p1Client::unmarshall_add_vif_addr4(	const XrlError&	e, 	XrlArgs*	a, 	AddVifAddr4CB		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);}boolXrlRibV0p1Client::send_add_vif_addr6(	const char*	the_tgt, 	const string&	name, 	const IPv6&	addr, 	const IPv6Net&	subnet, 	const AddVifAddr6CB&	cb){    Xrl x(the_tgt, "rib/0.1/add_vif_addr6");    x.args().add("name", name);    x.args().add("addr", addr);    x.args().add("subnet", subnet);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_add_vif_addr6, cb));}/* Unmarshall add_vif_addr6 */voidXrlRibV0p1Client::unmarshall_add_vif_addr6(	const XrlError&	e, 	XrlArgs*	a, 	AddVifAddr6CB		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);}boolXrlRibV0p1Client::send_redist_enable4(	const char*	the_tgt, 	const string&	from, 	const string&	to, 	const bool&	unicast, 	const bool&	multicast, 	const RedistEnable4CB&	cb){    Xrl x(the_tgt, "rib/0.1/redist_enable4");    x.args().add("from", from);    x.args().add("to", to);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_enable4, cb));}/* Unmarshall redist_enable4 */voidXrlRibV0p1Client::unmarshall_redist_enable4(	const XrlError&	e, 	XrlArgs*	a, 	RedistEnable4CB		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);}boolXrlRibV0p1Client::send_redist_enable6(	const char*	the_tgt, 	const string&	from, 	const string&	to, 	const bool&	unicast, 	const bool&	multicast, 	const RedistEnable6CB&	cb){    Xrl x(the_tgt, "rib/0.1/redist_enable6");    x.args().add("from", from);    x.args().add("to", to);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_enable6, cb));}/* Unmarshall redist_enable6 */voidXrlRibV0p1Client::unmarshall_redist_enable6(	const XrlError&	e, 	XrlArgs*	a, 	RedistEnable6CB		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);}boolXrlRibV0p1Client::send_redist_disable4(	const char*	the_tgt, 	const string&	from, 	const string&	to, 	const bool&	unicast, 	const bool&	multicast, 	const RedistDisable4CB&	cb){    Xrl x(the_tgt, "rib/0.1/redist_disable4");    x.args().add("from", from);    x.args().add("to", to);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_disable4, cb));}/* Unmarshall redist_disable4 */voidXrlRibV0p1Client::unmarshall_redist_disable4(	const XrlError&	e, 	XrlArgs*	a, 	RedistDisable4CB		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);}boolXrlRibV0p1Client::send_redist_disable6(	const char*	the_tgt, 	const string&	from, 	const string&	to, 	const bool&	unicast, 	const bool&	multicast, 	const RedistDisable6CB&	cb){    Xrl x(the_tgt, "rib/0.1/redist_disable6");    x.args().add("from", from);    x.args().add("to", to);    x.args().add("unicast", unicast);    x.args().add("multicast", multicast);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_disable6, cb));}/* Unmarshall redist_disable6 */voidXrlRibV0p1Client::unmarshall_redist_disable6(	const XrlError&	e, 	XrlArgs*	a, 	RedistDisable6CB		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);}boolXrlRibV0p1Client::send_register_interest4(	const char*	the_tgt, 	const string&	target, 	const IPv4&	addr, 	const RegisterInterest4CB&	cb){    Xrl x(the_tgt, "rib/0.1/register_interest4");    x.args().add("target", target);    x.args().add("addr", addr);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_register_interest4, cb));}/* Unmarshall register_interest4 */voidXrlRibV0p1Client::unmarshall_register_interest4(	const XrlError&	e, 	XrlArgs*	a, 	RegisterInterest4CB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0, 0, 0, 0, 0, 0);	return;    } else if (a && a->size() != 6) {	XLOG_ERROR("Wrong number of arguments (%u != 6)", (uint32_t)a->size());	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0);	return;    }    bool resolves;    IPv4 base_addr;    uint32_t prefix_len;    uint32_t real_prefix_len;    IPv4 nexthop;    uint32_t metric;    try {	a->get("resolves", resolves);	a->get("base_addr", base_addr);	a->get("prefix_len", prefix_len);	a->get("real_prefix_len", real_prefix_len);	a->get("nexthop", nexthop);	a->get("metric", metric);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0);	return;    }    cb->dispatch(e, &resolves, &base_addr, &prefix_len, &real_prefix_len, &nexthop, &metric);}boolXrlRibV0p1Client::send_deregister_interest4(	const char*	the_tgt, 	const string&	target, 	const IPv4&	addr, 	const uint32_t&	prefix_len, 	const DeregisterInterest4CB&	cb){    Xrl x(the_tgt, "rib/0.1/deregister_interest4");    x.args().add("target", target);    x.args().add("addr", addr);    x.args().add("prefix_len", prefix_len);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_deregister_interest4, cb));}/* Unmarshall deregister_interest4 */voidXrlRibV0p1Client::unmarshall_deregister_interest4(	const XrlError&	e, 	XrlArgs*	a, 	DeregisterInterest4CB		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);}boolXrlRibV0p1Client::send_register_interest6(	const char*	the_tgt, 	const string&	target, 	const IPv6&	addr, 	const RegisterInterest6CB&	cb){    Xrl x(the_tgt, "rib/0.1/register_interest6");    x.args().add("target", target);    x.args().add("addr", addr);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_register_interest6, cb));}/* Unmarshall register_interest6 */voidXrlRibV0p1Client::unmarshall_register_interest6(	const XrlError&	e, 	XrlArgs*	a, 	RegisterInterest6CB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0, 0, 0, 0, 0, 0);	return;    } else if (a && a->size() != 6) {	XLOG_ERROR("Wrong number of arguments (%u != 6)", (uint32_t)a->size());	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0);	return;    }    bool resolves;    IPv6 base_addr;    uint32_t prefix_len;    uint32_t real_prefix_len;    IPv6 nexthop;    uint32_t metric;    try {	a->get("resolves", resolves);	a->get("base_addr", base_addr);	a->get("prefix_len", prefix_len);	a->get("real_prefix_len", real_prefix_len);	a->get("nexthop", nexthop);	a->get("metric", metric);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0);	return;    }    cb->dispatch(e, &resolves, &base_addr, &prefix_len, &real_prefix_len, &nexthop, &metric);}boolXrlRibV0p1Client::send_deregister_interest6(	const char*	the_tgt, 	const string&	target, 	const IPv6&	addr, 	const uint32_t&	prefix_len, 	const DeregisterInterest6CB&	cb){    Xrl x(the_tgt, "rib/0.1/deregister_interest6");    x.args().add("target", target);    x.args().add("addr", addr);    x.args().add("prefix_len", prefix_len);    return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_deregister_interest6, cb));}/* Unmarshall deregister_interest6 */voidXrlRibV0p1Client::unmarshall_deregister_interest6(	const XrlError&	e, 	XrlArgs*	a, 	DeregisterInterest6CB		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);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?