Added hopcount to callbacks
This commit is contained in:
parent
0c748d7dd2
commit
601560b1eb
6 changed files with 15 additions and 18 deletions
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: mesh.c,v 1.10 2007/12/05 13:40:26 adamdunkels Exp $
|
* $Id: mesh.c,v 1.11 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,13 +68,13 @@ struct data_hdr {
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
data_packet_received(struct mh_conn *mh, rimeaddr_t *from)
|
data_packet_received(struct mh_conn *mh, rimeaddr_t *from, u8_t hops)
|
||||||
{
|
{
|
||||||
struct mesh_conn *c = (struct mesh_conn *)
|
struct mesh_conn *c = (struct mesh_conn *)
|
||||||
((char *)mh - offsetof(struct mesh_conn, mh));
|
((char *)mh - offsetof(struct mesh_conn, mh));
|
||||||
|
|
||||||
if(c->cb->recv) {
|
if(c->cb->recv) {
|
||||||
c->cb->recv(c, from);
|
c->cb->recv(c, from, hops);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -82,9 +82,6 @@ static rimeaddr_t *
|
||||||
data_packet_forward(struct mh_conn *mh, rimeaddr_t *originator,
|
data_packet_forward(struct mh_conn *mh, rimeaddr_t *originator,
|
||||||
rimeaddr_t *dest, rimeaddr_t *prevhop, u8_t hops)
|
rimeaddr_t *dest, rimeaddr_t *prevhop, u8_t hops)
|
||||||
{
|
{
|
||||||
struct mesh_conn *c = (struct mesh_conn *)
|
|
||||||
((char *)mh - offsetof(struct mesh_conn, mh));
|
|
||||||
|
|
||||||
struct route_entry *rt;
|
struct route_entry *rt;
|
||||||
|
|
||||||
rt = route_lookup(dest);
|
rt = route_lookup(dest);
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: mesh.h,v 1.9 2007/12/17 09:14:08 adamdunkels Exp $
|
* $Id: mesh.h,v 1.10 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,7 +73,7 @@ struct mesh_conn;
|
||||||
*/
|
*/
|
||||||
struct mesh_callbacks {
|
struct mesh_callbacks {
|
||||||
/** Called when a packet is received. */
|
/** Called when a packet is received. */
|
||||||
void (* recv)(struct mesh_conn *c, rimeaddr_t *from);
|
void (* recv)(struct mesh_conn *c, rimeaddr_t *from, u8_t hops);
|
||||||
/** Called when a packet, sent with mesh_send(), is actually transmitted. */
|
/** Called when a packet, sent with mesh_send(), is actually transmitted. */
|
||||||
void (* sent)(struct mesh_conn *c);
|
void (* sent)(struct mesh_conn *c);
|
||||||
/** Called when a packet, sent with mesh_send(), times out and is dropped. */
|
/** Called when a packet, sent with mesh_send(), times out and is dropped. */
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: mh.c,v 1.6 2007/12/05 13:40:34 adamdunkels Exp $
|
* $Id: mh.c,v 1.7 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,7 +79,7 @@ data_packet_received(struct uc_conn *uc, rimeaddr_t *from)
|
||||||
PRINTF("for us!\n");
|
PRINTF("for us!\n");
|
||||||
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
||||||
if(c->cb->recv) {
|
if(c->cb->recv) {
|
||||||
c->cb->recv(c, &msg->originator);
|
c->cb->recv(c, &msg->originator, msg->hops);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
|
@ -132,7 +132,7 @@ mh_send(struct mh_conn *c, rimeaddr_t *to)
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = rimebuf_hdrptr();
|
||||||
rimeaddr_copy(&hdr->dest, to);
|
rimeaddr_copy(&hdr->dest, to);
|
||||||
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
||||||
hdr->hops = 0;
|
hdr->hops = 1;
|
||||||
uc_send(&c->c, nexthop);
|
uc_send(&c->c, nexthop);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: mh.h,v 1.3 2007/11/28 19:55:27 adamdunkels Exp $
|
* $Id: mh.h,v 1.4 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
struct mh_conn;
|
struct mh_conn;
|
||||||
|
|
||||||
struct mh_callbacks {
|
struct mh_callbacks {
|
||||||
void (* recv)(struct mh_conn *ptr, rimeaddr_t *sender);
|
void (* recv)(struct mh_conn *ptr, rimeaddr_t *sender, u8_t hops);
|
||||||
rimeaddr_t *(* forward)(struct mh_conn *ptr,
|
rimeaddr_t *(* forward)(struct mh_conn *ptr,
|
||||||
rimeaddr_t *originator,
|
rimeaddr_t *originator,
|
||||||
rimeaddr_t *dest,
|
rimeaddr_t *dest,
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rmh.c,v 1.4 2007/12/05 13:25:07 adamdunkels Exp $
|
* $Id: rmh.c,v 1.5 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -78,7 +78,7 @@ received(struct ruc_conn *uc, rimeaddr_t *from, u8_t seqno)
|
||||||
PRINTF("for us!\n");
|
PRINTF("for us!\n");
|
||||||
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
||||||
if(c->cb->recv) {
|
if(c->cb->recv) {
|
||||||
c->cb->recv(c, &msg->originator);
|
c->cb->recv(c, &msg->originator, msg->hops);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
|
@ -148,7 +148,7 @@ rmh_send(struct rmh_conn *c, rimeaddr_t *to, u8_t num_rexmit, u8_t max_hops)
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = rimebuf_hdrptr();
|
||||||
rimeaddr_copy(&hdr->dest, to);
|
rimeaddr_copy(&hdr->dest, to);
|
||||||
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
||||||
hdr->hops = 0;
|
hdr->hops = 1;
|
||||||
hdr->max_rexmits = num_rexmit;
|
hdr->max_rexmits = num_rexmit;
|
||||||
ruc_send(&c->c, nexthop, num_rexmit);
|
ruc_send(&c->c, nexthop, num_rexmit);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rmh.h,v 1.2 2007/11/28 20:00:07 adamdunkels Exp $
|
* $Id: rmh.h,v 1.3 2008/01/08 07:55:56 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
struct rmh_conn;
|
struct rmh_conn;
|
||||||
|
|
||||||
struct rmh_callbacks {
|
struct rmh_callbacks {
|
||||||
void (* recv)(struct rmh_conn *ptr, rimeaddr_t *sender);
|
void (* recv)(struct rmh_conn *ptr, rimeaddr_t *sender, u8_t hops);
|
||||||
rimeaddr_t *(* forward)(struct rmh_conn *ptr,
|
rimeaddr_t *(* forward)(struct rmh_conn *ptr,
|
||||||
rimeaddr_t *originator,
|
rimeaddr_t *originator,
|
||||||
rimeaddr_t *dest,
|
rimeaddr_t *dest,
|
||||||
|
|
Loading…
Reference in a new issue