Added hopcount to callbacks

This commit is contained in:
adamdunkels 2008-01-08 07:55:56 +00:00
parent 0c748d7dd2
commit 601560b1eb
6 changed files with 15 additions and 18 deletions

View file

@ -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);

View file

@ -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. */

View file

@ -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;

View file

@ -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,

View file

@ -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);
} }

View file

@ -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,