Add route_discovery_explicit_open()
For route discovery connections, 2 logical channels are used: One channel for netflood messages, and one for unicast. When opening a route discovery connection using route_discovery_open(), only the netflood channel number is specified, and the unicast channel number is hard-coded to be the next channel (+1). This commit adds an alternative function for opening route-discovery connections, allowing the user to specify both channels independently, to gain improved control and readability.
This commit is contained in:
parent
f0c3d29e8a
commit
1b8c889e41
|
@ -271,14 +271,24 @@ static const struct unicast_callbacks rrep_callbacks = {rrep_packet_received};
|
||||||
static const struct netflood_callbacks rreq_callbacks = {rreq_packet_received, NULL, NULL};
|
static const struct netflood_callbacks rreq_callbacks = {rreq_packet_received, NULL, NULL};
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
|
route_discovery_expicit_open(struct route_discovery_conn *c,
|
||||||
|
clock_time_t time,
|
||||||
|
uint16_t netflood_channel,
|
||||||
|
uint16_t unicast_channel,
|
||||||
|
const struct route_discovery_callbacks *callbacks)
|
||||||
|
{
|
||||||
|
netflood_open(&c->rreqconn, time, netflood_channel, &rreq_callbacks);
|
||||||
|
unicast_open(&c->rrepconn, unicast_channel, &rrep_callbacks);
|
||||||
|
c->cb = callbacks;
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void
|
||||||
route_discovery_open(struct route_discovery_conn *c,
|
route_discovery_open(struct route_discovery_conn *c,
|
||||||
clock_time_t time,
|
clock_time_t time,
|
||||||
uint16_t channels,
|
uint16_t channels,
|
||||||
const struct route_discovery_callbacks *callbacks)
|
const struct route_discovery_callbacks *callbacks)
|
||||||
{
|
{
|
||||||
netflood_open(&c->rreqconn, time, channels + 0, &rreq_callbacks);
|
route_discovery_expicit_open(c, time, channels + 0, channels + 1, callbacks);
|
||||||
unicast_open(&c->rrepconn, channels + 1, &rrep_callbacks);
|
|
||||||
c->cb = callbacks;
|
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
|
|
|
@ -83,6 +83,10 @@ struct route_discovery_conn {
|
||||||
void route_discovery_open(struct route_discovery_conn *c, clock_time_t time,
|
void route_discovery_open(struct route_discovery_conn *c, clock_time_t time,
|
||||||
uint16_t channels,
|
uint16_t channels,
|
||||||
const struct route_discovery_callbacks *callbacks);
|
const struct route_discovery_callbacks *callbacks);
|
||||||
|
void route_discovery_explicit_open(struct route_discovery_conn *c, clock_time_t time,
|
||||||
|
uint16_t netflood_channel,
|
||||||
|
uint16_t unicast_channel,
|
||||||
|
const struct route_discovery_callbacks *callbacks);
|
||||||
int route_discovery_discover(struct route_discovery_conn *c, const linkaddr_t *dest,
|
int route_discovery_discover(struct route_discovery_conn *c, const linkaddr_t *dest,
|
||||||
clock_time_t timeout);
|
clock_time_t timeout);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue