Renamed the rimebuf module to packetbuf to signal that the module is used outside of a pure Rime context (e.g., the sicslowpan code uses it).
This commit is contained in:
parent
932fc9f748
commit
65eb5fd4e8
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: deluge.c,v 1.4 2009/03/01 12:49:43 nvt-se Exp $
|
* $Id: deluge.c,v 1.5 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -269,7 +269,7 @@ send_request(void *arg)
|
||||||
|
|
||||||
PRINTF("Sending request for page %d, version %u, request_set %u\n",
|
PRINTF("Sending request for page %d, version %u, request_set %u\n",
|
||||||
request.pagenum, request.version, request.request_set);
|
request.pagenum, request.version, request.request_set);
|
||||||
rimebuf_copyfrom((uint8_t *)&request, sizeof (request));
|
packetbuf_copyfrom((uint8_t *)&request, sizeof (request));
|
||||||
unicast_send(&deluge_uc, &obj->summary_from);
|
unicast_send(&deluge_uc, &obj->summary_from);
|
||||||
|
|
||||||
/* Deluge R.2 */
|
/* Deluge R.2 */
|
||||||
|
@ -300,7 +300,7 @@ advertise_summary(struct deluge_object *obj)
|
||||||
PRINTF("Advertising summary for object id %u: version=%u, available=%u\n",
|
PRINTF("Advertising summary for object id %u: version=%u, available=%u\n",
|
||||||
(unsigned) obj->object_id, summary.version, summary.highest_available);
|
(unsigned) obj->object_id, summary.version, summary.highest_available);
|
||||||
|
|
||||||
rimebuf_copyfrom((uint8_t *)&summary, sizeof (summary));
|
packetbuf_copyfrom((uint8_t *)&summary, sizeof (summary));
|
||||||
broadcast_send(&deluge_broadcast);
|
broadcast_send(&deluge_broadcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ send_page(struct deluge_object *obj, unsigned pagenum)
|
||||||
for(cp = buf; cp + S_PKT <= (unsigned char *)&buf[S_PAGE]; cp += S_PKT) {
|
for(cp = buf; cp + S_PKT <= (unsigned char *)&buf[S_PAGE]; cp += S_PKT) {
|
||||||
pkt.crc = checksum(cp, S_PKT);
|
pkt.crc = checksum(cp, S_PKT);
|
||||||
memcpy(pkt.payload, cp, S_PKT);
|
memcpy(pkt.payload, cp, S_PKT);
|
||||||
rimebuf_copyfrom((uint8_t *)&pkt, sizeof (pkt));
|
packetbuf_copyfrom((uint8_t *)&pkt, sizeof (pkt));
|
||||||
broadcast_send(&deluge_broadcast);
|
broadcast_send(&deluge_broadcast);
|
||||||
|
|
||||||
obj->tx_set &= ~(1 << pkt.packetnum++);
|
obj->tx_set &= ~(1 << pkt.packetnum++);
|
||||||
|
@ -517,8 +517,8 @@ unicast_recv(struct unicast_conn *c, rimeaddr_t *sender)
|
||||||
char *msg;
|
char *msg;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
len = rimebuf_datalen();
|
len = packetbuf_datalen();
|
||||||
if(len < 5)
|
if(len < 5)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ send_profile(struct deluge_object *obj)
|
||||||
msg->version_vector[i] = obj->pages[i].version;
|
msg->version_vector[i] = obj->pages[i].version;
|
||||||
}
|
}
|
||||||
|
|
||||||
rimebuf_copyfrom(buf, sizeof (buf));
|
packetbuf_copyfrom(buf, sizeof (buf));
|
||||||
broadcast_send(&deluge_broadcast);
|
broadcast_send(&deluge_broadcast);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -627,8 +627,8 @@ broadcast_recv(struct broadcast_conn *c, rimeaddr_t *sender)
|
||||||
int len;
|
int len;
|
||||||
struct deluge_msg_profile *profile;
|
struct deluge_msg_profile *profile;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
len = rimebuf_datalen();
|
len = packetbuf_datalen();
|
||||||
if(len < 5)
|
if(len < 5)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime-debug.c,v 1.2 2008/08/15 18:58:42 adamdunkels Exp $
|
* $Id: shell-rime-debug.c,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -98,10 +98,10 @@ PROCESS_THREAD(shell_broadcast_process, ev, data)
|
||||||
PROCESS_EXIT();
|
PROCESS_EXIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(len < RIMEBUF_SIZE) {
|
if(len < PACKETBUF_SIZE) {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
packetbuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
memcpy(msg->data, input->data1, input->len1);
|
memcpy(msg->data, input->data1, input->len1);
|
||||||
memcpy(msg->data + input->len1, input->data2, input->len2);
|
memcpy(msg->data + input->len1, input->data2, input->len2);
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
|
@ -121,7 +121,7 @@ recv_broadcast(struct broadcast_conn *c, rimeaddr_t *from)
|
||||||
struct collect_msg *msg;
|
struct collect_msg *msg;
|
||||||
rtimer_clock_t latency;
|
rtimer_clock_t latency;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
|
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
latency = timesynch_time() - msg->timestamp;
|
latency = timesynch_time() - msg->timestamp;
|
||||||
|
@ -132,7 +132,7 @@ recv_broadcast(struct broadcast_conn *c, rimeaddr_t *from)
|
||||||
printf("broadcast message received from %d.%d, latency %lu ms, data '%.*s'\n",
|
printf("broadcast message received from %d.%d, latency %lu ms, data '%.*s'\n",
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
(1000L * latency) / RTIMER_ARCH_SECOND,
|
(1000L * latency) / RTIMER_ARCH_SECOND,
|
||||||
rimebuf_datalen() - COLLECT_MSG_HDRSIZE,
|
packetbuf_datalen() - COLLECT_MSG_HDRSIZE,
|
||||||
msg->data);
|
msg->data);
|
||||||
}
|
}
|
||||||
static const struct broadcast_callbacks broadcast_callbacks = {recv_broadcast};
|
static const struct broadcast_callbacks broadcast_callbacks = {recv_broadcast};
|
||||||
|
@ -170,10 +170,10 @@ PROCESS_THREAD(shell_unicast_process, ev, data)
|
||||||
PROCESS_EXIT();
|
PROCESS_EXIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(len < RIMEBUF_SIZE) {
|
if(len < PACKETBUF_SIZE) {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
packetbuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
memcpy(msg->data, input->data1, input->len1);
|
memcpy(msg->data, input->data1, input->len1);
|
||||||
memcpy(msg->data + input->len1, input->data2, input->len2);
|
memcpy(msg->data + input->len1, input->data2, input->len2);
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
|
@ -193,7 +193,7 @@ recv_uc(struct unicast_conn *c, rimeaddr_t *from)
|
||||||
struct collect_msg *msg;
|
struct collect_msg *msg;
|
||||||
rtimer_clock_t latency;
|
rtimer_clock_t latency;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
|
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
latency = timesynch_time() - msg->timestamp;
|
latency = timesynch_time() - msg->timestamp;
|
||||||
|
@ -204,7 +204,7 @@ recv_uc(struct unicast_conn *c, rimeaddr_t *from)
|
||||||
printf("unicast message received from %d.%d, latency %lu ms, data '%.*s'\n",
|
printf("unicast message received from %d.%d, latency %lu ms, data '%.*s'\n",
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
(1000L * latency) / RTIMER_ARCH_SECOND,
|
(1000L * latency) / RTIMER_ARCH_SECOND,
|
||||||
rimebuf_datalen() - COLLECT_MSG_HDRSIZE,
|
packetbuf_datalen() - COLLECT_MSG_HDRSIZE,
|
||||||
msg->data);
|
msg->data);
|
||||||
}
|
}
|
||||||
static const struct unicast_callbacks unicast_callbacks = {recv_uc};
|
static const struct unicast_callbacks unicast_callbacks = {recv_uc};
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime-netcmd.c,v 1.5 2008/11/17 22:52:10 oliverschmidt Exp $
|
* $Id: shell-rime-netcmd.c,v 1.6 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -112,15 +112,15 @@ PROCESS_THREAD(shell_netcmd_process, ev, data)
|
||||||
PROCESS_BEGIN();
|
PROCESS_BEGIN();
|
||||||
|
|
||||||
len = strlen((char *)data);
|
len = strlen((char *)data);
|
||||||
if(len > RIMEBUF_SIZE) {
|
if(len > PACKETBUF_SIZE) {
|
||||||
char buf[32];
|
char buf[32];
|
||||||
snprintf(buf, sizeof(buf), "%d", len);
|
snprintf(buf, sizeof(buf), "%d", len);
|
||||||
shell_output_str(&netcmd_command, "command line too large: ", buf);
|
shell_output_str(&netcmd_command, "command line too large: ", buf);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(len + 2 + TRICKLEMSG_HDR_SIZE);
|
packetbuf_set_datalen(len + 2 + TRICKLEMSG_HDR_SIZE);
|
||||||
strcpy(msg->netcmd, data);
|
strcpy(msg->netcmd, data);
|
||||||
msg->crc = crc16_data(msg->netcmd, len, 0);
|
msg->crc = crc16_data(msg->netcmd, len, 0);
|
||||||
/* printf("netcmd sending '%s'\n", msg->netcmd);*/
|
/* printf("netcmd sending '%s'\n", msg->netcmd);*/
|
||||||
|
@ -136,14 +136,14 @@ recv_trickle(struct trickle_conn *c)
|
||||||
struct trickle_msg *msg;
|
struct trickle_msg *msg;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
|
|
||||||
if(rimebuf_datalen() > 2 + TRICKLEMSG_HDR_SIZE) {
|
if(packetbuf_datalen() > 2 + TRICKLEMSG_HDR_SIZE) {
|
||||||
|
|
||||||
/* First ensure that the old process is killed. */
|
/* First ensure that the old process is killed. */
|
||||||
process_exit(&shell_netcmd_server_process);
|
process_exit(&shell_netcmd_server_process);
|
||||||
|
|
||||||
len = rimebuf_datalen() - 2 - TRICKLEMSG_HDR_SIZE;
|
len = packetbuf_datalen() - 2 - TRICKLEMSG_HDR_SIZE;
|
||||||
|
|
||||||
/* Make sure that the incoming command is null-terminated (which
|
/* Make sure that the incoming command is null-terminated (which
|
||||||
is should be already). */
|
is should be already). */
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime-ping.c,v 1.6 2009/03/05 23:54:14 adamdunkels Exp $
|
* $Id: shell-rime-ping.c,v 1.7 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,9 +86,9 @@ PROCESS_THREAD(shell_rime_ping_process, ev, data)
|
||||||
shell_output_str(&rime_ping_command, "Sending 4 pings to ", buf);
|
shell_output_str(&rime_ping_command, "Sending 4 pings to ", buf);
|
||||||
|
|
||||||
for(i = 0; i < 4; ++i) {
|
for(i = 0; i < 4; ++i) {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
ping = rimebuf_dataptr();
|
ping = packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct rime_ping_msg));
|
packetbuf_set_datalen(sizeof(struct rime_ping_msg));
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
ping->pingtime = timesynch_time();
|
ping->pingtime = timesynch_time();
|
||||||
#else
|
#else
|
||||||
|
@ -128,7 +128,7 @@ recv_mesh(struct mesh_conn *c, rimeaddr_t *from, u8_t hops)
|
||||||
char buf[64];
|
char buf[64];
|
||||||
rtimer_clock_t pingrecvtime;
|
rtimer_clock_t pingrecvtime;
|
||||||
|
|
||||||
ping = rimebuf_dataptr();
|
ping = packetbuf_dataptr();
|
||||||
|
|
||||||
if(waiting_for_pong == 0) {
|
if(waiting_for_pong == 0) {
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime-sniff.c,v 1.2 2009/03/02 21:58:16 adamdunkels Exp $
|
* $Id: shell-rime-sniff.c,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,14 +79,14 @@ sniff_attributes_output(int type)
|
||||||
struct sniff_attributes_blob msg;
|
struct sniff_attributes_blob msg;
|
||||||
msg.len = 10;
|
msg.len = 10;
|
||||||
msg.type = type;
|
msg.type = type;
|
||||||
msg.rssi = rimebuf_attr(RIMEBUF_ATTR_RSSI);
|
msg.rssi = packetbuf_attr(PACKETBUF_ATTR_RSSI);
|
||||||
msg.lqi = rimebuf_attr(RIMEBUF_ATTR_LINK_QUALITY);
|
msg.lqi = packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY);
|
||||||
msg.timestamp = rimebuf_attr(RIMEBUF_ATTR_TIMESTAMP);
|
msg.timestamp = packetbuf_attr(PACKETBUF_ATTR_TIMESTAMP);
|
||||||
msg.listen_time = rimebuf_attr(RIMEBUF_ATTR_LISTEN_TIME);
|
msg.listen_time = packetbuf_attr(PACKETBUF_ATTR_LISTEN_TIME);
|
||||||
msg.transmit_time = rimebuf_attr(RIMEBUF_ATTR_TRANSMIT_TIME);
|
msg.transmit_time = packetbuf_attr(PACKETBUF_ATTR_TRANSMIT_TIME);
|
||||||
msg.channel = rimebuf_attr(RIMEBUF_ATTR_CHANNEL);
|
msg.channel = packetbuf_attr(PACKETBUF_ATTR_CHANNEL);
|
||||||
rimeaddr_copy(&msg.src, rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
rimeaddr_copy(&msg.src, packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
rimeaddr_copy(&msg.dest, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&msg.dest, packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
|
|
||||||
shell_output(&sniff_command, &msg, sizeof(msg), NULL, 0);
|
shell_output(&sniff_command, &msg, sizeof(msg), NULL, 0);
|
||||||
}
|
}
|
||||||
|
@ -96,11 +96,11 @@ sniff_packet_output(int type)
|
||||||
{
|
{
|
||||||
struct sniff_packet_blob msg;
|
struct sniff_packet_blob msg;
|
||||||
|
|
||||||
msg.len = rimebuf_totlen() / 2 + 1;
|
msg.len = packetbuf_totlen() / 2 + 1;
|
||||||
msg.type = type;
|
msg.type = type;
|
||||||
shell_output(&sniff_command, &msg, sizeof(msg),
|
shell_output(&sniff_command, &msg, sizeof(msg),
|
||||||
rimebuf_dataptr(), (rimebuf_datalen() & 0xfffe) +
|
packetbuf_dataptr(), (packetbuf_datalen() & 0xfffe) +
|
||||||
2 * (rimebuf_totlen() & 1));
|
2 * (packetbuf_totlen() & 1));
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rime.c,v 1.12 2009/02/11 11:08:53 adamdunkels Exp $
|
* $Id: shell-rime.c,v 1.13 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -183,8 +183,8 @@ PROCESS_THREAD(shell_packetize_process, ev, data)
|
||||||
PROCESS_WAIT_EVENT_UNTIL(ev == shell_event_input);
|
PROCESS_WAIT_EVENT_UNTIL(ev == shell_event_input);
|
||||||
|
|
||||||
if(q == NULL) {
|
if(q == NULL) {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
q = queuebuf_new_from_rimebuf();
|
q = queuebuf_new_from_packetbuf();
|
||||||
if(q == NULL) {
|
if(q == NULL) {
|
||||||
shell_output_str(&packetize_command, "packetize: could not allocate packet buffer", "");
|
shell_output_str(&packetize_command, "packetize: could not allocate packet buffer", "");
|
||||||
PROCESS_EXIT();
|
PROCESS_EXIT();
|
||||||
|
@ -197,7 +197,7 @@ PROCESS_THREAD(shell_packetize_process, ev, data)
|
||||||
|
|
||||||
len = input->len1 + input->len2;
|
len = input->len1 + input->len2;
|
||||||
|
|
||||||
if(len + size >= RIMEBUF_SIZE ||
|
if(len + size >= PACKETBUF_SIZE ||
|
||||||
len == 0) {
|
len == 0) {
|
||||||
shell_output(&packetize_command,
|
shell_output(&packetize_command,
|
||||||
ptr, size,
|
ptr, size,
|
||||||
|
@ -296,9 +296,9 @@ PROCESS_THREAD(shell_nodes_process, ev, data)
|
||||||
is_sink = 1;
|
is_sink = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct netflood_msg));
|
packetbuf_set_datalen(sizeof(struct netflood_msg));
|
||||||
msg->type = NETFLOOD_TYPE_NODES;
|
msg->type = NETFLOOD_TYPE_NODES;
|
||||||
netflood_send(&netflood, nodes_seqno++);
|
netflood_send(&netflood, nodes_seqno++);
|
||||||
|
|
||||||
|
@ -369,10 +369,10 @@ PROCESS_THREAD(shell_send_process, ev, data)
|
||||||
PROCESS_EXIT();
|
PROCESS_EXIT();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(len < RIMEBUF_SIZE) {
|
if(len < PACKETBUF_SIZE) {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
packetbuf_set_datalen(len + COLLECT_MSG_HDRSIZE);
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
memcpy(msg->data, input->data1, input->len1);
|
memcpy(msg->data, input->data1, input->len1);
|
||||||
memcpy(msg->data + input->len1, input->data2, input->len2);
|
memcpy(msg->data + input->len1, input->data2, input->len2);
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
|
@ -395,7 +395,7 @@ recv_collect(const rimeaddr_t *originator, u8_t seqno, u8_t hops)
|
||||||
rtimer_clock_t latency;
|
rtimer_clock_t latency;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
collect_msg = rimebuf_dataptr();
|
collect_msg = packetbuf_dataptr();
|
||||||
|
|
||||||
#if TIMESYNCH_CONF_ENABLED
|
#if TIMESYNCH_CONF_ENABLED
|
||||||
latency = timesynch_time() - collect_msg->timestamp;
|
latency = timesynch_time() - collect_msg->timestamp;
|
||||||
|
@ -412,20 +412,20 @@ recv_collect(const rimeaddr_t *originator, u8_t seqno, u8_t hops)
|
||||||
uint16_t latency;
|
uint16_t latency;
|
||||||
} msg;
|
} msg;
|
||||||
|
|
||||||
if(rimebuf_datalen() >= COLLECT_MSG_HDRSIZE) {
|
if(packetbuf_datalen() >= COLLECT_MSG_HDRSIZE) {
|
||||||
len = rimebuf_datalen() - COLLECT_MSG_HDRSIZE;
|
len = packetbuf_datalen() - COLLECT_MSG_HDRSIZE;
|
||||||
|
|
||||||
if(collect_msg->crc == crc16_data(collect_msg->data, len, 0)) {
|
if(collect_msg->crc == crc16_data(collect_msg->data, len, 0)) {
|
||||||
msg.len = 5 + (rimebuf_datalen() - COLLECT_MSG_HDRSIZE) / 2;
|
msg.len = 5 + (packetbuf_datalen() - COLLECT_MSG_HDRSIZE) / 2;
|
||||||
rimeaddr_copy((rimeaddr_t *)&msg.originator, originator);
|
rimeaddr_copy((rimeaddr_t *)&msg.originator, originator);
|
||||||
msg.seqno = seqno;
|
msg.seqno = seqno;
|
||||||
msg.hops = hops;
|
msg.hops = hops;
|
||||||
msg.latency = latency;
|
msg.latency = latency;
|
||||||
/* printf("recv_collect datalen %d\n", rimebuf_datalen());*/
|
/* printf("recv_collect datalen %d\n", packetbuf_datalen());*/
|
||||||
|
|
||||||
shell_output(&collect_command,
|
shell_output(&collect_command,
|
||||||
&msg, sizeof(msg),
|
&msg, sizeof(msg),
|
||||||
collect_msg->data, rimebuf_datalen() - COLLECT_MSG_HDRSIZE);
|
collect_msg->data, packetbuf_datalen() - COLLECT_MSG_HDRSIZE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(waiting_for_nodes) {
|
} else if(waiting_for_nodes) {
|
||||||
|
@ -449,7 +449,7 @@ send_collect(void *dummy)
|
||||||
#else
|
#else
|
||||||
msg.timestamp = 0;
|
msg.timestamp = 0;
|
||||||
#endif
|
#endif
|
||||||
rimebuf_copyfrom(&msg, COLLECT_MSG_HDRSIZE);
|
packetbuf_copyfrom(&msg, COLLECT_MSG_HDRSIZE);
|
||||||
collect_send(&collect, COLLECT_REXMITS);
|
collect_send(&collect, COLLECT_REXMITS);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -459,7 +459,7 @@ recv_netflood(struct netflood_conn *c, rimeaddr_t *from,
|
||||||
{
|
{
|
||||||
struct netflood_msg *msg;
|
struct netflood_msg *msg;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
if(msg->type == NETFLOOD_TYPE_NODES) {
|
if(msg->type == NETFLOOD_TYPE_NODES) {
|
||||||
ctimer_set(&ctimer, random_rand() % (CLOCK_SECOND * 8),
|
ctimer_set(&ctimer, random_rand() % (CLOCK_SECOND * 8),
|
||||||
send_collect, NULL);
|
send_collect, NULL);
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: shell-rsh.c,v 1.2 2008/11/09 10:53:25 adamdunkels Exp $
|
* $Id: shell-rsh.c,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,14 +96,14 @@ PROCESS_THREAD(shell_rsh_process, ev, data)
|
||||||
meshconn_close_connection(&meshconn);
|
meshconn_close_connection(&meshconn);
|
||||||
PROCESS_EXIT();
|
PROCESS_EXIT();
|
||||||
}
|
}
|
||||||
if(input->len1 + input->len2 >= RIMEBUF_SIZE) {
|
if(input->len1 + input->len2 >= PACKETBUF_SIZE) {
|
||||||
shell_output_str(&rsh_command, "rsh: input too long", "");
|
shell_output_str(&rsh_command, "rsh: input too long", "");
|
||||||
} else {
|
} else {
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
memcpy(rimebuf_dataptr(), input->data1, input->len1);
|
memcpy(packetbuf_dataptr(), input->data1, input->len1);
|
||||||
memcpy((char *)rimebuf_dataptr() + input->len1,
|
memcpy((char *)packetbuf_dataptr() + input->len1,
|
||||||
input->data2, input->len2);
|
input->data2, input->len2);
|
||||||
rimebuf_set_datalen(input->len1 + input->len2);
|
packetbuf_set_datalen(input->len1 + input->len2);
|
||||||
meshconn_send(&meshconn);
|
meshconn_send(&meshconn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,11 +125,11 @@ PROCESS_THREAD(shell_rsh_server_process, ev, data)
|
||||||
} else if(ev == shell_event_input) {
|
} else if(ev == shell_event_input) {
|
||||||
struct shell_input *input;
|
struct shell_input *input;
|
||||||
input = data;
|
input = data;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
memcpy(rimebuf_dataptr(), input->data1, input->len1);
|
memcpy(packetbuf_dataptr(), input->data1, input->len1);
|
||||||
memcpy((char *)rimebuf_dataptr() + input->len1,
|
memcpy((char *)packetbuf_dataptr() + input->len1,
|
||||||
input->data2, input->len2);
|
input->data2, input->len2);
|
||||||
rimebuf_set_datalen(input->len1 + input->len2);
|
packetbuf_set_datalen(input->len1 + input->len2);
|
||||||
/* printf("Sending meshconn with %d + %d bytes\n",
|
/* printf("Sending meshconn with %d + %d bytes\n",
|
||||||
input->len1, input->len2);*/
|
input->len1, input->len2);*/
|
||||||
meshconn_send(&meshconn);
|
meshconn_send(&meshconn);
|
||||||
|
@ -150,10 +150,10 @@ recv_meshconn(struct meshconn_conn *c)
|
||||||
/* int ret;
|
/* int ret;
|
||||||
struct process *started_process;*/
|
struct process *started_process;*/
|
||||||
|
|
||||||
/* printf("got '%.*s'\n", rimebuf_datalen(), (char *)rimebuf_dataptr());*/
|
/* printf("got '%.*s'\n", packetbuf_datalen(), (char *)packetbuf_dataptr());*/
|
||||||
/* Echo reply */
|
/* Echo reply */
|
||||||
if(!initiator) {
|
if(!initiator) {
|
||||||
rimebuf_copyfrom("abcdefghijklmnopq", 18);
|
packetbuf_copyfrom("abcdefghijklmnopq", 18);
|
||||||
meshconn_send(c);
|
meshconn_send(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,14 +162,14 @@ recv_meshconn(struct meshconn_conn *c)
|
||||||
if(front_process != NULL &&
|
if(front_process != NULL &&
|
||||||
process_is_running(front_process)) {
|
process_is_running(front_process)) {
|
||||||
struct shell_input input;
|
struct shell_input input;
|
||||||
input.data1 = rimebuf_dataptr();
|
input.data1 = packetbuf_dataptr();
|
||||||
input.len1 = rimebuf_datalen();
|
input.len1 = packetbuf_datalen();
|
||||||
input.data2 = "";
|
input.data2 = "";
|
||||||
input.len2 = 0;
|
input.len2 = 0;
|
||||||
process_post_synch(front_process, shell_event_input, &input);
|
process_post_synch(front_process, shell_event_input, &input);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
ret = shell_start_command(rimebuf_dataptr(), rimebuf_datalen(),
|
ret = shell_start_command(packetbuf_dataptr(), packetbuf_datalen(),
|
||||||
&rsh_server_command, &started_process);
|
&rsh_server_command, &started_process);
|
||||||
|
|
||||||
if(started_process != NULL &&
|
if(started_process != NULL &&
|
||||||
|
@ -178,8 +178,8 @@ recv_meshconn(struct meshconn_conn *c)
|
||||||
front_process = started_process;
|
front_process = started_process;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* shell_input(rimebuf_dataptr(), rimebuf_datalen());*/
|
/* shell_input(packetbuf_dataptr(), packetbuf_datalen());*/
|
||||||
/* shell_output(&rsh_command, rimebuf_dataptr(), rimebuf_datalen(), "", 0);*/
|
/* shell_output(&rsh_command, packetbuf_dataptr(), packetbuf_datalen(), "", 0);*/
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: cc2420.c,v 1.28 2009/03/11 20:38:53 adamdunkels Exp $
|
* @(#)$Id: cc2420.c,v 1.29 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* This code is almost device independent and should be easy to port.
|
* This code is almost device independent and should be easy to port.
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
#include "dev/cc2420.h"
|
#include "dev/cc2420.h"
|
||||||
#include "dev/cc2420_const.h"
|
#include "dev/cc2420_const.h"
|
||||||
|
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime/rimestats.h"
|
#include "net/rime/rimestats.h"
|
||||||
|
|
||||||
#include "sys/timetable.h"
|
#include "sys/timetable.h"
|
||||||
|
@ -318,8 +318,8 @@ cc2420_send(const void *payload, unsigned short payload_len)
|
||||||
|
|
||||||
GET_LOCK();
|
GET_LOCK();
|
||||||
|
|
||||||
if(rimebuf_attr(RIMEBUF_ATTR_RADIO_TXPOWER) > 0) {
|
if(packetbuf_attr(PACKETBUF_ATTR_RADIO_TXPOWER) > 0) {
|
||||||
cc2420_set_txpower(rimebuf_attr(RIMEBUF_ATTR_RADIO_TXPOWER) - 1);
|
cc2420_set_txpower(packetbuf_attr(PACKETBUF_ATTR_RADIO_TXPOWER) - 1);
|
||||||
} else {
|
} else {
|
||||||
cc2420_set_txpower(CC2420_TXPOWER_MAX);
|
cc2420_set_txpower(CC2420_TXPOWER_MAX);
|
||||||
}
|
}
|
||||||
|
@ -646,8 +646,8 @@ cc2420_read(void *buf, unsigned short bufsize)
|
||||||
cc2420_last_correlation = footer[1] & FOOTER1_CORRELATION;
|
cc2420_last_correlation = footer[1] & FOOTER1_CORRELATION;
|
||||||
|
|
||||||
|
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_RSSI, cc2420_last_rssi);
|
packetbuf_set_attr(PACKETBUF_ATTR_RSSI, cc2420_last_rssi);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_LINK_QUALITY, cc2420_last_correlation);
|
packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY, cc2420_last_correlation);
|
||||||
|
|
||||||
RIMESTATS_ADD(llrx);
|
RIMESTATS_ADD(llrx);
|
||||||
|
|
||||||
|
@ -659,7 +659,7 @@ cc2420_read(void *buf, unsigned short bufsize)
|
||||||
|
|
||||||
cc2420_authority_level_of_sender = t.authority_level;
|
cc2420_authority_level_of_sender = t.authority_level;
|
||||||
|
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_TIMESTAMP, t.time);
|
packetbuf_set_attr(PACKETBUF_ATTR_TIMESTAMP, t.time);
|
||||||
#endif /* CC2420_CONF_TIMESTAMPS */
|
#endif /* CC2420_CONF_TIMESTAMPS */
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -28,12 +28,12 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: ctdma_mac.c,v 1.2 2008/02/24 22:10:30 adamdunkels Exp $
|
* $Id: ctdma_mac.c,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "net/mac/ctdma_mac.h"
|
#include "net/mac/ctdma_mac.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/uip-fw.h"
|
#include "net/uip-fw.h"
|
||||||
#include "net/rime/ctimer.h"
|
#include "net/rime/ctimer.h"
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
|
@ -165,7 +165,7 @@ send(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate queue buf for packet */
|
/* Allocate queue buf for packet */
|
||||||
data[freeslot] = queuebuf_new_from_rimebuf();
|
data[freeslot] = queuebuf_new_from_packetbuf();
|
||||||
id[freeslot] = id_counter;
|
id[freeslot] = id_counter;
|
||||||
if (data[freeslot] == NULL)
|
if (data[freeslot] == NULL)
|
||||||
{
|
{
|
||||||
|
@ -196,9 +196,9 @@ static int
|
||||||
read(void)
|
read(void)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: cxmac.c,v 1.2 2008/02/24 22:10:30 adamdunkels Exp $
|
* $Id: cxmac.c,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -251,19 +251,19 @@ send(void)
|
||||||
|
|
||||||
/* printf("xmac_send\n");*/
|
/* printf("xmac_send\n");*/
|
||||||
#if !CHAMELEON
|
#if !CHAMELEON
|
||||||
PRINTF("xmac: send() len %d to %d.%d\n", rimebuf_totlen(),
|
PRINTF("xmac: send() len %d to %d.%d\n", packetbuf_totlen(),
|
||||||
uc_receiver.u8[0], uc_receiver.u8[1]);
|
uc_receiver.u8[0], uc_receiver.u8[1]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rimebuf_hdralloc(sizeof(struct xmac_hdr));
|
packetbuf_hdralloc(sizeof(struct xmac_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
||||||
#if CHAMELEON
|
#if CHAMELEON
|
||||||
rimeaddr_copy(&hdr->receiver, packattr_aget(PACKATTR_RECEIVER));
|
rimeaddr_copy(&hdr->receiver, packattr_aget(PACKATTR_RECEIVER));
|
||||||
#else
|
#else
|
||||||
rimeaddr_copy(&hdr->receiver, &uc_receiver);
|
rimeaddr_copy(&hdr->receiver, &uc_receiver);
|
||||||
#endif
|
#endif
|
||||||
rimebuf_compact();
|
packetbuf_compact();
|
||||||
|
|
||||||
/* should_be_awake = 1;
|
/* should_be_awake = 1;
|
||||||
while(!radio_is_on) {}*/
|
while(!radio_is_on) {}*/
|
||||||
|
@ -325,7 +325,7 @@ send(void)
|
||||||
} while(clock_time() < t0 + OFF_TIME + ON_TIME);
|
} while(clock_time() < t0 + OFF_TIME + ON_TIME);
|
||||||
/* } while(RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + OFF_TIME + ON_TIME * 2));*/
|
/* } while(RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + OFF_TIME + ON_TIME * 2));*/
|
||||||
|
|
||||||
radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
|
|
||||||
/* printf("xmac send time %d\n", (rtimer_clock_t)(RTIMER_NOW() - t0));
|
/* printf("xmac send time %d\n", (rtimer_clock_t)(RTIMER_NOW() - t0));
|
||||||
if((rtimer_clock_t)(RTIMER_NOW() - t0) > 10000) {
|
if((rtimer_clock_t)(RTIMER_NOW() - t0) > 10000) {
|
||||||
|
@ -360,7 +360,7 @@ qsend(void)
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
#if WITH_QUEUE
|
#if WITH_QUEUE
|
||||||
queued_packet = queuebuf_new_from_rimebuf();
|
queued_packet = queuebuf_new_from_packetbuf();
|
||||||
return 1;
|
return 1;
|
||||||
#else
|
#else
|
||||||
RIMESTATS_ADD(contentiondrop);
|
RIMESTATS_ADD(contentiondrop);
|
||||||
|
@ -377,7 +377,7 @@ qsend(void)
|
||||||
static void
|
static void
|
||||||
send_queued(void *ptr)
|
send_queued(void *ptr)
|
||||||
{
|
{
|
||||||
queuebuf_to_rimebuf(queued_packet);
|
queuebuf_to_packetbuf(queued_packet);
|
||||||
queuebuf_free(queued_packet);
|
queuebuf_free(queued_packet);
|
||||||
queued_packet = NULL;
|
queued_packet = NULL;
|
||||||
qsend();
|
qsend();
|
||||||
|
@ -405,10 +405,10 @@ read(void)
|
||||||
struct xmac_hdr *hdr;
|
struct xmac_hdr *hdr;
|
||||||
uint8_t len;
|
uint8_t len;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
|
|
||||||
PRINTF("xmac: input ");
|
PRINTF("xmac: input ");
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
PRINTF("%d bytes at %d.%d\n", len,
|
PRINTF("%d bytes at %d.%d\n", len,
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
||||||
|
|
||||||
|
@ -417,16 +417,16 @@ read(void)
|
||||||
ctimer_set(&ctimer,
|
ctimer_set(&ctimer,
|
||||||
(OFF_TIME * 2),
|
(OFF_TIME * 2),
|
||||||
reset_state, NULL);
|
reset_state, NULL);
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
|
|
||||||
rimebuf_hdrreduce(sizeof(struct xmac_hdr));
|
packetbuf_hdrreduce(sizeof(struct xmac_hdr));
|
||||||
if(rimeaddr_cmp(&hdr->receiver, &rimeaddr_node_addr)) {
|
if(rimeaddr_cmp(&hdr->receiver, &rimeaddr_node_addr)) {
|
||||||
should_be_awake = 1;
|
should_be_awake = 1;
|
||||||
PRINTF("xmac: for us\n");
|
PRINTF("xmac: for us\n");
|
||||||
|
|
||||||
if(!rimeaddr_cmp(&hdr->sender, &rimeaddr_node_addr) &&
|
if(!rimeaddr_cmp(&hdr->sender, &rimeaddr_node_addr) &&
|
||||||
rimebuf_totlen() == 0) {
|
packetbuf_totlen() == 0) {
|
||||||
/* XXX Send an ACK and wait for packet . */
|
/* XXX Send an ACK and wait for packet . */
|
||||||
PRINTF("xmac: got sender %d.%d receiver %d.%d\n",
|
PRINTF("xmac: got sender %d.%d receiver %d.%d\n",
|
||||||
hdr->sender.u8[0],hdr->sender.u8[1],
|
hdr->sender.u8[0],hdr->sender.u8[1],
|
||||||
|
@ -460,7 +460,7 @@ read(void)
|
||||||
/* PRINTF("xmac: not for us\n");*/
|
/* PRINTF("xmac: not for us\n");*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rimebuf_totlen() > 0) {
|
if(packetbuf_totlen() > 0) {
|
||||||
|
|
||||||
/* We have received the final packet, so we can go back to being
|
/* We have received the final packet, so we can go back to being
|
||||||
asleep. */
|
asleep. */
|
||||||
|
@ -475,7 +475,7 @@ read(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return rimebuf_totlen();
|
return packetbuf_totlen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: lpp.c,v 1.9 2009/02/20 21:22:39 adamdunkels Exp $
|
* $Id: lpp.c,v 1.10 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
#include "net/mac/mac.h"
|
#include "net/mac/mac.h"
|
||||||
#include "net/mac/lpp.h"
|
#include "net/mac/lpp.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime/announcement.h"
|
#include "net/rime/announcement.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -147,12 +147,12 @@ send_probe(void)
|
||||||
struct announcement *a;
|
struct announcement *a;
|
||||||
|
|
||||||
/* Set up the probe header. */
|
/* Set up the probe header. */
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(sizeof(struct lpp_hdr));
|
packetbuf_set_datalen(sizeof(struct lpp_hdr));
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
hdr->type = TYPE_PROBE;
|
hdr->type = TYPE_PROBE;
|
||||||
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&hdr->receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&hdr->receiver, packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
|
|
||||||
|
|
||||||
/* Construct the announcements */
|
/* Construct the announcements */
|
||||||
|
@ -165,12 +165,12 @@ send_probe(void)
|
||||||
adata->num++;
|
adata->num++;
|
||||||
}
|
}
|
||||||
|
|
||||||
rimebuf_set_datalen(sizeof(struct lpp_hdr) +
|
packetbuf_set_datalen(sizeof(struct lpp_hdr) +
|
||||||
ANNOUNCEMENT_MSG_HEADERLEN +
|
ANNOUNCEMENT_MSG_HEADERLEN +
|
||||||
sizeof(struct announcement_data) * adata->num);
|
sizeof(struct announcement_data) * adata->num);
|
||||||
|
|
||||||
/* PRINTF("Sending probe\n");*/
|
/* PRINTF("Sending probe\n");*/
|
||||||
radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/**
|
/**
|
||||||
|
@ -237,24 +237,24 @@ send_packet(void)
|
||||||
{
|
{
|
||||||
struct lpp_hdr *hdr;
|
struct lpp_hdr *hdr;
|
||||||
|
|
||||||
rimebuf_hdralloc(sizeof(struct lpp_hdr));
|
packetbuf_hdralloc(sizeof(struct lpp_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
|
|
||||||
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&hdr->receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&hdr->receiver, packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
hdr->type = TYPE_DATA;
|
hdr->type = TYPE_DATA;
|
||||||
|
|
||||||
rimebuf_compact();
|
packetbuf_compact();
|
||||||
PRINTF("%d.%d: queueing packet to %d.%d, channel %d\n",
|
PRINTF("%d.%d: queueing packet to %d.%d, channel %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
hdr->receiver.u8[0], hdr->receiver.u8[1],
|
hdr->receiver.u8[0], hdr->receiver.u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_CHANNEL));
|
packetbuf_attr(PACKETBUF_ATTR_CHANNEL));
|
||||||
|
|
||||||
if(rimebuf_attr(RIMEBUF_ATTR_PACKET_TYPE) == RIMEBUF_ATTR_PACKET_TYPE_ACK) {
|
if(packetbuf_attr(PACKETBUF_ATTR_PACKET_TYPE) == PACKETBUF_ATTR_PACKET_TYPE_ACK) {
|
||||||
/* Immediately send ACKs - we're assuming that the other node is
|
/* Immediately send ACKs - we're assuming that the other node is
|
||||||
listening. */
|
listening. */
|
||||||
/* printf("Immediately sending ACK\n");*/
|
/* printf("Immediately sending ACK\n");*/
|
||||||
return radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
return radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* If a packet is already queued, the DUMP_QUEUED_PACKET option
|
/* If a packet is already queued, the DUMP_QUEUED_PACKET option
|
||||||
|
@ -265,10 +265,10 @@ send_packet(void)
|
||||||
if(queued_packet != NULL) {
|
if(queued_packet != NULL) {
|
||||||
remove_queued_packet();
|
remove_queued_packet();
|
||||||
}
|
}
|
||||||
queued_packet = queuebuf_new_from_rimebuf();
|
queued_packet = queuebuf_new_from_packetbuf();
|
||||||
#else /* DUMP_QUEUED_PACKET */
|
#else /* DUMP_QUEUED_PACKET */
|
||||||
if(queued_packet == NULL) {
|
if(queued_packet == NULL) {
|
||||||
queued_packet = queuebuf_new_from_rimebuf();
|
queued_packet = queuebuf_new_from_packetbuf();
|
||||||
}
|
}
|
||||||
#endif /* DUMP_QUEUED_PACKET */
|
#endif /* DUMP_QUEUED_PACKET */
|
||||||
|
|
||||||
|
@ -291,16 +291,16 @@ read_packet(void)
|
||||||
int len;
|
int len;
|
||||||
struct lpp_hdr *hdr, *qhdr;
|
struct lpp_hdr *hdr, *qhdr;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
if(len > 0) {
|
if(len > 0) {
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
rimebuf_hdrreduce(sizeof(struct lpp_hdr));
|
packetbuf_hdrreduce(sizeof(struct lpp_hdr));
|
||||||
/* PRINTF("got packet type %d\n", hdr->type);*/
|
/* PRINTF("got packet type %d\n", hdr->type);*/
|
||||||
if(hdr->type == TYPE_PROBE) {
|
if(hdr->type == TYPE_PROBE) {
|
||||||
/* Parse incoming announcements */
|
/* Parse incoming announcements */
|
||||||
struct announcement_msg *adata = rimebuf_dataptr();
|
struct announcement_msg *adata = packetbuf_dataptr();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* PRINTF("%d.%d: probe from %d.%d with %d announcements\n",
|
/* PRINTF("%d.%d: probe from %d.%d with %d announcements\n",
|
||||||
|
@ -355,7 +355,7 @@ read_packet(void)
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
hdr->sender.u8[0], hdr->sender.u8[1]);
|
hdr->sender.u8[0], hdr->sender.u8[1]);
|
||||||
}
|
}
|
||||||
len = rimebuf_datalen();
|
len = packetbuf_datalen();
|
||||||
}
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: nullmac.c,v 1.8 2008/06/30 08:09:17 adamdunkels Exp $
|
* $Id: nullmac.c,v 1.9 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "net/mac/nullmac.h"
|
#include "net/mac/nullmac.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
|
|
||||||
static const struct radio_driver *radio;
|
static const struct radio_driver *radio;
|
||||||
static void (* receiver_callback)(const struct mac_driver *);
|
static void (* receiver_callback)(const struct mac_driver *);
|
||||||
|
@ -47,7 +47,7 @@ static void (* receiver_callback)(const struct mac_driver *);
|
||||||
static int
|
static int
|
||||||
send_packet(void)
|
send_packet(void)
|
||||||
{
|
{
|
||||||
return radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
return radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
|
@ -62,9 +62,9 @@ static int
|
||||||
read_packet(void)
|
read_packet(void)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -28,12 +28,12 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: tdma_mac.c,v 1.5 2008/11/12 12:42:41 fros4943 Exp $
|
* $Id: tdma_mac.c,v 1.6 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "net/mac/tdma_mac.h"
|
#include "net/mac/tdma_mac.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/uip-fw.h"
|
#include "net/uip-fw.h"
|
||||||
#include "sys/rtimer.h"
|
#include "sys/rtimer.h"
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
|
@ -168,7 +168,7 @@ send(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate queue buf for packet */
|
/* Allocate queue buf for packet */
|
||||||
data[freeslot] = queuebuf_new_from_rimebuf();
|
data[freeslot] = queuebuf_new_from_packetbuf();
|
||||||
id[freeslot] = id_counter;
|
id[freeslot] = id_counter;
|
||||||
if(data[freeslot] == NULL) {
|
if(data[freeslot] == NULL) {
|
||||||
PRINTF("BUFFER Queuebuffer full, dropping packet #%i\n", id[freeslot]);
|
PRINTF("BUFFER Queuebuffer full, dropping packet #%i\n", id[freeslot]);
|
||||||
|
@ -202,9 +202,9 @@ static int
|
||||||
read(void)
|
read(void)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: xmac.c,v 1.27 2009/03/05 19:37:52 adamdunkels Exp $
|
* $Id: xmac.c,v 1.28 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -304,7 +304,7 @@ static int
|
||||||
parse_announcements(rimeaddr_t *from)
|
parse_announcements(rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
/* Parse incoming announcements */
|
/* Parse incoming announcements */
|
||||||
struct announcement_msg *adata = rimebuf_dataptr();
|
struct announcement_msg *adata = packetbuf_dataptr();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
PRINTF("%d.%d: probe from %d.%d with %d announcements\n",
|
PRINTF("%d.%d: probe from %d.%d with %d announcements\n",
|
||||||
|
@ -398,16 +398,16 @@ send_packet(void)
|
||||||
alignment of the header in the packet buffer. */
|
alignment of the header in the packet buffer. */
|
||||||
hdr.type = TYPE_DATA;
|
hdr.type = TYPE_DATA;
|
||||||
rimeaddr_copy(&hdr.sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr.sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&hdr.receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&hdr.receiver, packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
if(rimeaddr_cmp(&hdr.receiver, &rimeaddr_null)) {
|
if(rimeaddr_cmp(&hdr.receiver, &rimeaddr_null)) {
|
||||||
is_broadcast = 1;
|
is_broadcast = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the X-MAC header to the header portion of the packet
|
/* Copy the X-MAC header to the header portion of the packet
|
||||||
buffer. */
|
buffer. */
|
||||||
rimebuf_hdralloc(sizeof(struct xmac_hdr));
|
packetbuf_hdralloc(sizeof(struct xmac_hdr));
|
||||||
memcpy(rimebuf_hdrptr(), &hdr, sizeof(struct xmac_hdr));
|
memcpy(packetbuf_hdrptr(), &hdr, sizeof(struct xmac_hdr));
|
||||||
rimebuf_compact();
|
packetbuf_compact();
|
||||||
|
|
||||||
t0 = RTIMER_NOW();
|
t0 = RTIMER_NOW();
|
||||||
strobes = 0;
|
strobes = 0;
|
||||||
|
@ -431,7 +431,7 @@ send_packet(void)
|
||||||
t = RTIMER_NOW();
|
t = RTIMER_NOW();
|
||||||
strobe.hdr.type = TYPE_STROBE;
|
strobe.hdr.type = TYPE_STROBE;
|
||||||
rimeaddr_copy(&strobe.hdr.sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&strobe.hdr.sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&strobe.hdr.receiver, rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
rimeaddr_copy(&strobe.hdr.receiver, packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
|
|
||||||
#if WITH_TIMETABLE
|
#if WITH_TIMETABLE
|
||||||
if(rimeaddr_cmp(&strobe.hdr.receiver, &rimeaddr_null)) {
|
if(rimeaddr_cmp(&strobe.hdr.receiver, &rimeaddr_null)) {
|
||||||
|
@ -476,8 +476,8 @@ send_packet(void)
|
||||||
|
|
||||||
/* If we have received the strobe ACK, and we are sending a packet
|
/* If we have received the strobe ACK, and we are sending a packet
|
||||||
that will need an upper layer ACK (as signified by the
|
that will need an upper layer ACK (as signified by the
|
||||||
RIMEBUF_ATTR_RELIABLE packet attribute), we keep the radio on. */
|
PACKETBUF_ATTR_RELIABLE packet attribute), we keep the radio on. */
|
||||||
if(got_strobe_ack && rimebuf_attr(RIMEBUF_ATTR_RELIABLE)) {
|
if(got_strobe_ack && packetbuf_attr(PACKETBUF_ATTR_RELIABLE)) {
|
||||||
#if WITH_TIMETABLE
|
#if WITH_TIMETABLE
|
||||||
TIMETABLE_TIMESTAMP(xmac_timetable, "send got ack");
|
TIMETABLE_TIMESTAMP(xmac_timetable, "send got ack");
|
||||||
#endif
|
#endif
|
||||||
|
@ -501,13 +501,13 @@ send_packet(void)
|
||||||
#if WITH_TIMETABLE
|
#if WITH_TIMETABLE
|
||||||
TIMETABLE_TIMESTAMP(xmac_timetable, "send packet");
|
TIMETABLE_TIMESTAMP(xmac_timetable, "send packet");
|
||||||
#endif
|
#endif
|
||||||
radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
CPRINTF("#");
|
CPRINTF("#");
|
||||||
}
|
}
|
||||||
watchdog_start();
|
watchdog_start();
|
||||||
|
|
||||||
PRINTF("xmac: send (strobes=%u,len=%u,%s), done\n", strobes,
|
PRINTF("xmac: send (strobes=%u,len=%u,%s), done\n", strobes,
|
||||||
rimebuf_totlen(), got_strobe_ack ? "ack" : "no ack");
|
packetbuf_totlen(), got_strobe_ack ? "ack" : "no ack");
|
||||||
|
|
||||||
#if XMAC_CONF_COMPOWER
|
#if XMAC_CONF_COMPOWER
|
||||||
/* Accumulate the power consumption for the packet transmission. */
|
/* Accumulate the power consumption for the packet transmission. */
|
||||||
|
@ -545,7 +545,7 @@ qsend_packet(void)
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
#if WITH_QUEUE
|
#if WITH_QUEUE
|
||||||
queued_packet = queuebuf_new_from_rimebuf();
|
queued_packet = queuebuf_new_from_packetbuf();
|
||||||
return 1;
|
return 1;
|
||||||
#else
|
#else
|
||||||
RIMESTATS_ADD(sendingdrop);
|
RIMESTATS_ADD(sendingdrop);
|
||||||
|
@ -573,15 +573,15 @@ read_packet(void)
|
||||||
struct xmac_hdr *hdr;
|
struct xmac_hdr *hdr;
|
||||||
uint8_t len;
|
uint8_t len;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
|
|
||||||
len = radio->read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = radio->read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
|
|
||||||
if(len > 0) {
|
if(len > 0) {
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
|
|
||||||
rimebuf_hdrreduce(sizeof(struct xmac_hdr));
|
packetbuf_hdrreduce(sizeof(struct xmac_hdr));
|
||||||
|
|
||||||
if(hdr->type == TYPE_STROBE) {
|
if(hdr->type == TYPE_STROBE) {
|
||||||
CPRINTF(".");
|
CPRINTF(".");
|
||||||
|
@ -626,7 +626,7 @@ read_packet(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for annoucements in the strobe */
|
/* Check for annoucements in the strobe */
|
||||||
/* if(rimebuf_datalen() > 0) {
|
/* if(packetbuf_datalen() > 0) {
|
||||||
parse_announcements(&hdr->sender);
|
parse_announcements(&hdr->sender);
|
||||||
}*/
|
}*/
|
||||||
/* We are done processing the strobe and we therefore return
|
/* We are done processing the strobe and we therefore return
|
||||||
|
@ -669,7 +669,7 @@ read_packet(void)
|
||||||
queued_packet = NULL;
|
queued_packet = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rimebuf_totlen();
|
return packetbuf_totlen();
|
||||||
}
|
}
|
||||||
#if XMAC_CONF_ANNOUNCEMENTS
|
#if XMAC_CONF_ANNOUNCEMENTS
|
||||||
} else if(hdr->type == TYPE_ANNOUNCEMENT) {
|
} else if(hdr->type == TYPE_ANNOUNCEMENT) {
|
||||||
|
@ -688,9 +688,9 @@ send_announcement(void *ptr)
|
||||||
int announcement_len;
|
int announcement_len;
|
||||||
|
|
||||||
/* Set up the probe header. */
|
/* Set up the probe header. */
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(sizeof(struct xmac_hdr));
|
packetbuf_set_datalen(sizeof(struct xmac_hdr));
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
hdr->type = TYPE_ANNOUNCEMENT;
|
hdr->type = TYPE_ANNOUNCEMENT;
|
||||||
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->sender, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&hdr->receiver, &rimeaddr_null);
|
rimeaddr_copy(&hdr->receiver, &rimeaddr_null);
|
||||||
|
@ -698,10 +698,10 @@ send_announcement(void *ptr)
|
||||||
announcement_len = format_announcement((char *)hdr +
|
announcement_len = format_announcement((char *)hdr +
|
||||||
sizeof(struct xmac_hdr));
|
sizeof(struct xmac_hdr));
|
||||||
|
|
||||||
rimebuf_set_datalen(sizeof(struct xmac_hdr) + announcement_len);
|
packetbuf_set_datalen(sizeof(struct xmac_hdr) + announcement_len);
|
||||||
|
|
||||||
/* PRINTF("Sending probe\n");*/
|
/* PRINTF("Sending probe\n");*/
|
||||||
radio->send(rimebuf_hdrptr(), rimebuf_totlen());
|
radio->send(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rime.h,v 1.21 2009/02/09 21:09:42 adamdunkels Exp $
|
* $Id: rime.h,v 1.22 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
#include "net/rime/polite.h"
|
#include "net/rime/polite.h"
|
||||||
#include "net/rime/queuebuf.h"
|
#include "net/rime/queuebuf.h"
|
||||||
#include "net/rime/rimeaddr.h"
|
#include "net/rime/rimeaddr.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime/rimestats.h"
|
#include "net/rime/rimestats.h"
|
||||||
#include "net/rime/rmh.h"
|
#include "net/rime/rmh.h"
|
||||||
#include "net/rime/route-discovery.h"
|
#include "net/rime/route-discovery.h"
|
||||||
|
@ -83,8 +83,8 @@ void rime_init(const struct mac_driver *);
|
||||||
*
|
*
|
||||||
* This function should be called by the network driver to
|
* This function should be called by the network driver to
|
||||||
* hand over a packet to Rime for furhter processing. The
|
* hand over a packet to Rime for furhter processing. The
|
||||||
* packet should be placed in the rimebuf (with
|
* packet should be placed in the packetbuf (with
|
||||||
* rimebuf_copyfrom()) before calling this function.
|
* packetbuf_copyfrom()) before calling this function.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void rime_input(void);
|
void rime_input(void);
|
||||||
|
@ -94,10 +94,10 @@ void rime_input(void);
|
||||||
*
|
*
|
||||||
* This function must be implemented by the driver running
|
* This function must be implemented by the driver running
|
||||||
* below Rime. It is called by abRime to send out a
|
* below Rime. It is called by abRime to send out a
|
||||||
* packet. The packet is consecutive in the rimebuf. A
|
* packet. The packet is consecutive in the packetbuf. A
|
||||||
* pointer to the first byte of the packet is obtained
|
* pointer to the first byte of the packet is obtained
|
||||||
* with the rimebuf_hdrptr() function. The length of the
|
* with the packetbuf_hdrptr() function. The length of the
|
||||||
* packet to send is obtained with the rimebuf_totlen()
|
* packet to send is obtained with the packetbuf_totlen()
|
||||||
* function.
|
* function.
|
||||||
*
|
*
|
||||||
* The driver, which typically is a MAC protocol, may
|
* The driver, which typically is a MAC protocol, may
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
RIME_CHAMELEON = chameleon.c channel.c chameleon-raw.c chameleon-bitopt.c
|
RIME_CHAMELEON = chameleon.c channel.c chameleon-raw.c chameleon-bitopt.c
|
||||||
RIME_BASE = rimebuf.c queuebuf.c rimeaddr.c ctimer.c rime.c timesynch.c \
|
RIME_BASE = packetbuf.c queuebuf.c rimeaddr.c ctimer.c rime.c timesynch.c \
|
||||||
rimestats.c announcement.c polite-announcement.c
|
rimestats.c announcement.c polite-announcement.c
|
||||||
RIME_SINGLEHOP = broadcast.c stbroadcast.c unicast.c stunicast.c \
|
RIME_SINGLEHOP = broadcast.c stbroadcast.c unicast.c stunicast.c \
|
||||||
runicast.c abc.c \
|
runicast.c abc.c \
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
*
|
*
|
||||||
* Author: Adam Dunkels <adam@sics.se>
|
* Author: Adam Dunkels <adam@sics.se>
|
||||||
*
|
*
|
||||||
* $Id: abc.c,v 1.18 2008/02/25 02:14:34 adamdunkels Exp $
|
* $Id: abc.c,v 1.19 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,8 +58,8 @@
|
||||||
#define PRINTF(...)
|
#define PRINTF(...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{ ABC_ATTRIBUTES RIMEBUF_ATTR_LAST };
|
{ ABC_ATTRIBUTES PACKETBUF_ATTR_LAST };
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: abc.h,v 1.14 2008/02/25 02:14:34 adamdunkels Exp $
|
* $Id: abc.h,v 1.15 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* \file
|
* \file
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
#ifndef __ABC_H__
|
#ifndef __ABC_H__
|
||||||
#define __ABC_H__
|
#define __ABC_H__
|
||||||
|
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime/channel.h"
|
#include "net/rime/channel.h"
|
||||||
|
|
||||||
struct abc_conn;
|
struct abc_conn;
|
||||||
|
@ -116,7 +116,7 @@ void abc_close(struct abc_conn *c);
|
||||||
* \retval Non-zero if the packet could be sent, zero otherwise
|
* \retval Non-zero if the packet could be sent, zero otherwise
|
||||||
*
|
*
|
||||||
* This function sends an anonymous best-effort broadcast
|
* This function sends an anonymous best-effort broadcast
|
||||||
* packet. The packet must be present in the rimebuf
|
* packet. The packet must be present in the packetbuf
|
||||||
* before this function is called.
|
* before this function is called.
|
||||||
*
|
*
|
||||||
* The parameter c must point to an abc connection that
|
* The parameter c must point to an abc connection that
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: broadcast.c,v 1.1 2008/06/26 11:19:22 adamdunkels Exp $
|
* $Id: broadcast.c,v 1.2 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,9 +46,9 @@
|
||||||
#include "contiki-net.h"
|
#include "contiki-net.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{
|
{
|
||||||
BROADCAST_ATTRIBUTES RIMEBUF_ATTR_LAST
|
BROADCAST_ATTRIBUTES PACKETBUF_ATTR_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 0
|
||||||
|
@ -66,7 +66,7 @@ recv_from_abc(struct abc_conn *bc)
|
||||||
rimeaddr_t sender;
|
rimeaddr_t sender;
|
||||||
struct broadcast_conn *c = (struct broadcast_conn *)bc;
|
struct broadcast_conn *c = (struct broadcast_conn *)bc;
|
||||||
|
|
||||||
rimeaddr_copy(&sender, rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
rimeaddr_copy(&sender, packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
|
|
||||||
PRINTF("%d.%d: broadcast: from %d.%d\n",
|
PRINTF("%d.%d: broadcast: from %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
|
@ -96,7 +96,7 @@ broadcast_send(struct broadcast_conn *c)
|
||||||
{
|
{
|
||||||
PRINTF("%d.%d: broadcast_send\n",
|
PRINTF("%d.%d: broadcast_send\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, &rimeaddr_node_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, &rimeaddr_node_addr);
|
||||||
return abc_send(&c->c);
|
return abc_send(&c->c);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: broadcast.h,v 1.2 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: broadcast.h,v 1.3 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
|
|
||||||
struct broadcast_conn;
|
struct broadcast_conn;
|
||||||
|
|
||||||
#define BROADCAST_ATTRIBUTES { RIMEBUF_ADDR_SENDER, RIMEBUF_ADDRSIZE }, \
|
#define BROADCAST_ATTRIBUTES { PACKETBUF_ADDR_SENDER, PACKETBUF_ADDRSIZE }, \
|
||||||
ABC_ATTRIBUTES
|
ABC_ATTRIBUTES
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -125,7 +125,7 @@ void broadcast_close(struct broadcast_conn *c);
|
||||||
* \retval Non-zero if the packet could be sent, zero otherwise
|
* \retval Non-zero if the packet could be sent, zero otherwise
|
||||||
*
|
*
|
||||||
* This function sends an identified best-effort broadcast
|
* This function sends an identified best-effort broadcast
|
||||||
* packet. The packet must be present in the rimebuf
|
* packet. The packet must be present in the packetbuf
|
||||||
* before this function is called.
|
* before this function is called.
|
||||||
*
|
*
|
||||||
* The parameter c must point to a broadcast connection that
|
* The parameter c must point to a broadcast connection that
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: chameleon-bitopt.c,v 1.6 2009/02/10 23:49:58 adamdunkels Exp $
|
* $Id: chameleon-bitopt.c,v 1.7 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,7 +110,7 @@ get_bits(uint8_t *to, uint8_t *from, int bitpos, int vallen)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
header_size(const struct rimebuf_attrlist *a)
|
header_size(const struct packetbuf_attrlist *a)
|
||||||
{
|
{
|
||||||
int size, len;
|
int size, len;
|
||||||
|
|
||||||
|
@ -118,9 +118,9 @@ header_size(const struct rimebuf_attrlist *a)
|
||||||
all attributes that are used on this channel. */
|
all attributes that are used on this channel. */
|
||||||
|
|
||||||
size = 0;
|
size = 0;
|
||||||
for(; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
/* PRINTF("chameleon header_size: header type %s (%d) len %d\n",
|
/* PRINTF("chameleon header_size: header type %s (%d) len %d\n",
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
a->type,
|
a->type,
|
||||||
a->len);*/
|
a->len);*/
|
||||||
len = a->len;
|
len = a->len;
|
||||||
|
@ -219,7 +219,7 @@ printhdr(uint8_t *hdr, int len)
|
||||||
static int
|
static int
|
||||||
pack_header(struct channel *c)
|
pack_header(struct channel *c)
|
||||||
{
|
{
|
||||||
const struct rimebuf_attrlist *a;
|
const struct packetbuf_attrlist *a;
|
||||||
int hdrbytesize;
|
int hdrbytesize;
|
||||||
int byteptr, bitptr, len;
|
int byteptr, bitptr, len;
|
||||||
uint8_t *hdrptr;
|
uint8_t *hdrptr;
|
||||||
|
@ -229,32 +229,32 @@ pack_header(struct channel *c)
|
||||||
all attributes that are used on this channel. */
|
all attributes that are used on this channel. */
|
||||||
|
|
||||||
hdrbytesize = c->hdrsize / 8 + ((c->hdrsize & 7) == 0? 0: 1);
|
hdrbytesize = c->hdrsize / 8 + ((c->hdrsize & 7) == 0? 0: 1);
|
||||||
rimebuf_hdralloc(hdrbytesize);
|
packetbuf_hdralloc(hdrbytesize);
|
||||||
hdrptr = rimebuf_hdrptr();
|
hdrptr = packetbuf_hdrptr();
|
||||||
memset(hdrptr, 0, hdrbytesize);
|
memset(hdrptr, 0, hdrbytesize);
|
||||||
|
|
||||||
byteptr = bitptr = 0;
|
byteptr = bitptr = 0;
|
||||||
|
|
||||||
for(a = c->attrlist; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(a = c->attrlist; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
PRINTF("%d.%d: pack_header type %s, len %d, bitptr %d, ",
|
PRINTF("%d.%d: pack_header type %s, len %d, bitptr %d, ",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type], a->len, bitptr);
|
packetbuf_attr_strings[a->type], a->len, bitptr);
|
||||||
/* len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);*/
|
/* len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);*/
|
||||||
len = a->len;
|
len = a->len;
|
||||||
byteptr = bitptr / 8;
|
byteptr = bitptr / 8;
|
||||||
if(a->type == RIMEBUF_ADDR_SENDER ||
|
if(a->type == PACKETBUF_ADDR_SENDER ||
|
||||||
a->type == RIMEBUF_ADDR_RECEIVER ||
|
a->type == PACKETBUF_ADDR_RECEIVER ||
|
||||||
a->type == RIMEBUF_ADDR_ESENDER ||
|
a->type == PACKETBUF_ADDR_ESENDER ||
|
||||||
a->type == RIMEBUF_ADDR_ERECEIVER) {
|
a->type == PACKETBUF_ADDR_ERECEIVER) {
|
||||||
set_bits(&hdrptr[byteptr], bitptr & 7,
|
set_bits(&hdrptr[byteptr], bitptr & 7,
|
||||||
(uint8_t *)rimebuf_addr(a->type), len);
|
(uint8_t *)packetbuf_addr(a->type), len);
|
||||||
PRINTF("address %d.%d\n",
|
PRINTF("address %d.%d\n",
|
||||||
/* rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],*/
|
/* rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],*/
|
||||||
((uint8_t *)rimebuf_addr(a->type))[0],
|
((uint8_t *)packetbuf_addr(a->type))[0],
|
||||||
((uint8_t *)rimebuf_addr(a->type))[1]);
|
((uint8_t *)packetbuf_addr(a->type))[1]);
|
||||||
} else {
|
} else {
|
||||||
rimebuf_attr_t val;
|
packetbuf_attr_t val;
|
||||||
val = rimebuf_attr(a->type);
|
val = packetbuf_attr(a->type);
|
||||||
set_bits(&hdrptr[byteptr], bitptr & 7,
|
set_bits(&hdrptr[byteptr], bitptr & 7,
|
||||||
(uint8_t *)&val, len);
|
(uint8_t *)&val, len);
|
||||||
PRINTF("value %d\n",
|
PRINTF("value %d\n",
|
||||||
|
@ -266,8 +266,8 @@ pack_header(struct channel *c)
|
||||||
}
|
}
|
||||||
/* printhdr(hdrptr, hdrbytesize);*/
|
/* printhdr(hdrptr, hdrbytesize);*/
|
||||||
|
|
||||||
rimebuf_hdralloc(sizeof(struct bitopt_hdr));
|
packetbuf_hdralloc(sizeof(struct bitopt_hdr));
|
||||||
hdr = (struct bitopt_hdr *)rimebuf_hdrptr();
|
hdr = (struct bitopt_hdr *)packetbuf_hdrptr();
|
||||||
hdr->channel[0] = c->channelno & 0xff;
|
hdr->channel[0] = c->channelno & 0xff;
|
||||||
hdr->channel[1] = (c->channelno >> 8) & 0xff;
|
hdr->channel[1] = (c->channelno >> 8) & 0xff;
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ pack_header(struct channel *c)
|
||||||
static struct channel *
|
static struct channel *
|
||||||
unpack_header(void)
|
unpack_header(void)
|
||||||
{
|
{
|
||||||
const struct rimebuf_attrlist *a;
|
const struct packetbuf_attrlist *a;
|
||||||
int byteptr, bitptr, len;
|
int byteptr, bitptr, len;
|
||||||
int hdrbytesize;
|
int hdrbytesize;
|
||||||
uint8_t *hdrptr;
|
uint8_t *hdrptr;
|
||||||
|
@ -287,44 +287,44 @@ unpack_header(void)
|
||||||
|
|
||||||
/* The packet has a header that tells us what channel the packet is
|
/* The packet has a header that tells us what channel the packet is
|
||||||
for. */
|
for. */
|
||||||
hdr = (struct bitopt_hdr *)rimebuf_dataptr();
|
hdr = (struct bitopt_hdr *)packetbuf_dataptr();
|
||||||
rimebuf_hdrreduce(sizeof(struct bitopt_hdr));
|
packetbuf_hdrreduce(sizeof(struct bitopt_hdr));
|
||||||
c = channel_lookup((hdr->channel[1] << 8) + hdr->channel[0]);
|
c = channel_lookup((hdr->channel[1] << 8) + hdr->channel[0]);
|
||||||
if(c == NULL) {
|
if(c == NULL) {
|
||||||
PRINTF("chameleon-bitopt: input: channel %d not found\n", hdr->channel);
|
PRINTF("chameleon-bitopt: input: channel %d not found\n", hdr->channel);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
hdrptr = rimebuf_dataptr();
|
hdrptr = packetbuf_dataptr();
|
||||||
hdrbytesize = c->hdrsize / 8 + ((c->hdrsize & 7) == 0? 0: 1);
|
hdrbytesize = c->hdrsize / 8 + ((c->hdrsize & 7) == 0? 0: 1);
|
||||||
rimebuf_hdrreduce(hdrbytesize);
|
packetbuf_hdrreduce(hdrbytesize);
|
||||||
byteptr = bitptr = 0;
|
byteptr = bitptr = 0;
|
||||||
for(a = c->attrlist; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(a = c->attrlist; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
PRINTF("%d.%d: unpack_header type %s, len %d, bitptr %d\n",
|
PRINTF("%d.%d: unpack_header type %s, len %d, bitptr %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type], a->len, bitptr);
|
packetbuf_attr_strings[a->type], a->len, bitptr);
|
||||||
/* len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);*/
|
/* len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);*/
|
||||||
len = a->len;
|
len = a->len;
|
||||||
byteptr = bitptr / 8;
|
byteptr = bitptr / 8;
|
||||||
if(a->type == RIMEBUF_ADDR_SENDER ||
|
if(a->type == PACKETBUF_ADDR_SENDER ||
|
||||||
a->type == RIMEBUF_ADDR_RECEIVER ||
|
a->type == PACKETBUF_ADDR_RECEIVER ||
|
||||||
a->type == RIMEBUF_ADDR_ESENDER ||
|
a->type == PACKETBUF_ADDR_ESENDER ||
|
||||||
a->type == RIMEBUF_ADDR_ERECEIVER) {
|
a->type == PACKETBUF_ADDR_ERECEIVER) {
|
||||||
rimeaddr_t addr;
|
rimeaddr_t addr;
|
||||||
get_bits((uint8_t *)&addr, &hdrptr[byteptr], bitptr & 7, len);
|
get_bits((uint8_t *)&addr, &hdrptr[byteptr], bitptr & 7, len);
|
||||||
PRINTF("%d.%d: unpack_header type %s, addr %d.%d\n",
|
PRINTF("%d.%d: unpack_header type %s, addr %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
addr.u8[0], addr.u8[1]);
|
addr.u8[0], addr.u8[1]);
|
||||||
rimebuf_set_addr(a->type, &addr);
|
packetbuf_set_addr(a->type, &addr);
|
||||||
} else {
|
} else {
|
||||||
rimebuf_attr_t val = 0;
|
packetbuf_attr_t val = 0;
|
||||||
get_bits((uint8_t *)&val, &hdrptr[byteptr], bitptr & 7, len);
|
get_bits((uint8_t *)&val, &hdrptr[byteptr], bitptr & 7, len);
|
||||||
|
|
||||||
rimebuf_set_attr(a->type, val);
|
packetbuf_set_attr(a->type, val);
|
||||||
PRINTF("%d.%d: unpack_header type %s, val %d\n",
|
PRINTF("%d.%d: unpack_header type %s, val %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
val);
|
val);
|
||||||
}
|
}
|
||||||
/* byteptr += len / 8;*/
|
/* byteptr += len / 8;*/
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: chameleon-raw.c,v 1.5 2009/03/05 13:51:28 zhitao Exp $
|
* $Id: chameleon-raw.c,v 1.6 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,7 +59,7 @@ struct raw_hdr {
|
||||||
static struct channel *
|
static struct channel *
|
||||||
input(void)
|
input(void)
|
||||||
{
|
{
|
||||||
const struct rimebuf_attrlist *a;
|
const struct packetbuf_attrlist *a;
|
||||||
int byteptr, bitptr, len;
|
int byteptr, bitptr, len;
|
||||||
uint8_t *hdrptr;
|
uint8_t *hdrptr;
|
||||||
struct raw_hdr *hdr;
|
struct raw_hdr *hdr;
|
||||||
|
@ -67,41 +67,41 @@ input(void)
|
||||||
|
|
||||||
/* The packet has a header that tells us what channel the packet is
|
/* The packet has a header that tells us what channel the packet is
|
||||||
for. */
|
for. */
|
||||||
hdr = (struct raw_hdr *)rimebuf_dataptr();
|
hdr = (struct raw_hdr *)packetbuf_dataptr();
|
||||||
rimebuf_hdrreduce(sizeof(struct raw_hdr));
|
packetbuf_hdrreduce(sizeof(struct raw_hdr));
|
||||||
c = channel_lookup(hdr->channel);
|
c = channel_lookup(hdr->channel);
|
||||||
if(c == NULL) {
|
if(c == NULL) {
|
||||||
PRINTF("chameleon-raw: input: channel %d not found\n", hdr->channel);
|
PRINTF("chameleon-raw: input: channel %d not found\n", hdr->channel);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
hdrptr = rimebuf_dataptr();
|
hdrptr = packetbuf_dataptr();
|
||||||
rimebuf_hdrreduce(c->hdrsize);
|
packetbuf_hdrreduce(c->hdrsize);
|
||||||
byteptr = bitptr = 0;
|
byteptr = bitptr = 0;
|
||||||
for(a = c->attrlist; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(a = c->attrlist; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
PRINTF("%d.%d: unpack_header type %s, len %d\n",
|
PRINTF("%d.%d: unpack_header type %s, len %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type], a->len);
|
packetbuf_attr_strings[a->type], a->len);
|
||||||
len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);
|
len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);
|
||||||
if(a->type == RIMEBUF_ADDR_SENDER ||
|
if(a->type == PACKETBUF_ADDR_SENDER ||
|
||||||
a->type == RIMEBUF_ADDR_RECEIVER ||
|
a->type == PACKETBUF_ADDR_RECEIVER ||
|
||||||
a->type == RIMEBUF_ADDR_ESENDER ||
|
a->type == PACKETBUF_ADDR_ESENDER ||
|
||||||
a->type == RIMEBUF_ADDR_ERECEIVER) {
|
a->type == PACKETBUF_ADDR_ERECEIVER) {
|
||||||
const rimeaddr_t addr;
|
const rimeaddr_t addr;
|
||||||
memcpy((uint8_t *)&addr, &hdrptr[byteptr], len / 8);
|
memcpy((uint8_t *)&addr, &hdrptr[byteptr], len / 8);
|
||||||
PRINTF("%d.%d: unpack_header type %s, addr %d.%d\n",
|
PRINTF("%d.%d: unpack_header type %s, addr %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
addr.u8[0], addr.u8[1]);
|
addr.u8[0], addr.u8[1]);
|
||||||
rimebuf_set_addr(a->type, &addr);
|
packetbuf_set_addr(a->type, &addr);
|
||||||
} else {
|
} else {
|
||||||
rimebuf_attr_t val = 0;
|
packetbuf_attr_t val = 0;
|
||||||
memcpy((uint8_t *)&val, &hdrptr[byteptr], len / 8);
|
memcpy((uint8_t *)&val, &hdrptr[byteptr], len / 8);
|
||||||
|
|
||||||
rimebuf_set_attr(a->type, val);
|
packetbuf_set_attr(a->type, val);
|
||||||
PRINTF("%d.%d: unpack_header type %s, val %d\n",
|
PRINTF("%d.%d: unpack_header type %s, val %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
val);
|
val);
|
||||||
}
|
}
|
||||||
byteptr += len / 8;
|
byteptr += len / 8;
|
||||||
|
@ -112,38 +112,38 @@ input(void)
|
||||||
static int
|
static int
|
||||||
output(struct channel *c)
|
output(struct channel *c)
|
||||||
{
|
{
|
||||||
const struct rimebuf_attrlist *a;
|
const struct packetbuf_attrlist *a;
|
||||||
int byteptr, len;
|
int byteptr, len;
|
||||||
uint8_t *hdrptr;
|
uint8_t *hdrptr;
|
||||||
struct raw_hdr *hdr;
|
struct raw_hdr *hdr;
|
||||||
|
|
||||||
/* Compute the total size of the final header by summing the size of
|
/* Compute the total size of the final header by summing the size of
|
||||||
all attributes that are used on this channel. */
|
all attributes that are used on this channel. */
|
||||||
rimebuf_hdralloc(c->hdrsize);
|
packetbuf_hdralloc(c->hdrsize);
|
||||||
hdrptr = rimebuf_hdrptr();
|
hdrptr = packetbuf_hdrptr();
|
||||||
byteptr = 0;
|
byteptr = 0;
|
||||||
for(a = c->attrlist; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(a = c->attrlist; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
PRINTF("%d.%d: pack_header type %s, len %d\n",
|
PRINTF("%d.%d: pack_header type %s, len %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr_strings[a->type], a->len);
|
packetbuf_attr_strings[a->type], a->len);
|
||||||
len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);
|
len = (a->len & 0xf8) + ((a->len & 7) ? 8: 0);
|
||||||
if(a->type == RIMEBUF_ADDR_SENDER ||
|
if(a->type == PACKETBUF_ADDR_SENDER ||
|
||||||
a->type == RIMEBUF_ADDR_RECEIVER ||
|
a->type == PACKETBUF_ADDR_RECEIVER ||
|
||||||
a->type == RIMEBUF_ADDR_ESENDER ||
|
a->type == PACKETBUF_ADDR_ESENDER ||
|
||||||
a->type == RIMEBUF_ADDR_ERECEIVER) {
|
a->type == PACKETBUF_ADDR_ERECEIVER) {
|
||||||
const rimeaddr_t *rimeaddr;
|
const rimeaddr_t *rimeaddr;
|
||||||
/* memcpy(&hdrptr[byteptr], (uint8_t *)rimebuf_attr_aget(a->type), len / 8);*/
|
/* memcpy(&hdrptr[byteptr], (uint8_t *)packetbuf_attr_aget(a->type), len / 8);*/
|
||||||
rimeaddr = rimebuf_addr(a->type);
|
rimeaddr = packetbuf_addr(a->type);
|
||||||
hdrptr[byteptr] = rimeaddr->u8[0];
|
hdrptr[byteptr] = rimeaddr->u8[0];
|
||||||
hdrptr[byteptr + 1] = rimeaddr->u8[1];
|
hdrptr[byteptr + 1] = rimeaddr->u8[1];
|
||||||
|
|
||||||
PRINTF("%d.%d: address %d.%d\n",
|
PRINTF("%d.%d: address %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
((uint8_t *)rimebuf_addr(a->type))[0],
|
((uint8_t *)packetbuf_addr(a->type))[0],
|
||||||
((uint8_t *)rimebuf_addr(a->type))[1]);
|
((uint8_t *)packetbuf_addr(a->type))[1]);
|
||||||
} else {
|
} else {
|
||||||
rimebuf_attr_t val;
|
packetbuf_attr_t val;
|
||||||
val = rimebuf_attr(a->type);
|
val = packetbuf_attr(a->type);
|
||||||
memcpy(&hdrptr[byteptr], &val, len / 8);
|
memcpy(&hdrptr[byteptr], &val, len / 8);
|
||||||
PRINTF("%d.%d: value %d\n",
|
PRINTF("%d.%d: value %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
|
@ -152,15 +152,15 @@ output(struct channel *c)
|
||||||
byteptr += len / 8;
|
byteptr += len / 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
rimebuf_hdralloc(sizeof(struct raw_hdr));
|
packetbuf_hdralloc(sizeof(struct raw_hdr));
|
||||||
hdr = (struct raw_hdr *)rimebuf_hdrptr();
|
hdr = (struct raw_hdr *)packetbuf_hdrptr();
|
||||||
hdr->channel = c->channelno;
|
hdr->channel = c->channelno;
|
||||||
|
|
||||||
return 1; /* Send out packet */
|
return 1; /* Send out packet */
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
hdrsize(const struct rimebuf_attrlist *a)
|
hdrsize(const struct packetbuf_attrlist *a)
|
||||||
{
|
{
|
||||||
int size, len;
|
int size, len;
|
||||||
|
|
||||||
|
@ -168,9 +168,9 @@ hdrsize(const struct rimebuf_attrlist *a)
|
||||||
all attributes that are used on this channel. */
|
all attributes that are used on this channel. */
|
||||||
|
|
||||||
size = 0;
|
size = 0;
|
||||||
for(; a->type != RIMEBUF_ATTR_NONE; ++a) {
|
for(; a->type != PACKETBUF_ATTR_NONE; ++a) {
|
||||||
/* PRINTF("chameleon header_size: header type %s (%d) len %d\n",
|
/* PRINTF("chameleon header_size: header type %s (%d) len %d\n",
|
||||||
rimebuf_attr_strings[a->type],
|
packetbuf_attr_strings[a->type],
|
||||||
a->type,
|
a->type,
|
||||||
a->len);*/
|
a->len);*/
|
||||||
len = a->len;
|
len = a->len;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: chameleon.c,v 1.5 2008/08/15 18:59:22 adamdunkels Exp $
|
* $Id: chameleon.c,v 1.6 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -108,7 +108,7 @@ chameleon_input(void)
|
||||||
PRINTF("%d.%d: chameleon_input\n",
|
PRINTF("%d.%d: chameleon_input\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
printhdr(rimebuf_dataptr(), rimebuf_datalen());
|
printhdr(packetbuf_dataptr(), packetbuf_datalen());
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
if(header_module) {
|
if(header_module) {
|
||||||
c = header_module->input();
|
c = header_module->input();
|
||||||
|
@ -116,7 +116,7 @@ chameleon_input(void)
|
||||||
PRINTF("%d.%d: chameleon_input channel %d\n",
|
PRINTF("%d.%d: chameleon_input channel %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
c->channelno);
|
c->channelno);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_CHANNEL, c->channelno);
|
packetbuf_set_attr(PACKETBUF_ATTR_CHANNEL, c->channelno);
|
||||||
abc_input(c);
|
abc_input(c);
|
||||||
} else {
|
} else {
|
||||||
PRINTF("%d.%d: chameleon_input channel not found for incoming packet\n",
|
PRINTF("%d.%d: chameleon_input channel not found for incoming packet\n",
|
||||||
|
@ -136,9 +136,9 @@ chameleon_output(struct channel *c)
|
||||||
|
|
||||||
if(header_module) {
|
if(header_module) {
|
||||||
ret = header_module->output(c);
|
ret = header_module->output(c);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_CHANNEL, c->channelno);
|
packetbuf_set_attr(PACKETBUF_ATTR_CHANNEL, c->channelno);
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
printhdr(rimebuf_hdrptr(), rimebuf_hdrlen());
|
printhdr(packetbuf_hdrptr(), packetbuf_hdrlen());
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
if(ret) {
|
if(ret) {
|
||||||
rime_output();
|
rime_output();
|
||||||
|
@ -149,7 +149,7 @@ chameleon_output(struct channel *c)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
int
|
int
|
||||||
chameleon_hdrsize(const struct rimebuf_attrlist attrlist[])
|
chameleon_hdrsize(const struct packetbuf_attrlist attrlist[])
|
||||||
{
|
{
|
||||||
if(header_module != NULL &&
|
if(header_module != NULL &&
|
||||||
header_module->hdrsize != NULL) {
|
header_module->hdrsize != NULL) {
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: chameleon.h,v 1.1 2008/02/25 02:14:34 adamdunkels Exp $
|
* $Id: chameleon.h,v 1.2 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,13 +49,13 @@
|
||||||
struct chameleon_module {
|
struct chameleon_module {
|
||||||
struct channel *(* input)(void);
|
struct channel *(* input)(void);
|
||||||
int (* output)(struct channel *);
|
int (* output)(struct channel *);
|
||||||
int (* hdrsize)(const struct rimebuf_attrlist *);
|
int (* hdrsize)(const struct packetbuf_attrlist *);
|
||||||
void (* init)(void);
|
void (* init)(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
void chameleon_init(const struct chameleon_module *header_processing_module);
|
void chameleon_init(const struct chameleon_module *header_processing_module);
|
||||||
|
|
||||||
int chameleon_hdrsize(const struct rimebuf_attrlist attrlist[]);
|
int chameleon_hdrsize(const struct packetbuf_attrlist attrlist[]);
|
||||||
void chameleon_input(void);
|
void chameleon_input(void);
|
||||||
int chameleon_output(struct channel *c);
|
int chameleon_output(struct channel *c);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: channel.c,v 1.1 2008/02/25 02:14:34 adamdunkels Exp $
|
* $Id: channel.c,v 1.2 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,7 +53,7 @@ channel_init(void)
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
channel_set_attributes(uint16_t channelno,
|
channel_set_attributes(uint16_t channelno,
|
||||||
const struct rimebuf_attrlist attrlist[])
|
const struct packetbuf_attrlist attrlist[])
|
||||||
{
|
{
|
||||||
struct channel *c;
|
struct channel *c;
|
||||||
c = channel_lookup(channelno);
|
c = channel_lookup(channelno);
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: channel.h,v 1.1 2008/02/25 02:14:34 adamdunkels Exp $
|
* $Id: channel.h,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,20 +44,20 @@
|
||||||
struct channel;
|
struct channel;
|
||||||
|
|
||||||
#include "contiki-conf.h"
|
#include "contiki-conf.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime/chameleon.h"
|
#include "net/rime/chameleon.h"
|
||||||
|
|
||||||
struct channel {
|
struct channel {
|
||||||
struct channel *next;
|
struct channel *next;
|
||||||
uint16_t channelno;
|
uint16_t channelno;
|
||||||
const struct rimebuf_attrlist *attrlist;
|
const struct packetbuf_attrlist *attrlist;
|
||||||
uint8_t hdrsize;
|
uint8_t hdrsize;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct channel *channel_lookup(uint16_t channelno);
|
struct channel *channel_lookup(uint16_t channelno);
|
||||||
|
|
||||||
void channel_set_attributes(uint16_t channelno,
|
void channel_set_attributes(uint16_t channelno,
|
||||||
const struct rimebuf_attrlist attrlist[]);
|
const struct packetbuf_attrlist attrlist[]);
|
||||||
void channel_open(struct channel *c, uint16_t channelno);
|
void channel_open(struct channel *c, uint16_t channelno);
|
||||||
void channel_close(struct channel *c);
|
void channel_close(struct channel *c);
|
||||||
void channel_init(void);
|
void channel_init(void);
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: collect.c,v 1.22 2009/03/10 14:07:41 zhitao Exp $
|
* $Id: collect.c,v 1.23 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,10 +62,10 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{
|
{
|
||||||
COLLECT_ATTRIBUTES
|
COLLECT_ATTRIBUTES
|
||||||
RIMEBUF_ATTR_LAST
|
PACKETBUF_ATTR_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_RECENT_PACKETS 2
|
#define NUM_RECENT_PACKETS 2
|
||||||
|
@ -157,18 +157,18 @@ node_packet_received(struct runicast_conn *c, rimeaddr_t *from, uint8_t seqno)
|
||||||
packet exists in the list, we drop the packet. */
|
packet exists in the list, we drop the packet. */
|
||||||
|
|
||||||
for(i = 0; i < NUM_RECENT_PACKETS; i++) {
|
for(i = 0; i < NUM_RECENT_PACKETS; i++) {
|
||||||
if(recent_packets[i].seqno == rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID) &&
|
if(recent_packets[i].seqno == packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID) &&
|
||||||
rimeaddr_cmp(&recent_packets[i].originator,
|
rimeaddr_cmp(&recent_packets[i].originator,
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER))) {
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER))) {
|
||||||
PRINTF("%d.%d: dropping duplicate packet with seqno %d\n",
|
PRINTF("%d.%d: dropping duplicate packet with seqno %d\n",
|
||||||
rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID));
|
packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID));
|
||||||
/* Drop the packet. */
|
/* Drop the packet. */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
recent_packets[recent_packet_ptr].seqno = rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID);
|
recent_packets[recent_packet_ptr].seqno = packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID);
|
||||||
rimeaddr_copy(&recent_packets[recent_packet_ptr].originator,
|
rimeaddr_copy(&recent_packets[recent_packet_ptr].originator,
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER));
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER));
|
||||||
recent_packet_ptr = (recent_packet_ptr + 1) % NUM_RECENT_PACKETS;
|
recent_packet_ptr = (recent_packet_ptr + 1) % NUM_RECENT_PACKETS;
|
||||||
|
|
||||||
if(tc->rtmetric == SINK) {
|
if(tc->rtmetric == SINK) {
|
||||||
|
@ -177,29 +177,29 @@ node_packet_received(struct runicast_conn *c, rimeaddr_t *from, uint8_t seqno)
|
||||||
|
|
||||||
PRINTF("%d.%d: sink received packet from %d.%d via %d.%d\n",
|
PRINTF("%d.%d: sink received packet from %d.%d via %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER)->u8[0],
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER)->u8[0],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER)->u8[1],
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER)->u8[1],
|
||||||
from->u8[0], from->u8[1]);
|
from->u8[0], from->u8[1]);
|
||||||
|
|
||||||
if(tc->cb->recv != NULL) {
|
if(tc->cb->recv != NULL) {
|
||||||
tc->cb->recv(rimebuf_addr(RIMEBUF_ADDR_ESENDER),
|
tc->cb->recv(packetbuf_addr(PACKETBUF_ADDR_ESENDER),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID),
|
packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_HOPS));
|
packetbuf_attr(PACKETBUF_ATTR_HOPS));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if(rimebuf_attr(RIMEBUF_ATTR_TTL) > 1 &&
|
} else if(packetbuf_attr(PACKETBUF_ATTR_TTL) > 1 &&
|
||||||
tc->rtmetric != RTMETRIC_MAX) {
|
tc->rtmetric != RTMETRIC_MAX) {
|
||||||
|
|
||||||
/* If we are not the sink, we forward the packet to the best
|
/* If we are not the sink, we forward the packet to the best
|
||||||
neighbor. */
|
neighbor. */
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_HOPS, rimebuf_attr(RIMEBUF_ATTR_HOPS) + 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_HOPS, packetbuf_attr(PACKETBUF_ATTR_HOPS) + 1);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_TTL, rimebuf_attr(RIMEBUF_ATTR_TTL) - 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_TTL, packetbuf_attr(PACKETBUF_ATTR_TTL) - 1);
|
||||||
|
|
||||||
|
|
||||||
PRINTF("%d.%d: packet received from %d.%d via %d.%d, forwarding %d\n",
|
PRINTF("%d.%d: packet received from %d.%d via %d.%d, forwarding %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER)->u8[0],
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER)->u8[0],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_ESENDER)->u8[1],
|
packetbuf_addr(PACKETBUF_ADDR_ESENDER)->u8[1],
|
||||||
from->u8[0], from->u8[1], tc->forwarding);
|
from->u8[0], from->u8[1], tc->forwarding);
|
||||||
|
|
||||||
if(!tc->forwarding) {
|
if(!tc->forwarding) {
|
||||||
|
@ -209,7 +209,7 @@ node_packet_received(struct runicast_conn *c, rimeaddr_t *from, uint8_t seqno)
|
||||||
ether_set_line(n->addr.u8[0], n->addr.u8[1]);
|
ether_set_line(n->addr.u8[0], n->addr.u8[1]);
|
||||||
#endif /* CONTIKI_TARGET_NETSIM */
|
#endif /* CONTIKI_TARGET_NETSIM */
|
||||||
tc->forwarding = 1;
|
tc->forwarding = 1;
|
||||||
runicast_send(c, &n->addr, rimebuf_attr(RIMEBUF_ATTR_MAX_REXMIT));
|
runicast_send(c, &n->addr, packetbuf_attr(PACKETBUF_ATTR_MAX_REXMIT));
|
||||||
} else {
|
} else {
|
||||||
PRINTF("%d.%d: did not find any neighbor to forward to\n",
|
PRINTF("%d.%d: did not find any neighbor to forward to\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]);
|
||||||
|
@ -341,18 +341,18 @@ collect_send(struct collect_conn *tc, int rexmits)
|
||||||
{
|
{
|
||||||
struct neighbor *n;
|
struct neighbor *n;
|
||||||
|
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_EPACKET_ID, tc->seqno++);
|
packetbuf_set_attr(PACKETBUF_ATTR_EPACKET_ID, tc->seqno++);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_ESENDER, &rimeaddr_node_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_ESENDER, &rimeaddr_node_addr);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_HOPS, 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_HOPS, 1);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_TTL, MAX_HOPLIM);
|
packetbuf_set_attr(PACKETBUF_ATTR_TTL, MAX_HOPLIM);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_MAX_REXMIT, rexmits);
|
packetbuf_set_attr(PACKETBUF_ATTR_MAX_REXMIT, rexmits);
|
||||||
|
|
||||||
if(tc->rtmetric == 0) {
|
if(tc->rtmetric == 0) {
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_HOPS, 0);
|
packetbuf_set_attr(PACKETBUF_ATTR_HOPS, 0);
|
||||||
if(tc->cb->recv != NULL) {
|
if(tc->cb->recv != NULL) {
|
||||||
tc->cb->recv(rimebuf_addr(RIMEBUF_ADDR_ESENDER),
|
tc->cb->recv(packetbuf_addr(PACKETBUF_ADDR_ESENDER),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID),
|
packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_HOPS));
|
packetbuf_attr(PACKETBUF_ATTR_HOPS));
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: collect.h,v 1.9 2009/02/09 20:58:25 adamdunkels Exp $
|
* $Id: collect.h,v 1.10 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -63,11 +63,11 @@
|
||||||
#include "net/rime/announcement.h"
|
#include "net/rime/announcement.h"
|
||||||
#include "net/rime/runicast.h"
|
#include "net/rime/runicast.h"
|
||||||
|
|
||||||
#define COLLECT_ATTRIBUTES { RIMEBUF_ADDR_ESENDER, RIMEBUF_ADDRSIZE }, \
|
#define COLLECT_ATTRIBUTES { PACKETBUF_ADDR_ESENDER, PACKETBUF_ADDRSIZE }, \
|
||||||
{ RIMEBUF_ATTR_EPACKET_ID, RIMEBUF_ATTR_BIT * 2 }, \
|
{ PACKETBUF_ATTR_EPACKET_ID, PACKETBUF_ATTR_BIT * 2 }, \
|
||||||
{ RIMEBUF_ATTR_TTL, RIMEBUF_ATTR_BIT * 4 }, \
|
{ PACKETBUF_ATTR_TTL, PACKETBUF_ATTR_BIT * 4 }, \
|
||||||
{ RIMEBUF_ATTR_HOPS, RIMEBUF_ATTR_BIT * 4 }, \
|
{ PACKETBUF_ATTR_HOPS, PACKETBUF_ATTR_BIT * 4 }, \
|
||||||
{ RIMEBUF_ATTR_MAX_REXMIT, RIMEBUF_ATTR_BIT * 3 }, \
|
{ PACKETBUF_ATTR_MAX_REXMIT, PACKETBUF_ATTR_BIT * 3 }, \
|
||||||
RUNICAST_ATTRIBUTES
|
RUNICAST_ATTRIBUTES
|
||||||
|
|
||||||
struct collect_callbacks {
|
struct collect_callbacks {
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: ipolite.c,v 1.13 2009/03/02 11:22:09 adamdunkels Exp $
|
* $Id: ipolite.c,v 1.14 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,9 +71,9 @@ recv(struct broadcast_conn *broadcast, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct ipolite_conn *c = (struct ipolite_conn *)broadcast;
|
struct ipolite_conn *c = (struct ipolite_conn *)broadcast;
|
||||||
if(c->q != NULL &&
|
if(c->q != NULL &&
|
||||||
rimebuf_datalen() == queuebuf_datalen(c->q) &&
|
packetbuf_datalen() == queuebuf_datalen(c->q) &&
|
||||||
memcmp(rimebuf_dataptr(), queuebuf_dataptr(c->q),
|
memcmp(packetbuf_dataptr(), queuebuf_dataptr(c->q),
|
||||||
MIN(c->hdrsize, rimebuf_datalen())) == 0) {
|
MIN(c->hdrsize, packetbuf_datalen())) == 0) {
|
||||||
/* We received a copy of our own packet, so we do not send out
|
/* We received a copy of our own packet, so we do not send out
|
||||||
packet. */
|
packet. */
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
|
@ -98,7 +98,7 @@ send(void *ptr)
|
||||||
c->q);
|
c->q);
|
||||||
|
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
queuebuf_to_rimebuf(c->q);
|
queuebuf_to_packetbuf(c->q);
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
c->q = NULL;
|
c->q = NULL;
|
||||||
broadcast_send(&c->c);
|
broadcast_send(&c->c);
|
||||||
|
@ -150,7 +150,7 @@ ipolite_send(struct ipolite_conn *c, clock_time_t interval, uint8_t hdrsize)
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
c->q = queuebuf_new_from_rimebuf();
|
c->q = queuebuf_new_from_packetbuf();
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
ctimer_set(&c->t,
|
ctimer_set(&c->t,
|
||||||
interval / 2 + (random_rand() % (interval / 2)),
|
interval / 2 + (random_rand() % (interval / 2)),
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: ipolite.h,v 1.7 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: ipolite.h,v 1.8 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -170,7 +170,7 @@ void ipolite_close(struct ipolite_conn *c);
|
||||||
* \param interval The timer interval in which the packet should be sent.
|
* \param interval The timer interval in which the packet should be sent.
|
||||||
* \param hdrsize The size of the header that should be unique within the time interval.
|
* \param hdrsize The size of the header that should be unique within the time interval.
|
||||||
*
|
*
|
||||||
* This function sends a packet from the rimebuf on the
|
* This function sends a packet from the packetbuf on the
|
||||||
* ipolite connection. The packet is sent some time during
|
* ipolite connection. The packet is sent some time during
|
||||||
* the time interval, but only if no other packet is
|
* the time interval, but only if no other packet is
|
||||||
* received with the same header.
|
* received with the same header.
|
||||||
|
|
|
@ -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.14 2008/07/03 22:36:02 adamdunkels Exp $
|
* $Id: mesh.c,v 1.15 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,7 +96,7 @@ found_route(struct route_discovery_conn *rdc, rimeaddr_t *dest)
|
||||||
|
|
||||||
if(c->queued_data != NULL &&
|
if(c->queued_data != NULL &&
|
||||||
rimeaddr_cmp(dest, &c->queued_data_dest)) {
|
rimeaddr_cmp(dest, &c->queued_data_dest)) {
|
||||||
queuebuf_to_rimebuf(c->queued_data);
|
queuebuf_to_packetbuf(c->queued_data);
|
||||||
queuebuf_free(c->queued_data);
|
queuebuf_free(c->queued_data);
|
||||||
c->queued_data = NULL;
|
c->queued_data = NULL;
|
||||||
multihop_send(&c->multihop, dest);
|
multihop_send(&c->multihop, dest);
|
||||||
|
@ -156,7 +156,7 @@ mesh_send(struct mesh_conn *c, rimeaddr_t *to)
|
||||||
}
|
}
|
||||||
|
|
||||||
PRINTF("mesh_send: queueing data, sending rreq\n");
|
PRINTF("mesh_send: queueing data, sending rreq\n");
|
||||||
c->queued_data = queuebuf_new_from_rimebuf();
|
c->queued_data = queuebuf_new_from_packetbuf();
|
||||||
rimeaddr_copy(&c->queued_data_dest, to);
|
rimeaddr_copy(&c->queued_data_dest, to);
|
||||||
route_discovery_discover(&c->route_discovery_conn, to,
|
route_discovery_discover(&c->route_discovery_conn, to,
|
||||||
PACKET_TIMEOUT);
|
PACKET_TIMEOUT);
|
||||||
|
|
|
@ -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.12 2008/07/03 22:36:02 adamdunkels Exp $
|
* $Id: mesh.h,v 1.13 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -126,7 +126,7 @@ void mesh_close(struct mesh_conn *c);
|
||||||
* \retval Non-zero if the packet could be queued for sending, zero otherwise
|
* \retval Non-zero if the packet could be queued for sending, zero otherwise
|
||||||
*
|
*
|
||||||
* This function sends a mesh packet. The packet must be
|
* This function sends a mesh packet. The packet must be
|
||||||
* present in the rimebuf before this function is called.
|
* present in the packetbuf before this function is called.
|
||||||
*
|
*
|
||||||
* The parameter c must point to an abc connection that
|
* The parameter c must point to an abc connection that
|
||||||
* must have previously been set up with mesh_open().
|
* must have previously been set up with mesh_open().
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: multihop.c,v 1.1 2008/07/03 22:36:03 adamdunkels Exp $
|
* $Id: multihop.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,28 +73,28 @@ data_packet_received(struct unicast_conn *uc, rimeaddr_t *from)
|
||||||
struct data_hdr msg;
|
struct data_hdr msg;
|
||||||
rimeaddr_t *nexthop;
|
rimeaddr_t *nexthop;
|
||||||
|
|
||||||
memcpy(&msg, rimebuf_dataptr(), sizeof(struct data_hdr));
|
memcpy(&msg, packetbuf_dataptr(), sizeof(struct data_hdr));
|
||||||
|
|
||||||
PRINTF("data_packet_received from %d.%d towards %d.%d len %d\n",
|
PRINTF("data_packet_received from %d.%d towards %d.%d len %d\n",
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
msg.dest.u8[0], msg.dest.u8[1],
|
msg.dest.u8[0], msg.dest.u8[1],
|
||||||
rimebuf_datalen());
|
packetbuf_datalen());
|
||||||
|
|
||||||
if(rimeaddr_cmp(&msg.dest, &rimeaddr_node_addr)) {
|
if(rimeaddr_cmp(&msg.dest, &rimeaddr_node_addr)) {
|
||||||
PRINTF("for us!\n");
|
PRINTF("for us!\n");
|
||||||
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
packetbuf_hdrreduce(sizeof(struct data_hdr));
|
||||||
if(c->cb->recv) {
|
if(c->cb->recv) {
|
||||||
c->cb->recv(c, &msg.originator, from, msg.hops);
|
c->cb->recv(c, &msg.originator, from, msg.hops);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nexthop = NULL;
|
nexthop = NULL;
|
||||||
if(c->cb->forward) {
|
if(c->cb->forward) {
|
||||||
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
packetbuf_hdrreduce(sizeof(struct data_hdr));
|
||||||
nexthop = c->cb->forward(c, &msg.originator,
|
nexthop = c->cb->forward(c, &msg.originator,
|
||||||
&msg.dest, from, msg.hops);
|
&msg.dest, from, msg.hops);
|
||||||
rimebuf_hdralloc(sizeof(struct data_hdr));
|
packetbuf_hdralloc(sizeof(struct data_hdr));
|
||||||
msg.hops++;
|
msg.hops++;
|
||||||
memcpy(rimebuf_hdrptr(), &msg, sizeof(struct data_hdr));
|
memcpy(packetbuf_hdrptr(), &msg, sizeof(struct data_hdr));
|
||||||
}
|
}
|
||||||
if(nexthop) {
|
if(nexthop) {
|
||||||
PRINTF("forwarding to %d.%d\n", nexthop->u8[0], nexthop->u8[1]);
|
PRINTF("forwarding to %d.%d\n", nexthop->u8[0], nexthop->u8[1]);
|
||||||
|
@ -128,7 +128,7 @@ multihop_send(struct multihop_conn *c, rimeaddr_t *to)
|
||||||
if(c->cb->forward == NULL) {
|
if(c->cb->forward == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rimebuf_compact();
|
packetbuf_compact();
|
||||||
nexthop = c->cb->forward(c, &rimeaddr_node_addr, to, NULL, 0);
|
nexthop = c->cb->forward(c, &rimeaddr_node_addr, to, NULL, 0);
|
||||||
|
|
||||||
if(nexthop == NULL) {
|
if(nexthop == NULL) {
|
||||||
|
@ -137,8 +137,8 @@ multihop_send(struct multihop_conn *c, rimeaddr_t *to)
|
||||||
} else {
|
} else {
|
||||||
PRINTF("multihop_send: sending data towards %d.%d\n",
|
PRINTF("multihop_send: sending data towards %d.%d\n",
|
||||||
nexthop->u8[0], nexthop->u8[1]);
|
nexthop->u8[0], nexthop->u8[1]);
|
||||||
if(rimebuf_hdralloc(sizeof(struct data_hdr))) {
|
if(packetbuf_hdralloc(sizeof(struct data_hdr))) {
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_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 = 1;
|
hdr->hops = 1;
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: multihop.h,v 1.3 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: multihop.h,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,9 +76,9 @@
|
||||||
|
|
||||||
struct multihop_conn;
|
struct multihop_conn;
|
||||||
|
|
||||||
#define MULTIHOP_ATTRIBUTES { RIMEBUF_ADDR_ESENDER, RIMEBUF_ADDRSIZE }, \
|
#define MULTIHOP_ATTRIBUTES { PACKETBUF_ADDR_ESENDER, PACKETBUF_ADDRSIZE }, \
|
||||||
{ RIMEBUF_ADDR_ERECEIVER, RIMEBUF_ADDRSIZE }, \
|
{ PACKETBUF_ADDR_ERECEIVER, PACKETBUF_ADDRSIZE }, \
|
||||||
{ RIMEBUF_ATTR_TTL, RIMEBUF_ATTR_BIT * 5 }, \
|
{ PACKETBUF_ATTR_TTL, PACKETBUF_ATTR_BIT * 5 }, \
|
||||||
UNICAST_ATTRIBUTES
|
UNICAST_ATTRIBUTES
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: neighbor-discovery.c,v 1.13 2009/02/11 11:08:56 adamdunkels Exp $
|
* $Id: neighbor-discovery.c,v 1.14 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -89,9 +89,9 @@ send_adv(void *ptr)
|
||||||
struct neighbor_discovery_conn *c = ptr;
|
struct neighbor_discovery_conn *c = ptr;
|
||||||
struct adv_msg *hdr;
|
struct adv_msg *hdr;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(sizeof(struct adv_msg));
|
packetbuf_set_datalen(sizeof(struct adv_msg));
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
hdr->val = c->val;
|
hdr->val = c->val;
|
||||||
broadcast_send(&c->c);
|
broadcast_send(&c->c);
|
||||||
if(c->u->sent) {
|
if(c->u->sent) {
|
||||||
|
@ -106,7 +106,7 @@ static void
|
||||||
adv_packet_received(struct broadcast_conn *ibc, rimeaddr_t *from)
|
adv_packet_received(struct broadcast_conn *ibc, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct neighbor_discovery_conn *c = (struct neighbor_discovery_conn *)ibc;
|
struct neighbor_discovery_conn *c = (struct neighbor_discovery_conn *)ibc;
|
||||||
struct adv_msg *msg = rimebuf_dataptr();
|
struct adv_msg *msg = packetbuf_dataptr();
|
||||||
|
|
||||||
PRINTF("%d.%d: adv_packet_received from %d.%d with val %d\n",
|
PRINTF("%d.%d: adv_packet_received from %d.%d with val %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: netflood.c,v 1.2 2009/02/11 11:08:56 adamdunkels Exp $
|
* $Id: netflood.c,v 1.3 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,16 +76,16 @@ static void
|
||||||
recv_from_ipolite(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
recv_from_ipolite(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct netflood_conn *c = (struct netflood_conn *)ipolite;
|
struct netflood_conn *c = (struct netflood_conn *)ipolite;
|
||||||
struct netflood_hdr *hdr = rimebuf_dataptr();
|
struct netflood_hdr *hdr = packetbuf_dataptr();
|
||||||
uint8_t hops;
|
uint8_t hops;
|
||||||
struct queuebuf *queuebuf;
|
struct queuebuf *queuebuf;
|
||||||
|
|
||||||
hops = hdr->hops;
|
hops = hdr->hops;
|
||||||
|
|
||||||
/* Remember packet if we need to forward it. */
|
/* Remember packet if we need to forward it. */
|
||||||
queuebuf = queuebuf_new_from_rimebuf();
|
queuebuf = queuebuf_new_from_packetbuf();
|
||||||
|
|
||||||
rimebuf_hdrreduce(sizeof(struct netflood_hdr));
|
packetbuf_hdrreduce(sizeof(struct netflood_hdr));
|
||||||
if(c->u->recv != NULL) {
|
if(c->u->recv != NULL) {
|
||||||
if(!(rimeaddr_cmp(&hdr->originator, &c->last_originator) &&
|
if(!(rimeaddr_cmp(&hdr->originator, &c->last_originator) &&
|
||||||
hdr->originator_seqno <= c->last_originator_seqno)) {
|
hdr->originator_seqno <= c->last_originator_seqno)) {
|
||||||
|
@ -94,10 +94,10 @@ recv_from_ipolite(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
||||||
hops)) {
|
hops)) {
|
||||||
|
|
||||||
if(queuebuf != NULL) {
|
if(queuebuf != NULL) {
|
||||||
queuebuf_to_rimebuf(queuebuf);
|
queuebuf_to_packetbuf(queuebuf);
|
||||||
queuebuf_free(queuebuf);
|
queuebuf_free(queuebuf);
|
||||||
queuebuf = NULL;
|
queuebuf = NULL;
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
|
|
||||||
/* Rebroadcast received packet. */
|
/* Rebroadcast received packet. */
|
||||||
if(hops < HOPS_MAX) {
|
if(hops < HOPS_MAX) {
|
||||||
|
@ -160,15 +160,15 @@ netflood_close(struct netflood_conn *c)
|
||||||
int
|
int
|
||||||
netflood_send(struct netflood_conn *c, uint8_t seqno)
|
netflood_send(struct netflood_conn *c, uint8_t seqno)
|
||||||
{
|
{
|
||||||
if(rimebuf_hdralloc(sizeof(struct netflood_hdr))) {
|
if(packetbuf_hdralloc(sizeof(struct netflood_hdr))) {
|
||||||
struct netflood_hdr *hdr = rimebuf_hdrptr();
|
struct netflood_hdr *hdr = packetbuf_hdrptr();
|
||||||
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
rimeaddr_copy(&hdr->originator, &rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&c->last_originator, &hdr->originator);
|
rimeaddr_copy(&c->last_originator, &hdr->originator);
|
||||||
c->last_originator_seqno = hdr->originator_seqno = seqno;
|
c->last_originator_seqno = hdr->originator_seqno = seqno;
|
||||||
hdr->hops = 0;
|
hdr->hops = 0;
|
||||||
PRINTF("%d.%d: netflood sending '%s'\n",
|
PRINTF("%d.%d: netflood sending '%s'\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
(char *)rimebuf_dataptr());
|
(char *)packetbuf_dataptr());
|
||||||
return ipolite_send(&c->c, 0, 4);
|
return ipolite_send(&c->c, 0, 4);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: netflood.h,v 1.3 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: netflood.h,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,9 +82,9 @@
|
||||||
|
|
||||||
struct netflood_conn;
|
struct netflood_conn;
|
||||||
|
|
||||||
#define NETFLOOD_ATTRIBUTES { RIMEBUF_ADDR_ESENDER, RIMEBUF_ADDRSIZE }, \
|
#define NETFLOOD_ATTRIBUTES { PACKETBUF_ADDR_ESENDER, PACKETBUF_ADDRSIZE }, \
|
||||||
{ RIMEBUF_ATTR_HOPS, RIMEBUF_ATTR_BIT * 5 }, \
|
{ PACKETBUF_ATTR_HOPS, PACKETBUF_ATTR_BIT * 5 }, \
|
||||||
{ RIMEBUF_ATTR_EPACKET_ID, RIMEBUF_ATTR_BIT * 4 }, \
|
{ PACKETBUF_ATTR_EPACKET_ID, PACKETBUF_ATTR_BIT * 4 }, \
|
||||||
IPOLITE_ATTRIBUTES
|
IPOLITE_ATTRIBUTES
|
||||||
|
|
||||||
struct netflood_callbacks {
|
struct netflood_callbacks {
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: polite-announcement.c,v 1.1 2009/02/05 19:32:01 adamdunkels Exp $
|
* $Id: polite-announcement.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -93,8 +93,8 @@ send_adv(clock_time_t interval)
|
||||||
struct announcement_msg *adata;
|
struct announcement_msg *adata;
|
||||||
struct announcement *a;
|
struct announcement *a;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
adata = rimebuf_dataptr();
|
adata = packetbuf_dataptr();
|
||||||
adata->num = 0;
|
adata->num = 0;
|
||||||
for(a = announcement_list(); a != NULL; a = a->next) {
|
for(a = announcement_list(); a != NULL; a = a->next) {
|
||||||
adata->data[adata->num].id = a->id;
|
adata->data[adata->num].id = a->id;
|
||||||
|
@ -102,19 +102,19 @@ send_adv(clock_time_t interval)
|
||||||
adata->num++;
|
adata->num++;
|
||||||
}
|
}
|
||||||
|
|
||||||
rimebuf_set_datalen(ANNOUNCEMENT_MSG_HEADERLEN +
|
packetbuf_set_datalen(ANNOUNCEMENT_MSG_HEADERLEN +
|
||||||
sizeof(struct announcement_data) * adata->num);
|
sizeof(struct announcement_data) * adata->num);
|
||||||
|
|
||||||
PRINTF("%d.%d: sending neighbor advertisement with %d announcements\n",
|
PRINTF("%d.%d: sending neighbor advertisement with %d announcements\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], adata->num);
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], adata->num);
|
||||||
|
|
||||||
ipolite_send(&c.c, interval, rimebuf_datalen());
|
ipolite_send(&c.c, interval, packetbuf_datalen());
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
adv_packet_received(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
adv_packet_received(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct announcement_msg *adata = rimebuf_dataptr();
|
struct announcement_msg *adata = packetbuf_dataptr();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
PRINTF("%d.%d: adv_packet_received from %d.%d with %d announcements\n",
|
PRINTF("%d.%d: adv_packet_received from %d.%d with %d announcements\n",
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: polite.c,v 1.8 2009/03/02 11:22:09 adamdunkels Exp $
|
* $Id: polite.c,v 1.9 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,9 +64,9 @@ recv(struct abc_conn *abc)
|
||||||
{
|
{
|
||||||
struct polite_conn *c = (struct polite_conn *)abc;
|
struct polite_conn *c = (struct polite_conn *)abc;
|
||||||
if(c->q != NULL &&
|
if(c->q != NULL &&
|
||||||
rimebuf_datalen() == queuebuf_datalen(c->q) &&
|
packetbuf_datalen() == queuebuf_datalen(c->q) &&
|
||||||
memcmp(rimebuf_dataptr(), queuebuf_dataptr(c->q),
|
memcmp(packetbuf_dataptr(), queuebuf_dataptr(c->q),
|
||||||
MIN(c->hdrsize, rimebuf_datalen())) == 0) {
|
MIN(c->hdrsize, packetbuf_datalen())) == 0) {
|
||||||
/* We received a copy of our own packet, so we do not send out
|
/* We received a copy of our own packet, so we do not send out
|
||||||
packet. */
|
packet. */
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
|
@ -87,7 +87,7 @@ send(void *ptr)
|
||||||
struct polite_conn *c = ptr;
|
struct polite_conn *c = ptr;
|
||||||
|
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
queuebuf_to_rimebuf(c->q);
|
queuebuf_to_packetbuf(c->q);
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
c->q = NULL;
|
c->q = NULL;
|
||||||
abc_send(&c->c);
|
abc_send(&c->c);
|
||||||
|
@ -126,7 +126,7 @@ polite_send(struct polite_conn *c, clock_time_t interval, uint8_t hdrsize)
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
}
|
}
|
||||||
c->hdrsize = hdrsize;
|
c->hdrsize = hdrsize;
|
||||||
c->q = queuebuf_new_from_rimebuf();
|
c->q = queuebuf_new_from_packetbuf();
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
ctimer_set(&c->t, interval / 2 + (random_rand() % (interval / 2)), send, c);
|
ctimer_set(&c->t, interval / 2 + (random_rand() % (interval / 2)), send, c);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -81,7 +81,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: polite.h,v 1.6 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: polite.h,v 1.7 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -170,7 +170,7 @@ void polite_close(struct polite_conn *c);
|
||||||
* \param interval The timer interval in which the packet should be sent.
|
* \param interval The timer interval in which the packet should be sent.
|
||||||
* \param hdrsize The size of the header that should be unique within the time interval.
|
* \param hdrsize The size of the header that should be unique within the time interval.
|
||||||
*
|
*
|
||||||
* This function sends a packet from the rimebuf on the
|
* This function sends a packet from the packetbuf on the
|
||||||
* polite connection. The packet is sent some time during
|
* polite connection. The packet is sent some time during
|
||||||
* the time interval, but only if no other packet is
|
* the time interval, but only if no other packet is
|
||||||
* received with the same header.
|
* received with the same header.
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: queuebuf.c,v 1.13 2008/11/17 22:52:10 oliverschmidt Exp $
|
* $Id: queuebuf.c,v 1.14 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,15 +61,15 @@
|
||||||
|
|
||||||
struct queuebuf {
|
struct queuebuf {
|
||||||
uint16_t len;
|
uint16_t len;
|
||||||
uint8_t data[RIMEBUF_SIZE + RIMEBUF_HDR_SIZE];
|
uint8_t data[PACKETBUF_SIZE + PACKETBUF_HDR_SIZE];
|
||||||
struct rimebuf_attr attrs[RIMEBUF_NUM_ATTRS];
|
struct packetbuf_attr attrs[PACKETBUF_NUM_ATTRS];
|
||||||
struct rimebuf_addr addrs[RIMEBUF_NUM_ADDRS];
|
struct packetbuf_addr addrs[PACKETBUF_NUM_ADDRS];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct queuebuf_ref {
|
struct queuebuf_ref {
|
||||||
uint16_t len;
|
uint16_t len;
|
||||||
uint8_t *ref;
|
uint8_t *ref;
|
||||||
uint8_t hdr[RIMEBUF_HDR_SIZE];
|
uint8_t hdr[PACKETBUF_HDR_SIZE];
|
||||||
uint8_t hdrlen;
|
uint8_t hdrlen;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,12 +101,12 @@ queuebuf_init(void)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
struct queuebuf *
|
struct queuebuf *
|
||||||
queuebuf_new_from_rimebuf(void)
|
queuebuf_new_from_packetbuf(void)
|
||||||
{
|
{
|
||||||
struct queuebuf *buf;
|
struct queuebuf *buf;
|
||||||
struct queuebuf_ref *rbuf;
|
struct queuebuf_ref *rbuf;
|
||||||
|
|
||||||
if(rimebuf_is_reference()) {
|
if(packetbuf_is_reference()) {
|
||||||
rbuf = memb_alloc(&refbufmem);
|
rbuf = memb_alloc(&refbufmem);
|
||||||
if(rbuf != NULL) {
|
if(rbuf != NULL) {
|
||||||
#if QUEUEBUF_STATS
|
#if QUEUEBUF_STATS
|
||||||
|
@ -117,11 +117,11 @@ queuebuf_new_from_rimebuf(void)
|
||||||
queuebuf_ref_len);*/
|
queuebuf_ref_len);*/
|
||||||
#endif /* CONTIKI_TARGET_NETSIM */
|
#endif /* CONTIKI_TARGET_NETSIM */
|
||||||
#endif /* QUEUEBUF_STATS */
|
#endif /* QUEUEBUF_STATS */
|
||||||
rbuf->len = rimebuf_datalen();
|
rbuf->len = packetbuf_datalen();
|
||||||
rbuf->ref = rimebuf_reference_ptr();
|
rbuf->ref = packetbuf_reference_ptr();
|
||||||
rbuf->hdrlen = rimebuf_copyto_hdr(rbuf->hdr);
|
rbuf->hdrlen = packetbuf_copyto_hdr(rbuf->hdr);
|
||||||
} else {
|
} else {
|
||||||
PRINTF("queuebuf_new_from_rimebuf: could not allocate a reference queuebuf\n");
|
PRINTF("queuebuf_new_from_packetbuf: could not allocate a reference queuebuf\n");
|
||||||
}
|
}
|
||||||
return (struct queuebuf *)rbuf;
|
return (struct queuebuf *)rbuf;
|
||||||
} else {
|
} else {
|
||||||
|
@ -140,10 +140,10 @@ queuebuf_new_from_rimebuf(void)
|
||||||
queuebuf_ref_len);*/
|
queuebuf_ref_len);*/
|
||||||
#endif /* CONTIKI_TARGET_NETSIM */
|
#endif /* CONTIKI_TARGET_NETSIM */
|
||||||
#endif /* QUEUEBUF_STATS */
|
#endif /* QUEUEBUF_STATS */
|
||||||
buf->len = rimebuf_copyto(buf->data);
|
buf->len = packetbuf_copyto(buf->data);
|
||||||
rimebuf_attr_copyto(buf->attrs, buf->addrs);
|
packetbuf_attr_copyto(buf->attrs, buf->addrs);
|
||||||
} else {
|
} else {
|
||||||
PRINTF("queuebuf_new_from_rimebuf: could not allocate a queuebuf\n");
|
PRINTF("queuebuf_new_from_packetbuf: could not allocate a queuebuf\n");
|
||||||
}
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -176,19 +176,19 @@ queuebuf_free(struct queuebuf *buf)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
queuebuf_to_rimebuf(struct queuebuf *b)
|
queuebuf_to_packetbuf(struct queuebuf *b)
|
||||||
{
|
{
|
||||||
struct queuebuf_ref *r;
|
struct queuebuf_ref *r;
|
||||||
|
|
||||||
if(memb_inmemb(&bufmem, b)) {
|
if(memb_inmemb(&bufmem, b)) {
|
||||||
rimebuf_copyfrom(b->data, b->len);
|
packetbuf_copyfrom(b->data, b->len);
|
||||||
rimebuf_attr_copyfrom(b->attrs, b->addrs);
|
packetbuf_attr_copyfrom(b->attrs, b->addrs);
|
||||||
} else if(memb_inmemb(&refbufmem, b)) {
|
} else if(memb_inmemb(&refbufmem, b)) {
|
||||||
r = (struct queuebuf_ref *)b;
|
r = (struct queuebuf_ref *)b;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_copyfrom(r->ref, r->len);
|
packetbuf_copyfrom(r->ref, r->len);
|
||||||
rimebuf_hdralloc(r->hdrlen);
|
packetbuf_hdralloc(r->hdrlen);
|
||||||
memcpy(rimebuf_hdrptr(), r->hdr, r->hdrlen);
|
memcpy(packetbuf_hdrptr(), r->hdr, r->hdrlen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: queuebuf.h,v 1.5 2007/03/31 18:31:28 adamdunkels Exp $
|
* $Id: queuebuf.h,v 1.6 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,15 +54,15 @@
|
||||||
#ifndef __QUEUEBUF_H__
|
#ifndef __QUEUEBUF_H__
|
||||||
#define __QUEUEBUF_H__
|
#define __QUEUEBUF_H__
|
||||||
|
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
|
|
||||||
struct queuebuf;
|
struct queuebuf;
|
||||||
|
|
||||||
void queuebuf_init(void);
|
void queuebuf_init(void);
|
||||||
|
|
||||||
struct queuebuf *queuebuf_new_from_rimebuf(void);
|
struct queuebuf *queuebuf_new_from_packetbuf(void);
|
||||||
void queuebuf_free(struct queuebuf *b);
|
void queuebuf_free(struct queuebuf *b);
|
||||||
void queuebuf_to_rimebuf(struct queuebuf *b);
|
void queuebuf_to_packetbuf(struct queuebuf *b);
|
||||||
|
|
||||||
void *queuebuf_dataptr(struct queuebuf *b);
|
void *queuebuf_dataptr(struct queuebuf *b);
|
||||||
int queuebuf_datalen(struct queuebuf *b);
|
int queuebuf_datalen(struct queuebuf *b);
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rime.c,v 1.20 2009/03/01 10:43:57 adamdunkels Exp $
|
* $Id: rime.c,v 1.21 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -111,7 +111,7 @@ rime_init(const struct mac_driver *m)
|
||||||
{
|
{
|
||||||
queuebuf_init();
|
queuebuf_init();
|
||||||
route_init();
|
route_init();
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
neighbor_init();
|
neighbor_init();
|
||||||
announcement_init();
|
announcement_init();
|
||||||
rime_mac = m;
|
rime_mac = m;
|
||||||
|
@ -139,7 +139,7 @@ rime_output(void)
|
||||||
struct rime_sniffer *s;
|
struct rime_sniffer *s;
|
||||||
|
|
||||||
RIMESTATS_ADD(tx);
|
RIMESTATS_ADD(tx);
|
||||||
rimebuf_compact();
|
packetbuf_compact();
|
||||||
|
|
||||||
if(rime_mac) {
|
if(rime_mac) {
|
||||||
if(rime_mac->send()) {
|
if(rime_mac->send()) {
|
||||||
|
|
|
@ -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.7 2008/07/03 21:52:25 adamdunkels Exp $
|
* $Id: rmh.c,v 1.8 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,16 +67,16 @@ static void
|
||||||
received(struct runicast_conn *uc, rimeaddr_t *from, uint8_t seqno)
|
received(struct runicast_conn *uc, rimeaddr_t *from, uint8_t seqno)
|
||||||
{
|
{
|
||||||
struct rmh_conn *c = (struct rmh_conn *)uc;
|
struct rmh_conn *c = (struct rmh_conn *)uc;
|
||||||
struct data_hdr *msg = rimebuf_dataptr();
|
struct data_hdr *msg = packetbuf_dataptr();
|
||||||
rimeaddr_t *nexthop;
|
rimeaddr_t *nexthop;
|
||||||
|
|
||||||
PRINTF("data_packet_received from %d towards %d len %d\n", from->u16[0],
|
PRINTF("data_packet_received from %d towards %d len %d\n", from->u16[0],
|
||||||
msg->dest.u16[0],
|
msg->dest.u16[0],
|
||||||
rimebuf_datalen());
|
packetbuf_datalen());
|
||||||
|
|
||||||
if(rimeaddr_cmp(&msg->dest, &rimeaddr_node_addr)) {
|
if(rimeaddr_cmp(&msg->dest, &rimeaddr_node_addr)) {
|
||||||
PRINTF("for us!\n");
|
PRINTF("for us!\n");
|
||||||
rimebuf_hdrreduce(sizeof(struct data_hdr));
|
packetbuf_hdrreduce(sizeof(struct data_hdr));
|
||||||
if(c->cb->recv) {
|
if(c->cb->recv) {
|
||||||
c->cb->recv(c, &msg->originator, msg->hops);
|
c->cb->recv(c, &msg->originator, msg->hops);
|
||||||
}
|
}
|
||||||
|
@ -144,8 +144,8 @@ rmh_send(struct rmh_conn *c, rimeaddr_t *to, uint8_t num_rexmit, uint8_t max_hop
|
||||||
PRINTF("rmh_send: sending data\n");
|
PRINTF("rmh_send: sending data\n");
|
||||||
|
|
||||||
|
|
||||||
if(rimebuf_hdralloc(sizeof(struct data_hdr))) {
|
if(packetbuf_hdralloc(sizeof(struct data_hdr))) {
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_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 = 1;
|
hdr->hops = 1;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: route-discovery.c,v 1.13 2009/01/21 14:29:24 fros4943 Exp $
|
* $Id: route-discovery.c,v 1.14 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,9 +82,9 @@ send_rreq(struct route_discovery_conn *c, rimeaddr_t *dest)
|
||||||
{
|
{
|
||||||
struct route_msg *msg;
|
struct route_msg *msg;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct route_msg));
|
packetbuf_set_datalen(sizeof(struct route_msg));
|
||||||
|
|
||||||
msg->pad = 0;
|
msg->pad = 0;
|
||||||
msg->rreq_id = c->rreq_id;
|
msg->rreq_id = c->rreq_id;
|
||||||
|
@ -100,9 +100,9 @@ send_rrep(struct route_discovery_conn *c, rimeaddr_t *dest)
|
||||||
struct rrep_hdr *rrepmsg;
|
struct rrep_hdr *rrepmsg;
|
||||||
struct route_entry *rt;
|
struct route_entry *rt;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rrepmsg = rimebuf_dataptr();
|
rrepmsg = packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct rrep_hdr));
|
packetbuf_set_datalen(sizeof(struct rrep_hdr));
|
||||||
rrepmsg->hops = 0;
|
rrepmsg->hops = 0;
|
||||||
rimeaddr_copy(&rrepmsg->dest, dest);
|
rimeaddr_copy(&rrepmsg->dest, dest);
|
||||||
rimeaddr_copy(&rrepmsg->originator, &rimeaddr_node_addr);
|
rimeaddr_copy(&rrepmsg->originator, &rimeaddr_node_addr);
|
||||||
|
@ -139,7 +139,7 @@ insert_route(rimeaddr_t *originator, rimeaddr_t *last_hop, uint8_t hops)
|
||||||
static void
|
static void
|
||||||
rrep_packet_received(struct unicast_conn *uc, rimeaddr_t *from)
|
rrep_packet_received(struct unicast_conn *uc, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct rrep_hdr *msg = rimebuf_dataptr();
|
struct rrep_hdr *msg = packetbuf_dataptr();
|
||||||
struct route_entry *rt;
|
struct route_entry *rt;
|
||||||
rimeaddr_t dest;
|
rimeaddr_t dest;
|
||||||
struct route_discovery_conn *c = (struct route_discovery_conn *)
|
struct route_discovery_conn *c = (struct route_discovery_conn *)
|
||||||
|
@ -149,7 +149,7 @@ rrep_packet_received(struct unicast_conn *uc, rimeaddr_t *from)
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
from->u8[0],from->u8[1],
|
from->u8[0],from->u8[1],
|
||||||
msg->dest.u8[0],msg->dest.u8[1],
|
msg->dest.u8[0],msg->dest.u8[1],
|
||||||
rimebuf_datalen());
|
packetbuf_datalen());
|
||||||
|
|
||||||
insert_route(&msg->originator, from, msg->hops);
|
insert_route(&msg->originator, from, msg->hops);
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ static int
|
||||||
rreq_packet_received(struct netflood_conn *nf, rimeaddr_t *from,
|
rreq_packet_received(struct netflood_conn *nf, rimeaddr_t *from,
|
||||||
rimeaddr_t *originator, uint8_t seqno, uint8_t hops)
|
rimeaddr_t *originator, uint8_t seqno, uint8_t hops)
|
||||||
{
|
{
|
||||||
struct route_msg *msg = rimebuf_dataptr();
|
struct route_msg *msg = packetbuf_dataptr();
|
||||||
struct route_discovery_conn *c = (struct route_discovery_conn *)
|
struct route_discovery_conn *c = (struct route_discovery_conn *)
|
||||||
((char *)nf - offsetof(struct route_discovery_conn, rreqconn));
|
((char *)nf - offsetof(struct route_discovery_conn, rreqconn));
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rucb.c,v 1.8 2008/07/03 21:52:25 adamdunkels Exp $
|
* $Id: rucb.c,v 1.9 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,12 +59,12 @@ read_data(struct rucb_conn *c)
|
||||||
{
|
{
|
||||||
int len = 0;
|
int len = 0;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
if(c->u->read_chunk) {
|
if(c->u->read_chunk) {
|
||||||
len = c->u->read_chunk(c, c->chunk * RUCB_DATASIZE,
|
len = c->u->read_chunk(c, c->chunk * RUCB_DATASIZE,
|
||||||
rimebuf_dataptr(), RUCB_DATASIZE);
|
packetbuf_dataptr(), RUCB_DATASIZE);
|
||||||
}
|
}
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -102,7 +102,7 @@ recv(struct runicast_conn *ruc, rimeaddr_t *from, uint8_t seqno)
|
||||||
|
|
||||||
PRINTF("%d.%d: rucb: recv from %d.%d len %d\n",
|
PRINTF("%d.%d: rucb: recv from %d.%d len %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
from->u8[0], from->u8[1], rimebuf_totlen());
|
from->u8[0], from->u8[1], packetbuf_totlen());
|
||||||
|
|
||||||
if(seqno == c->last_seqno) {
|
if(seqno == c->last_seqno) {
|
||||||
return;
|
return;
|
||||||
|
@ -111,28 +111,28 @@ recv(struct runicast_conn *ruc, rimeaddr_t *from, uint8_t seqno)
|
||||||
|
|
||||||
if(rimeaddr_cmp(&c->sender, &rimeaddr_null)) {
|
if(rimeaddr_cmp(&c->sender, &rimeaddr_null)) {
|
||||||
rimeaddr_copy(&c->sender, from);
|
rimeaddr_copy(&c->sender, from);
|
||||||
c->u->write_chunk(c, 0, RUCB_FLAG_NEWFILE, rimebuf_dataptr(), 0);
|
c->u->write_chunk(c, 0, RUCB_FLAG_NEWFILE, packetbuf_dataptr(), 0);
|
||||||
c->chunk = 0;
|
c->chunk = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(rimeaddr_cmp(&c->sender, from)) {
|
if(rimeaddr_cmp(&c->sender, from)) {
|
||||||
int datalen = rimebuf_datalen();
|
int datalen = packetbuf_datalen();
|
||||||
|
|
||||||
if(datalen < RUCB_DATASIZE) {
|
if(datalen < RUCB_DATASIZE) {
|
||||||
PRINTF("%d.%d: get %d bytes, file complete\n",
|
PRINTF("%d.%d: get %d bytes, file complete\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
datalen);
|
datalen);
|
||||||
c->u->write_chunk(c, c->chunk * RUCB_DATASIZE,
|
c->u->write_chunk(c, c->chunk * RUCB_DATASIZE,
|
||||||
RUCB_FLAG_LASTCHUNK, rimebuf_dataptr(), datalen);
|
RUCB_FLAG_LASTCHUNK, packetbuf_dataptr(), datalen);
|
||||||
} else {
|
} else {
|
||||||
c->u->write_chunk(c, c->chunk * RUCB_DATASIZE,
|
c->u->write_chunk(c, c->chunk * RUCB_DATASIZE,
|
||||||
RUCB_FLAG_NONE, rimebuf_dataptr(), datalen);
|
RUCB_FLAG_NONE, packetbuf_dataptr(), datalen);
|
||||||
}
|
}
|
||||||
c->chunk++;
|
c->chunk++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rimebuf_datalen() < RUCB_DATASIZE) {
|
if(packetbuf_datalen() < RUCB_DATASIZE) {
|
||||||
rimeaddr_copy(&c->sender, &rimeaddr_null);
|
rimeaddr_copy(&c->sender, &rimeaddr_null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rudolph0.c,v 1.10 2008/06/30 08:28:53 adamdunkels Exp $
|
* $Id: rudolph0.c,v 1.11 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,9 +90,9 @@ static void
|
||||||
send_nack(struct rudolph0_conn *c)
|
send_nack(struct rudolph0_conn *c)
|
||||||
{
|
{
|
||||||
struct rudolph0_hdr *hdr;
|
struct rudolph0_hdr *hdr;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_hdralloc(sizeof(struct rudolph0_hdr));
|
packetbuf_hdralloc(sizeof(struct rudolph0_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
|
|
||||||
hdr->type = TYPE_NACK;
|
hdr->type = TYPE_NACK;
|
||||||
hdr->version = c->current.h.version;
|
hdr->version = c->current.h.version;
|
||||||
|
@ -122,7 +122,7 @@ static void
|
||||||
recv(struct stbroadcast_conn *stbroadcast)
|
recv(struct stbroadcast_conn *stbroadcast)
|
||||||
{
|
{
|
||||||
struct rudolph0_conn *c = (struct rudolph0_conn *)stbroadcast;
|
struct rudolph0_conn *c = (struct rudolph0_conn *)stbroadcast;
|
||||||
struct rudolph0_datapacket *p = rimebuf_dataptr();
|
struct rudolph0_datapacket *p = packetbuf_dataptr();
|
||||||
|
|
||||||
if(p->h.type == TYPE_DATA) {
|
if(p->h.type == TYPE_DATA) {
|
||||||
if(c->current.h.version != p->h.version) {
|
if(c->current.h.version != p->h.version) {
|
||||||
|
@ -164,7 +164,7 @@ recv_nack(struct polite_conn *polite)
|
||||||
struct rudolph0_conn *c = (struct rudolph0_conn *)
|
struct rudolph0_conn *c = (struct rudolph0_conn *)
|
||||||
((char *)polite - offsetof(struct rudolph0_conn,
|
((char *)polite - offsetof(struct rudolph0_conn,
|
||||||
nackc));
|
nackc));
|
||||||
struct rudolph0_datapacket *p = rimebuf_dataptr();
|
struct rudolph0_datapacket *p = packetbuf_dataptr();
|
||||||
|
|
||||||
if(p->h.type == TYPE_NACK && c->state == STATE_SENDER) {
|
if(p->h.type == TYPE_NACK && c->state == STATE_SENDER) {
|
||||||
if(p->h.version == c->current.h.version) {
|
if(p->h.version == c->current.h.version) {
|
||||||
|
@ -210,7 +210,7 @@ rudolph0_send(struct rudolph0_conn *c, clock_time_t send_interval)
|
||||||
c->current.h.chunk = 0;
|
c->current.h.chunk = 0;
|
||||||
c->current.h.type = TYPE_DATA;
|
c->current.h.type = TYPE_DATA;
|
||||||
read_new_datapacket(c);
|
read_new_datapacket(c);
|
||||||
rimebuf_reference(&c->current, sizeof(struct rudolph0_datapacket));
|
packetbuf_reference(&c->current, sizeof(struct rudolph0_datapacket));
|
||||||
c->send_interval = send_interval;
|
c->send_interval = send_interval;
|
||||||
stbroadcast_send_stubborn(&c->c, c->send_interval);
|
stbroadcast_send_stubborn(&c->c, c->send_interval);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rudolph1.c,v 1.11 2008/02/24 22:05:27 adamdunkels Exp $
|
* $Id: rudolph1.c,v 1.12 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -102,13 +102,13 @@ format_data(struct rudolph1_conn *c, int chunk)
|
||||||
{
|
{
|
||||||
struct rudolph1_datapacket *p;
|
struct rudolph1_datapacket *p;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
p = rimebuf_dataptr();
|
p = packetbuf_dataptr();
|
||||||
p->h.type = TYPE_DATA;
|
p->h.type = TYPE_DATA;
|
||||||
p->h.version = c->version;
|
p->h.version = c->version;
|
||||||
p->h.chunk = chunk;
|
p->h.chunk = chunk;
|
||||||
p->datalen = read_data(c, p->data, chunk);
|
p->datalen = read_data(c, p->data, chunk);
|
||||||
rimebuf_set_datalen(sizeof(struct rudolph1_datapacket) -
|
packetbuf_set_datalen(sizeof(struct rudolph1_datapacket) -
|
||||||
(RUDOLPH1_DATASIZE - p->datalen));
|
(RUDOLPH1_DATASIZE - p->datalen));
|
||||||
|
|
||||||
return p->datalen;
|
return p->datalen;
|
||||||
|
@ -137,9 +137,9 @@ static void
|
||||||
send_nack(struct rudolph1_conn *c)
|
send_nack(struct rudolph1_conn *c)
|
||||||
{
|
{
|
||||||
struct rudolph1_hdr *hdr;
|
struct rudolph1_hdr *hdr;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_hdralloc(sizeof(struct rudolph1_hdr));
|
packetbuf_hdralloc(sizeof(struct rudolph1_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
|
|
||||||
hdr->type = TYPE_NACK;
|
hdr->type = TYPE_NACK;
|
||||||
hdr->version = c->version;
|
hdr->version = c->version;
|
||||||
|
@ -207,7 +207,7 @@ static void
|
||||||
recv_trickle(struct trickle_conn *trickle)
|
recv_trickle(struct trickle_conn *trickle)
|
||||||
{
|
{
|
||||||
struct rudolph1_conn *c = (struct rudolph1_conn *)trickle;
|
struct rudolph1_conn *c = (struct rudolph1_conn *)trickle;
|
||||||
struct rudolph1_datapacket *p = rimebuf_dataptr();
|
struct rudolph1_datapacket *p = packetbuf_dataptr();
|
||||||
|
|
||||||
if(p->h.type == TYPE_DATA) {
|
if(p->h.type == TYPE_DATA) {
|
||||||
PRINTF("%d.%d: received trickle with chunk %d\n",
|
PRINTF("%d.%d: received trickle with chunk %d\n",
|
||||||
|
@ -236,7 +236,7 @@ recv_ipolite(struct ipolite_conn *ipolite, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct rudolph1_conn *c = (struct rudolph1_conn *)
|
struct rudolph1_conn *c = (struct rudolph1_conn *)
|
||||||
((char *)ipolite - offsetof(struct rudolph1_conn, ipolite));
|
((char *)ipolite - offsetof(struct rudolph1_conn, ipolite));
|
||||||
struct rudolph1_datapacket *p = rimebuf_dataptr();
|
struct rudolph1_datapacket *p = packetbuf_dataptr();
|
||||||
|
|
||||||
PRINTF("%d.%d: Got ipolite type %d\n",
|
PRINTF("%d.%d: Got ipolite type %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: rudolph2.c,v 1.6 2008/11/09 12:16:33 adamdunkels Exp $
|
* $Id: rudolph2.c,v 1.7 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -111,14 +111,14 @@ format_data(struct rudolph2_conn *c, int chunk)
|
||||||
struct rudolph2_hdr *hdr;
|
struct rudolph2_hdr *hdr;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
hdr = rimebuf_dataptr();
|
hdr = packetbuf_dataptr();
|
||||||
hdr->type = TYPE_DATA;
|
hdr->type = TYPE_DATA;
|
||||||
hdr->hops_from_base = c->hops_from_base;
|
hdr->hops_from_base = c->hops_from_base;
|
||||||
hdr->version = c->version;
|
hdr->version = c->version;
|
||||||
hdr->chunk = chunk;
|
hdr->chunk = chunk;
|
||||||
len = read_data(c, (uint8_t *)hdr + sizeof(struct rudolph2_hdr), chunk);
|
len = read_data(c, (uint8_t *)hdr + sizeof(struct rudolph2_hdr), chunk);
|
||||||
rimebuf_set_datalen(sizeof(struct rudolph2_hdr) + len);
|
packetbuf_set_datalen(sizeof(struct rudolph2_hdr) + len);
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
@ -170,9 +170,9 @@ static void
|
||||||
send_nack(struct rudolph2_conn *c)
|
send_nack(struct rudolph2_conn *c)
|
||||||
{
|
{
|
||||||
struct rudolph2_hdr *hdr;
|
struct rudolph2_hdr *hdr;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_hdralloc(sizeof(struct rudolph2_hdr));
|
packetbuf_hdralloc(sizeof(struct rudolph2_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
|
|
||||||
hdr->hops_from_base = c->hops_from_base;
|
hdr->hops_from_base = c->hops_from_base;
|
||||||
hdr->type = TYPE_NACK;
|
hdr->type = TYPE_NACK;
|
||||||
|
@ -290,7 +290,7 @@ static void
|
||||||
recv(struct polite_conn *polite)
|
recv(struct polite_conn *polite)
|
||||||
{
|
{
|
||||||
struct rudolph2_conn *c = (struct rudolph2_conn *)polite;
|
struct rudolph2_conn *c = (struct rudolph2_conn *)polite;
|
||||||
struct rudolph2_hdr *hdr = rimebuf_dataptr();
|
struct rudolph2_hdr *hdr = packetbuf_dataptr();
|
||||||
|
|
||||||
/* Only accept NACKs from nodes that are farther away from the base
|
/* Only accept NACKs from nodes that are farther away from the base
|
||||||
than us. */
|
than us. */
|
||||||
|
@ -326,8 +326,8 @@ recv(struct polite_conn *polite)
|
||||||
if(hdr->chunk != 0) {
|
if(hdr->chunk != 0) {
|
||||||
send_nack(c);
|
send_nack(c);
|
||||||
} else {
|
} else {
|
||||||
rimebuf_hdrreduce(sizeof(struct rudolph2_hdr));
|
packetbuf_hdrreduce(sizeof(struct rudolph2_hdr));
|
||||||
write_data(c, 0, rimebuf_dataptr(), rimebuf_totlen());
|
write_data(c, 0, packetbuf_dataptr(), packetbuf_totlen());
|
||||||
}
|
}
|
||||||
} else if(hdr->version == c->version) {
|
} else if(hdr->version == c->version) {
|
||||||
PRINTF("%d.%d: got chunk %d snd_nxt %d rcv_nxt %d\n",
|
PRINTF("%d.%d: got chunk %d snd_nxt %d rcv_nxt %d\n",
|
||||||
|
@ -336,12 +336,12 @@ recv(struct polite_conn *polite)
|
||||||
|
|
||||||
if(hdr->chunk == c->rcv_nxt) {
|
if(hdr->chunk == c->rcv_nxt) {
|
||||||
int len;
|
int len;
|
||||||
rimebuf_hdrreduce(sizeof(struct rudolph2_hdr));
|
packetbuf_hdrreduce(sizeof(struct rudolph2_hdr));
|
||||||
PRINTF("%d.%d: received chunk %d len %d\n",
|
PRINTF("%d.%d: received chunk %d len %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
hdr->chunk, rimebuf_totlen());
|
hdr->chunk, packetbuf_totlen());
|
||||||
len = rimebuf_totlen();
|
len = packetbuf_totlen();
|
||||||
write_data(c, hdr->chunk, rimebuf_dataptr(), rimebuf_totlen());
|
write_data(c, hdr->chunk, packetbuf_dataptr(), packetbuf_totlen());
|
||||||
c->rcv_nxt++;
|
c->rcv_nxt++;
|
||||||
if(len < RUDOLPH2_DATASIZE) {
|
if(len < RUDOLPH2_DATASIZE) {
|
||||||
c->flags |= FLAG_LAST_RECEIVED;
|
c->flags |= FLAG_LAST_RECEIVED;
|
||||||
|
@ -388,9 +388,9 @@ rudolph2_send(struct rudolph2_conn *c, clock_time_t send_interval)
|
||||||
c->version++;
|
c->version++;
|
||||||
c->snd_nxt = 0;
|
c->snd_nxt = 0;
|
||||||
len = RUDOLPH2_DATASIZE;
|
len = RUDOLPH2_DATASIZE;
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
for(c->rcv_nxt = 0; len == RUDOLPH2_DATASIZE; c->rcv_nxt++) {
|
for(c->rcv_nxt = 0; len == RUDOLPH2_DATASIZE; c->rcv_nxt++) {
|
||||||
len = read_data(c, rimebuf_dataptr(), c->rcv_nxt);
|
len = read_data(c, packetbuf_dataptr(), c->rcv_nxt);
|
||||||
}
|
}
|
||||||
c->flags = FLAG_LAST_RECEIVED;
|
c->flags = FLAG_LAST_RECEIVED;
|
||||||
/* printf("Highest chunk %d\n", c->rcv_nxt);*/
|
/* printf("Highest chunk %d\n", c->rcv_nxt);*/
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: runicast.c,v 1.4 2009/03/03 12:19:46 fros4943 Exp $
|
* $Id: runicast.c,v 1.5 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,10 +53,10 @@
|
||||||
|
|
||||||
#define REXMIT_TIME CLOCK_SECOND
|
#define REXMIT_TIME CLOCK_SECOND
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{
|
{
|
||||||
RUNICAST_ATTRIBUTES
|
RUNICAST_ATTRIBUTES
|
||||||
RIMEBUF_ATTR_LAST
|
PACKETBUF_ATTR_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 0
|
||||||
|
@ -77,7 +77,7 @@ sent_by_stunicast(struct stunicast_conn *stunicast)
|
||||||
RIMESTATS_ADD(rexmit);
|
RIMESTATS_ADD(rexmit);
|
||||||
PRINTF("%d.%d: runicast: packet %u resent %u\n",
|
PRINTF("%d.%d: runicast: packet %u resent %u\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_ID), c->rxmit);
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID), c->rxmit);
|
||||||
}
|
}
|
||||||
|
|
||||||
c->rxmit++;
|
c->rxmit++;
|
||||||
|
@ -103,21 +103,21 @@ static void
|
||||||
recv_from_stunicast(struct stunicast_conn *stunicast, rimeaddr_t *from)
|
recv_from_stunicast(struct stunicast_conn *stunicast, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct runicast_conn *c = (struct runicast_conn *)stunicast;
|
struct runicast_conn *c = (struct runicast_conn *)stunicast;
|
||||||
/* struct runicast_hdr *hdr = rimebuf_dataptr();*/
|
/* struct runicast_hdr *hdr = packetbuf_dataptr();*/
|
||||||
|
|
||||||
PRINTF("%d.%d: runicast: recv_from_stunicast from %d.%d type %d seqno %d\n",
|
PRINTF("%d.%d: runicast: recv_from_stunicast from %d.%d type %d seqno %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_TYPE),
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_TYPE),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_ID));
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID));
|
||||||
|
|
||||||
if(rimebuf_attr(RIMEBUF_ATTR_PACKET_TYPE) ==
|
if(packetbuf_attr(PACKETBUF_ATTR_PACKET_TYPE) ==
|
||||||
RIMEBUF_ATTR_PACKET_TYPE_ACK) {
|
PACKETBUF_ATTR_PACKET_TYPE_ACK) {
|
||||||
if(rimebuf_attr(RIMEBUF_ATTR_PACKET_ID) == c->sndnxt) {
|
if(packetbuf_attr(PACKETBUF_ATTR_PACKET_ID) == c->sndnxt) {
|
||||||
RIMESTATS_ADD(ackrx);
|
RIMESTATS_ADD(ackrx);
|
||||||
PRINTF("%d.%d: runicast: ACKed %d\n",
|
PRINTF("%d.%d: runicast: ACKed %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_ID));
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID));
|
||||||
c->sndnxt = (c->sndnxt + 1) % (1 << RUNICAST_PACKET_ID_BITS);
|
c->sndnxt = (c->sndnxt + 1) % (1 << RUNICAST_PACKET_ID_BITS);
|
||||||
c->is_tx = 0;
|
c->is_tx = 0;
|
||||||
stunicast_cancel(&c->c);
|
stunicast_cancel(&c->c);
|
||||||
|
@ -127,12 +127,12 @@ recv_from_stunicast(struct stunicast_conn *stunicast, rimeaddr_t *from)
|
||||||
} else {
|
} else {
|
||||||
PRINTF("%d.%d: runicast: received bad ACK %d for %d\n",
|
PRINTF("%d.%d: runicast: received bad ACK %d for %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_ID),
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID),
|
||||||
c->sndnxt);
|
c->sndnxt);
|
||||||
RIMESTATS_ADD(badackrx);
|
RIMESTATS_ADD(badackrx);
|
||||||
}
|
}
|
||||||
} else if(rimebuf_attr(RIMEBUF_ATTR_PACKET_TYPE) ==
|
} else if(packetbuf_attr(PACKETBUF_ATTR_PACKET_TYPE) ==
|
||||||
RIMEBUF_ATTR_PACKET_TYPE_DATA) {
|
PACKETBUF_ATTR_PACKET_TYPE_DATA) {
|
||||||
/* int send_ack = 1;*/
|
/* int send_ack = 1;*/
|
||||||
uint16_t packet_seqno;
|
uint16_t packet_seqno;
|
||||||
struct queuebuf *q;
|
struct queuebuf *q;
|
||||||
|
@ -141,29 +141,29 @@ recv_from_stunicast(struct stunicast_conn *stunicast, rimeaddr_t *from)
|
||||||
|
|
||||||
PRINTF("%d.%d: runicast: got packet %d\n",
|
PRINTF("%d.%d: runicast: got packet %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_attr(RIMEBUF_ATTR_PACKET_ID));
|
packetbuf_attr(PACKETBUF_ATTR_PACKET_ID));
|
||||||
|
|
||||||
packet_seqno = rimebuf_attr(RIMEBUF_ATTR_PACKET_ID);
|
packet_seqno = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
|
||||||
|
|
||||||
/* rimebuf_hdrreduce(sizeof(struct runicast_hdr));*/
|
/* packetbuf_hdrreduce(sizeof(struct runicast_hdr));*/
|
||||||
|
|
||||||
q = queuebuf_new_from_rimebuf();
|
q = queuebuf_new_from_packetbuf();
|
||||||
if(q != NULL) {
|
if(q != NULL) {
|
||||||
PRINTF("%d.%d: runicast: Sending ACK to %d.%d for %d\n",
|
PRINTF("%d.%d: runicast: Sending ACK to %d.%d for %d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
packet_seqno);
|
packet_seqno);
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
/* rimebuf_hdralloc(sizeof(struct runicast_hdr));
|
/* packetbuf_hdralloc(sizeof(struct runicast_hdr));
|
||||||
hdr = rimebuf_hdrptr();
|
hdr = packetbuf_hdrptr();
|
||||||
hdr->type = TYPE_ACK;
|
hdr->type = TYPE_ACK;
|
||||||
hdr->seqno = packet_seqno;*/
|
hdr->seqno = packet_seqno;*/
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_PACKET_TYPE, RIMEBUF_ATTR_PACKET_TYPE_ACK);
|
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_TYPE, PACKETBUF_ATTR_PACKET_TYPE_ACK);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_PACKET_ID, packet_seqno);
|
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, packet_seqno);
|
||||||
stunicast_send(&c->c, from);
|
stunicast_send(&c->c, from);
|
||||||
RIMESTATS_ADD(acktx);
|
RIMESTATS_ADD(acktx);
|
||||||
|
|
||||||
queuebuf_to_rimebuf(q);
|
queuebuf_to_packetbuf(q);
|
||||||
queuebuf_free(q);
|
queuebuf_free(q);
|
||||||
}
|
}
|
||||||
if(c->u->recv != NULL) {
|
if(c->u->recv != NULL) {
|
||||||
|
@ -206,9 +206,9 @@ runicast_send(struct runicast_conn *c, rimeaddr_t *receiver, uint8_t max_retrans
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_RELIABLE, 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_RELIABLE, 1);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_PACKET_TYPE, RIMEBUF_ATTR_PACKET_TYPE_DATA);
|
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_TYPE, PACKETBUF_ATTR_PACKET_TYPE_DATA);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_PACKET_ID, c->sndnxt);
|
packetbuf_set_attr(PACKETBUF_ATTR_PACKET_ID, c->sndnxt);
|
||||||
c->max_rxmit = max_retransmissions;
|
c->max_rxmit = max_retransmissions;
|
||||||
c->rxmit = 0;
|
c->rxmit = 0;
|
||||||
c->is_tx = 1;
|
c->is_tx = 1;
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: runicast.h,v 1.4 2009/03/07 11:15:46 adamdunkels Exp $
|
* $Id: runicast.h,v 1.5 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -83,8 +83,8 @@
|
||||||
|
|
||||||
struct runicast_conn;
|
struct runicast_conn;
|
||||||
|
|
||||||
#define RUNICAST_ATTRIBUTES { RIMEBUF_ATTR_PACKET_TYPE, RIMEBUF_ATTR_BIT }, \
|
#define RUNICAST_ATTRIBUTES { PACKETBUF_ATTR_PACKET_TYPE, PACKETBUF_ATTR_BIT }, \
|
||||||
{ RIMEBUF_ATTR_PACKET_ID, RIMEBUF_ATTR_BIT * 2 }, \
|
{ PACKETBUF_ATTR_PACKET_ID, PACKETBUF_ATTR_BIT * 2 }, \
|
||||||
STUNICAST_ATTRIBUTES
|
STUNICAST_ATTRIBUTES
|
||||||
struct runicast_callbacks {
|
struct runicast_callbacks {
|
||||||
void (* recv)(struct runicast_conn *c, rimeaddr_t *from, uint8_t seqno);
|
void (* recv)(struct runicast_conn *c, rimeaddr_t *from, uint8_t seqno);
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: stbroadcast.c,v 1.1 2008/06/30 08:28:53 adamdunkels Exp $
|
* $Id: stbroadcast.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,7 +82,7 @@ send(void *ptr)
|
||||||
struct stbroadcast_conn *c = ptr;
|
struct stbroadcast_conn *c = ptr;
|
||||||
|
|
||||||
/* DEBUGF(3, "stbroadcast: send()\n");*/
|
/* DEBUGF(3, "stbroadcast: send()\n");*/
|
||||||
queuebuf_to_rimebuf(c->buf);
|
queuebuf_to_packetbuf(c->buf);
|
||||||
broadcast_send(&c->c);
|
broadcast_send(&c->c);
|
||||||
ctimer_reset(&c->t);
|
ctimer_reset(&c->t);
|
||||||
if(c->u->sent != NULL) {
|
if(c->u->sent != NULL) {
|
||||||
|
@ -102,7 +102,7 @@ stbroadcast_send_stubborn(struct stbroadcast_conn *c, clock_time_t t)
|
||||||
if(c->buf != NULL) {
|
if(c->buf != NULL) {
|
||||||
queuebuf_free(c->buf);
|
queuebuf_free(c->buf);
|
||||||
}
|
}
|
||||||
c->buf = queuebuf_new_from_rimebuf();
|
c->buf = queuebuf_new_from_packetbuf();
|
||||||
if(c->buf == NULL) {
|
if(c->buf == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: stunicast.c,v 1.1 2008/07/03 21:35:46 adamdunkels Exp $
|
* $Id: stunicast.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -102,7 +102,7 @@ send(void *ptr)
|
||||||
PRINTF("%d.%d: stunicast: resend to %d.%d\n",
|
PRINTF("%d.%d: stunicast: resend to %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
c->receiver.u8[0], c->receiver.u8[1]);
|
c->receiver.u8[0], c->receiver.u8[1]);
|
||||||
queuebuf_to_rimebuf(c->buf);
|
queuebuf_to_packetbuf(c->buf);
|
||||||
unicast_send(&c->c, &c->receiver);
|
unicast_send(&c->c, &c->receiver);
|
||||||
stunicast_set_timer(c, CLOCK_SECOND);
|
stunicast_set_timer(c, CLOCK_SECOND);
|
||||||
if(c->u->sent != NULL) {
|
if(c->u->sent != NULL) {
|
||||||
|
@ -123,7 +123,7 @@ stunicast_send_stubborn(struct stunicast_conn *c, rimeaddr_t *receiver,
|
||||||
if(c->buf != NULL) {
|
if(c->buf != NULL) {
|
||||||
queuebuf_free(c->buf);
|
queuebuf_free(c->buf);
|
||||||
}
|
}
|
||||||
c->buf = queuebuf_new_from_rimebuf();
|
c->buf = queuebuf_new_from_packetbuf();
|
||||||
if(c->buf == NULL) {
|
if(c->buf == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: timesynch.c,v 1.6 2009/02/20 21:23:22 adamdunkels Exp $
|
* $Id: timesynch.c,v 1.7 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "net/rime/timesynch.h"
|
#include "net/rime/timesynch.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "net/rime.h"
|
#include "net/rime.h"
|
||||||
#include "dev/cc2420.h"
|
#include "dev/cc2420.h"
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ adjust_offset(rtimer_clock_t authoritative_time, rtimer_clock_t local_time)
|
||||||
static void
|
static void
|
||||||
incoming_packet(void)
|
incoming_packet(void)
|
||||||
{
|
{
|
||||||
if(rimebuf_totlen() != 0) {
|
if(packetbuf_totlen() != 0) {
|
||||||
/* We check the authority level of the sender of the incoming
|
/* We check the authority level of the sender of the incoming
|
||||||
packet. If the sending node has a lower authority level than we
|
packet. If the sending node has a lower authority level than we
|
||||||
have, we synchronize to the time of the sending node and set our
|
have, we synchronize to the time of the sending node and set our
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: trickle.c,v 1.15 2009/02/11 11:08:56 adamdunkels Exp $
|
* $Id: trickle.c,v 1.16 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,9 +57,9 @@
|
||||||
|
|
||||||
#define SEQNO_LT(a, b) ((signed char)((a) - (b)) < 0)
|
#define SEQNO_LT(a, b) ((signed char)((a) - (b)) < 0)
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{
|
{
|
||||||
TRICKLE_ATTRIBUTES RIMEBUF_ATTR_LAST
|
TRICKLE_ATTRIBUTES PACKETBUF_ATTR_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ send(void *ptr)
|
||||||
struct trickle_conn *c = ptr;
|
struct trickle_conn *c = ptr;
|
||||||
|
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
queuebuf_to_rimebuf(c->q);
|
queuebuf_to_packetbuf(c->q);
|
||||||
broadcast_send(&c->c);
|
broadcast_send(&c->c);
|
||||||
} else {
|
} else {
|
||||||
PRINTF("%d.%d: trickle send but c->q == NULL\n",
|
PRINTF("%d.%d: trickle send but c->q == NULL\n",
|
||||||
|
@ -136,15 +136,15 @@ static void
|
||||||
recv(struct broadcast_conn *bc, rimeaddr_t *from)
|
recv(struct broadcast_conn *bc, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
struct trickle_conn *c = (struct trickle_conn *)bc;
|
struct trickle_conn *c = (struct trickle_conn *)bc;
|
||||||
uint16_t seqno = rimebuf_attr(RIMEBUF_ATTR_EPACKET_ID);
|
uint16_t seqno = packetbuf_attr(PACKETBUF_ATTR_EPACKET_ID);
|
||||||
|
|
||||||
PRINTF("%d.%d: trickle recv seqno %d from %d.%d our %d data len %d channel %d\n",
|
PRINTF("%d.%d: trickle recv seqno %d from %d.%d our %d data len %d channel %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
seqno,
|
seqno,
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
c->seqno,
|
c->seqno,
|
||||||
rimebuf_datalen(),
|
packetbuf_datalen(),
|
||||||
rimebuf_attr(RIMEBUF_ATTR_CHANNEL));
|
packetbuf_attr(PACKETBUF_ATTR_CHANNEL));
|
||||||
|
|
||||||
if(seqno == c->seqno) {
|
if(seqno == c->seqno) {
|
||||||
/* c->cb->recv(c);*/
|
/* c->cb->recv(c);*/
|
||||||
|
@ -161,7 +161,7 @@ recv(struct broadcast_conn *bc, rimeaddr_t *from)
|
||||||
if(c->q != NULL) {
|
if(c->q != NULL) {
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
}
|
}
|
||||||
c->q = queuebuf_new_from_rimebuf();
|
c->q = queuebuf_new_from_packetbuf();
|
||||||
c->interval_scaling = 0;
|
c->interval_scaling = 0;
|
||||||
reset_interval(c);
|
reset_interval(c);
|
||||||
send(c);
|
send(c);
|
||||||
|
@ -198,8 +198,8 @@ trickle_send(struct trickle_conn *c)
|
||||||
queuebuf_free(c->q);
|
queuebuf_free(c->q);
|
||||||
}
|
}
|
||||||
c->seqno++;
|
c->seqno++;
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_EPACKET_ID, c->seqno);
|
packetbuf_set_attr(PACKETBUF_ATTR_EPACKET_ID, c->seqno);
|
||||||
c->q = queuebuf_new_from_rimebuf();
|
c->q = queuebuf_new_from_packetbuf();
|
||||||
PRINTF("%d.%d: trickle send seqno %d\n",
|
PRINTF("%d.%d: trickle send seqno %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
c->seqno);
|
c->seqno);
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: trickle.h,v 1.9 2008/07/07 23:29:30 adamdunkels Exp $
|
* $Id: trickle.h,v 1.10 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
#include "net/rime/ctimer.h"
|
#include "net/rime/ctimer.h"
|
||||||
#include "net/rime/queuebuf.h"
|
#include "net/rime/queuebuf.h"
|
||||||
|
|
||||||
#define TRICKLE_ATTRIBUTES { RIMEBUF_ATTR_EPACKET_ID, RIMEBUF_ATTR_BIT * 8 },\
|
#define TRICKLE_ATTRIBUTES { PACKETBUF_ATTR_EPACKET_ID, PACKETBUF_ATTR_BIT * 8 },\
|
||||||
BROADCAST_ATTRIBUTES
|
BROADCAST_ATTRIBUTES
|
||||||
|
|
||||||
struct trickle_conn;
|
struct trickle_conn;
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: unicast.c,v 1.1 2008/06/26 11:19:22 adamdunkels Exp $
|
* $Id: unicast.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,10 +48,10 @@
|
||||||
#include "net/rime/unicast.h"
|
#include "net/rime/unicast.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
static const struct rimebuf_attrlist attributes[] =
|
static const struct packetbuf_attrlist attributes[] =
|
||||||
{
|
{
|
||||||
UNICAST_ATTRIBUTES
|
UNICAST_ATTRIBUTES
|
||||||
RIMEBUF_ATTR_LAST
|
PACKETBUF_ATTR_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEBUG 0
|
#define DEBUG 0
|
||||||
|
@ -70,9 +70,9 @@ recv_from_broadcast(struct broadcast_conn *broadcast, rimeaddr_t *from)
|
||||||
|
|
||||||
PRINTF("%d.%d: uc: recv_from_broadcast, receiver %d.%d\n",
|
PRINTF("%d.%d: uc: recv_from_broadcast, receiver %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_RECEIVER)->u8[0],
|
packetbuf_addr(PACKETBUF_ADDR_RECEIVER)->u8[0],
|
||||||
rimebuf_addr(RIMEBUF_ADDR_RECEIVER)->u8[1]);
|
packetbuf_addr(PACKETBUF_ADDR_RECEIVER)->u8[1]);
|
||||||
if(rimeaddr_cmp(rimebuf_addr(RIMEBUF_ADDR_RECEIVER), &rimeaddr_node_addr)) {
|
if(rimeaddr_cmp(packetbuf_addr(PACKETBUF_ADDR_RECEIVER), &rimeaddr_node_addr)) {
|
||||||
c->u->recv(c, from);
|
c->u->recv(c, from);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ unicast_send(struct unicast_conn *c, const rimeaddr_t *receiver)
|
||||||
PRINTF("%d.%d: unicast_send to %d.%d\n",
|
PRINTF("%d.%d: unicast_send to %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0],rimeaddr_node_addr.u8[1],
|
||||||
receiver->u8[0], receiver->u8[1]);
|
receiver->u8[0], receiver->u8[1]);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, receiver);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, receiver);
|
||||||
return broadcast_send(&c->c);
|
return broadcast_send(&c->c);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: unicast.h,v 1.3 2009/03/08 21:43:24 adamdunkels Exp $
|
* $Id: unicast.h,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
|
|
||||||
struct unicast_conn;
|
struct unicast_conn;
|
||||||
|
|
||||||
#define UNICAST_ATTRIBUTES { RIMEBUF_ADDR_RECEIVER, RIMEBUF_ADDRSIZE }, \
|
#define UNICAST_ATTRIBUTES { PACKETBUF_ADDR_RECEIVER, PACKETBUF_ADDRSIZE }, \
|
||||||
BROADCAST_ATTRIBUTES
|
BROADCAST_ATTRIBUTES
|
||||||
|
|
||||||
struct unicast_callbacks {
|
struct unicast_callbacks {
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sicslowpan.c,v 1.4 2008/11/06 20:45:06 nvt-se Exp $
|
* $Id: sicslowpan.c,v 1.5 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* \file
|
* \file
|
||||||
|
@ -60,14 +60,14 @@ u8_t p;
|
||||||
#define PRINTF(...) printf(__VA_ARGS__)
|
#define PRINTF(...) printf(__VA_ARGS__)
|
||||||
#define PRINT6ADDR(addr) PRINTF(" %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x ", ((u8_t *)addr)[0], ((u8_t *)addr)[1], ((u8_t *)addr)[2], ((u8_t *)addr)[3], ((u8_t *)addr)[4], ((u8_t *)addr)[5], ((u8_t *)addr)[6], ((u8_t *)addr)[7], ((u8_t *)addr)[8], ((u8_t *)addr)[9], ((u8_t *)addr)[10], ((u8_t *)addr)[11], ((u8_t *)addr)[12], ((u8_t *)addr)[13], ((u8_t *)addr)[14], ((u8_t *)addr)[15])
|
#define PRINT6ADDR(addr) PRINTF(" %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x ", ((u8_t *)addr)[0], ((u8_t *)addr)[1], ((u8_t *)addr)[2], ((u8_t *)addr)[3], ((u8_t *)addr)[4], ((u8_t *)addr)[5], ((u8_t *)addr)[6], ((u8_t *)addr)[7], ((u8_t *)addr)[8], ((u8_t *)addr)[9], ((u8_t *)addr)[10], ((u8_t *)addr)[11], ((u8_t *)addr)[12], ((u8_t *)addr)[13], ((u8_t *)addr)[14], ((u8_t *)addr)[15])
|
||||||
#define PRINTLLADDR(lladdr) PRINTF(" %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",lladdr->addr[0], lladdr->addr[1], lladdr->addr[2], lladdr->addr[3],lladdr->addr[4], lladdr->addr[5],lladdr->addr[6], lladdr->addr[7])
|
#define PRINTLLADDR(lladdr) PRINTF(" %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",lladdr->addr[0], lladdr->addr[1], lladdr->addr[2], lladdr->addr[3],lladdr->addr[4], lladdr->addr[5],lladdr->addr[6], lladdr->addr[7])
|
||||||
#define PRINTRIMEBUF() PRINTF("RIME buffer: "); for(p = 0; p < rimebuf_datalen(); p++){PRINTF("%.2X", *(rime_ptr + p));} PRINTF("\n")
|
#define PRINTPACKETBUF() PRINTF("RIME buffer: "); for(p = 0; p < packetbuf_datalen(); p++){PRINTF("%.2X", *(rime_ptr + p));} PRINTF("\n")
|
||||||
#define PRINTUIPBUF() PRINTF("UIP buffer: "); for(p = 0; p < uip_len; p++){PRINTF("%.2X", uip_buf[p]);}PRINTF("\n")
|
#define PRINTUIPBUF() PRINTF("UIP buffer: "); for(p = 0; p < uip_len; p++){PRINTF("%.2X", uip_buf[p]);}PRINTF("\n")
|
||||||
#define PRINTSICSLOWPANBUF() PRINTF("SICSLOWPAN buffer: "); for(p = 0; p < sicslowpan_len; p++){PRINTF("%.2X", sicslowpan_buf[p]);}PRINTF("\n")
|
#define PRINTSICSLOWPANBUF() PRINTF("SICSLOWPAN buffer: "); for(p = 0; p < sicslowpan_len; p++){PRINTF("%.2X", sicslowpan_buf[p]);}PRINTF("\n")
|
||||||
#else
|
#else
|
||||||
#define PRINTF(...)
|
#define PRINTF(...)
|
||||||
#define PRINT6ADDR(addr)
|
#define PRINT6ADDR(addr)
|
||||||
#define PRINTLLADDR(lladdr)
|
#define PRINTLLADDR(lladdr)
|
||||||
#define PRINTRIMEBUF()
|
#define PRINTPACKETBUF()
|
||||||
#define PRINTUIPBUF()
|
#define PRINTUIPBUF()
|
||||||
#define PRINTSICSLOWPANBUF()
|
#define PRINTSICSLOWPANBUF()
|
||||||
#endif /* DEBUG == 1*/
|
#endif /* DEBUG == 1*/
|
||||||
|
@ -232,7 +232,7 @@ addr_context_lookup_by_number(u8_t number) {
|
||||||
* \brief Compress IP/UDP header
|
* \brief Compress IP/UDP header
|
||||||
*
|
*
|
||||||
* This function is called by the 6lowpan code to create a compressed
|
* This function is called by the 6lowpan code to create a compressed
|
||||||
* 6lowpan packet in the rimebuf buffer from a full IPv6 packet in the
|
* 6lowpan packet in the packetbuf buffer from a full IPv6 packet in the
|
||||||
* uip_buf buffer.
|
* uip_buf buffer.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -598,7 +598,7 @@ uncompress_hdr_hc01(u16_t ip_len) {
|
||||||
memcpy(&SICSLOWPAN_IP_BUF->srcipaddr, context->prefix, 8);
|
memcpy(&SICSLOWPAN_IP_BUF->srcipaddr, context->prefix, 8);
|
||||||
/* infer IID from L2 address */
|
/* infer IID from L2 address */
|
||||||
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->srcipaddr,
|
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->srcipaddr,
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
break;
|
break;
|
||||||
case SICSLOWPAN_IPHC_SAM_16:
|
case SICSLOWPAN_IPHC_SAM_16:
|
||||||
if((*hc01_ptr & 0x80) == 0) {
|
if((*hc01_ptr & 0x80) == 0) {
|
||||||
|
@ -657,7 +657,7 @@ uncompress_hdr_hc01(u16_t ip_len) {
|
||||||
memcpy(&SICSLOWPAN_IP_BUF->destipaddr, context->prefix, 8);
|
memcpy(&SICSLOWPAN_IP_BUF->destipaddr, context->prefix, 8);
|
||||||
/* infer IID from L2 address */
|
/* infer IID from L2 address */
|
||||||
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->destipaddr,
|
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->destipaddr,
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
break;
|
break;
|
||||||
case SICSLOWPAN_IPHC_DAM_16:
|
case SICSLOWPAN_IPHC_DAM_16:
|
||||||
if((*hc01_ptr & 0x80) == 0) {
|
if((*hc01_ptr & 0x80) == 0) {
|
||||||
|
@ -738,7 +738,7 @@ uncompress_hdr_hc01(u16_t ip_len) {
|
||||||
if(ip_len == 0) {
|
if(ip_len == 0) {
|
||||||
/* This is not a fragmented packet */
|
/* This is not a fragmented packet */
|
||||||
SICSLOWPAN_IP_BUF->len[0] = 0;
|
SICSLOWPAN_IP_BUF->len[0] = 0;
|
||||||
SICSLOWPAN_IP_BUF->len[1] = rimebuf_datalen() - rime_hdr_len + uncomp_hdr_len - UIP_IPH_LEN;
|
SICSLOWPAN_IP_BUF->len[1] = packetbuf_datalen() - rime_hdr_len + uncomp_hdr_len - UIP_IPH_LEN;
|
||||||
} else {
|
} else {
|
||||||
/* This is a 1st fragment */
|
/* This is a 1st fragment */
|
||||||
SICSLOWPAN_IP_BUF->len[0] = (ip_len - UIP_IPH_LEN) >> 8;
|
SICSLOWPAN_IP_BUF->len[0] = (ip_len - UIP_IPH_LEN) >> 8;
|
||||||
|
@ -764,7 +764,7 @@ uncompress_hdr_hc01(u16_t ip_len) {
|
||||||
* \brief Compress IP/UDP header using HC1 and HC_UDP
|
* \brief Compress IP/UDP header using HC1 and HC_UDP
|
||||||
*
|
*
|
||||||
* This function is called by the 6lowpan code to create a compressed
|
* This function is called by the 6lowpan code to create a compressed
|
||||||
* 6lowpan packet in the rimebuf buffer from a full IPv6 packet in the
|
* 6lowpan packet in the packetbuf buffer from a full IPv6 packet in the
|
||||||
* uip_buf buffer.
|
* uip_buf buffer.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -924,10 +924,10 @@ uncompress_hdr_hc1(u16_t ip_len) {
|
||||||
/* src and dest ip addresses */
|
/* src and dest ip addresses */
|
||||||
uip_ip6addr(&SICSLOWPAN_IP_BUF->srcipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&SICSLOWPAN_IP_BUF->srcipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->srcipaddr,
|
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->srcipaddr,
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
uip_ip6addr(&SICSLOWPAN_IP_BUF->destipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&SICSLOWPAN_IP_BUF->destipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->destipaddr,
|
uip_netif_addr_autoconf_set(&SICSLOWPAN_IP_BUF->destipaddr,
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
|
|
||||||
uncomp_hdr_len += UIP_IPH_LEN;
|
uncomp_hdr_len += UIP_IPH_LEN;
|
||||||
|
|
||||||
|
@ -979,7 +979,7 @@ uncompress_hdr_hc1(u16_t ip_len) {
|
||||||
if(ip_len == 0) {
|
if(ip_len == 0) {
|
||||||
/* This is not a fragmented packet */
|
/* This is not a fragmented packet */
|
||||||
SICSLOWPAN_IP_BUF->len[0] = 0;
|
SICSLOWPAN_IP_BUF->len[0] = 0;
|
||||||
SICSLOWPAN_IP_BUF->len[1] = rimebuf_datalen() - rime_hdr_len + uncomp_hdr_len - UIP_IPH_LEN;
|
SICSLOWPAN_IP_BUF->len[1] = packetbuf_datalen() - rime_hdr_len + uncomp_hdr_len - UIP_IPH_LEN;
|
||||||
} else {
|
} else {
|
||||||
/* This is a 1st fragment */
|
/* This is a 1st fragment */
|
||||||
SICSLOWPAN_IP_BUF->len[0] = (ip_len - UIP_IPH_LEN) >> 8;
|
SICSLOWPAN_IP_BUF->len[0] = (ip_len - UIP_IPH_LEN) >> 8;
|
||||||
|
@ -1040,10 +1040,10 @@ send_packet(rimeaddr_t *dest)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Set the link layer destination address for the packet as a
|
/* Set the link layer destination address for the packet as a
|
||||||
* rimebuf attribute. The MAC layer can access the destination
|
* packetbuf attribute. The MAC layer can access the destination
|
||||||
* address with the function "rimebuf_addr(RIMEBUF_ADDR_RECEIVER);
|
* address with the function "packetbuf_addr(PACKETBUF_ADDR_RECEIVER);
|
||||||
*/
|
*/
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, dest);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, dest);
|
||||||
|
|
||||||
if(mac != NULL) {
|
if(mac != NULL) {
|
||||||
/** \todo: Fix sending delays so they aren't blocking, or even better would
|
/** \todo: Fix sending delays so they aren't blocking, or even better would
|
||||||
|
@ -1058,7 +1058,7 @@ send_packet(rimeaddr_t *dest)
|
||||||
*
|
*
|
||||||
* The IP packet is initially in uip_buf. Its header is compressed
|
* The IP packet is initially in uip_buf. Its header is compressed
|
||||||
* and if necessary it is fragmented. The resulting
|
* and if necessary it is fragmented. The resulting
|
||||||
* packet/fragments are put in rimebuf and delivered to the 802.15.4
|
* packet/fragments are put in packetbuf and delivered to the 802.15.4
|
||||||
* MAC.
|
* MAC.
|
||||||
*/
|
*/
|
||||||
static u8_t
|
static u8_t
|
||||||
|
@ -1073,8 +1073,8 @@ output(uip_lladdr_t *localdest)
|
||||||
rime_hdr_len = 0;
|
rime_hdr_len = 0;
|
||||||
|
|
||||||
/* reset rime buffer */
|
/* reset rime buffer */
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rime_ptr = rimebuf_dataptr();
|
rime_ptr = packetbuf_dataptr();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The destination address will be tagged to each outbound
|
* The destination address will be tagged to each outbound
|
||||||
|
@ -1131,7 +1131,7 @@ output(uip_lladdr_t *localdest)
|
||||||
PRINTF("(len %d, tag %d)\n", rime_payload_len, my_tag);
|
PRINTF("(len %d, tag %d)\n", rime_payload_len, my_tag);
|
||||||
memcpy(rime_ptr + rime_hdr_len,
|
memcpy(rime_ptr + rime_hdr_len,
|
||||||
(void *)UIP_IP_BUF + uncomp_hdr_len, rime_payload_len);
|
(void *)UIP_IP_BUF + uncomp_hdr_len, rime_payload_len);
|
||||||
rimebuf_set_datalen(rime_payload_len + rime_hdr_len);
|
packetbuf_set_datalen(rime_payload_len + rime_hdr_len);
|
||||||
send_packet(&dest);
|
send_packet(&dest);
|
||||||
|
|
||||||
/* set processed_ip_len to what we already sent from the IP payload*/
|
/* set processed_ip_len to what we already sent from the IP payload*/
|
||||||
|
@ -1159,7 +1159,7 @@ output(uip_lladdr_t *localdest)
|
||||||
processed_ip_len >> 3, rime_payload_len, my_tag);
|
processed_ip_len >> 3, rime_payload_len, my_tag);
|
||||||
memcpy(rime_ptr + rime_hdr_len,
|
memcpy(rime_ptr + rime_hdr_len,
|
||||||
(void *)UIP_IP_BUF + processed_ip_len, rime_payload_len);
|
(void *)UIP_IP_BUF + processed_ip_len, rime_payload_len);
|
||||||
rimebuf_set_datalen(rime_payload_len + rime_hdr_len);
|
packetbuf_set_datalen(rime_payload_len + rime_hdr_len);
|
||||||
send_packet(&dest);
|
send_packet(&dest);
|
||||||
processed_ip_len += rime_payload_len;
|
processed_ip_len += rime_payload_len;
|
||||||
}
|
}
|
||||||
|
@ -1178,7 +1178,7 @@ output(uip_lladdr_t *localdest)
|
||||||
*/
|
*/
|
||||||
memcpy(rime_ptr + rime_hdr_len, (void *)UIP_IP_BUF + uncomp_hdr_len,
|
memcpy(rime_ptr + rime_hdr_len, (void *)UIP_IP_BUF + uncomp_hdr_len,
|
||||||
uip_len - uncomp_hdr_len);
|
uip_len - uncomp_hdr_len);
|
||||||
rimebuf_set_datalen(uip_len - uncomp_hdr_len + rime_hdr_len);
|
packetbuf_set_datalen(uip_len - uncomp_hdr_len + rime_hdr_len);
|
||||||
send_packet(&dest);
|
send_packet(&dest);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1188,7 +1188,7 @@ output(uip_lladdr_t *localdest)
|
||||||
/** \brief Process a received 6lowpan packet.
|
/** \brief Process a received 6lowpan packet.
|
||||||
* \param r The MAC layer
|
* \param r The MAC layer
|
||||||
*
|
*
|
||||||
* The 6lowpan packet is put in rimebuf by the MAC. If its a frag1 or
|
* The 6lowpan packet is put in packetbuf by the MAC. If its a frag1 or
|
||||||
* a non-fragmented packet we first uncompress the IP header. The
|
* a non-fragmented packet we first uncompress the IP header. The
|
||||||
* 6lowpan payload and possibly the uncompressed IP header are then
|
* 6lowpan payload and possibly the uncompressed IP header are then
|
||||||
* copied in siclowpan_buf. If the IP packet is complete it is copied
|
* copied in siclowpan_buf. If the IP packet is complete it is copied
|
||||||
|
@ -1220,7 +1220,7 @@ input(const struct mac_driver *r)
|
||||||
rime_hdr_len = 0;
|
rime_hdr_len = 0;
|
||||||
|
|
||||||
/* The MAC puts the 15.4 payload inside the RIME data buffer */
|
/* The MAC puts the 15.4 payload inside the RIME data buffer */
|
||||||
rime_ptr = rimebuf_dataptr();
|
rime_ptr = packetbuf_dataptr();
|
||||||
|
|
||||||
#if SICSLOWPAN_CONF_FRAG
|
#if SICSLOWPAN_CONF_FRAG
|
||||||
/* if reassembly timed out, cancel it */
|
/* if reassembly timed out, cancel it */
|
||||||
|
@ -1265,7 +1265,7 @@ input(const struct mac_driver *r)
|
||||||
if((frag_size > 0 &&
|
if((frag_size > 0 &&
|
||||||
(frag_size != sicslowpan_len ||
|
(frag_size != sicslowpan_len ||
|
||||||
reass_tag != frag_tag ||
|
reass_tag != frag_tag ||
|
||||||
!rimeaddr_cmp(&frag_sender, rimebuf_addr(RIMEBUF_ADDR_SENDER)))) ||
|
!rimeaddr_cmp(&frag_sender, packetbuf_addr(PACKETBUF_ADDR_SENDER)))) ||
|
||||||
frag_size == 0) {
|
frag_size == 0) {
|
||||||
/*
|
/*
|
||||||
* the packet is a fragment that does not belong to the packet
|
* the packet is a fragment that does not belong to the packet
|
||||||
|
@ -1285,7 +1285,7 @@ input(const struct mac_driver *r)
|
||||||
timer_set(&reass_timer, SICSLOWPAN_REASS_MAXAGE*CLOCK_SECOND);
|
timer_set(&reass_timer, SICSLOWPAN_REASS_MAXAGE*CLOCK_SECOND);
|
||||||
PRINTF("sicslowpan input: INIT FRAGMENTATION (len %d, tag %d)\n",
|
PRINTF("sicslowpan input: INIT FRAGMENTATION (len %d, tag %d)\n",
|
||||||
sicslowpan_len, reass_tag);
|
sicslowpan_len, reass_tag);
|
||||||
rimeaddr_copy(&frag_sender, rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
rimeaddr_copy(&frag_sender, packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1337,7 +1337,7 @@ input(const struct mac_driver *r)
|
||||||
* and rime_hdr_len are non 0, frag_offset is.
|
* and rime_hdr_len are non 0, frag_offset is.
|
||||||
* If this is a subsequent fragment, this is the contrary.
|
* If this is a subsequent fragment, this is the contrary.
|
||||||
*/
|
*/
|
||||||
rime_payload_len = rimebuf_datalen() - rime_hdr_len;
|
rime_payload_len = packetbuf_datalen() - rime_hdr_len;
|
||||||
memcpy((void *)SICSLOWPAN_IP_BUF + uncomp_hdr_len + (u16_t)(frag_offset << 3), rime_ptr + rime_hdr_len, rime_payload_len);
|
memcpy((void *)SICSLOWPAN_IP_BUF + uncomp_hdr_len + (u16_t)(frag_offset << 3), rime_ptr + rime_hdr_len, rime_payload_len);
|
||||||
|
|
||||||
/* update processed_ip_len if fragment, sicslowpan_len otherwise */
|
/* update processed_ip_len if fragment, sicslowpan_len otherwise */
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: uip-over-mesh.c,v 1.10 2008/11/09 12:20:56 adamdunkels Exp $
|
* $Id: uip-over-mesh.c,v 1.11 2009/03/12 21:58:20 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -80,7 +80,7 @@ static uip_ipaddr_t netaddr, netmask;
|
||||||
static void
|
static void
|
||||||
recv_data(struct unicast_conn *c, rimeaddr_t *from)
|
recv_data(struct unicast_conn *c, rimeaddr_t *from)
|
||||||
{
|
{
|
||||||
uip_len = rimebuf_copyto(&uip_buf[UIP_LLH_LEN]);
|
uip_len = packetbuf_copyto(&uip_buf[UIP_LLH_LEN]);
|
||||||
|
|
||||||
/* uip_len = hc_inflate(&uip_buf[UIP_LLH_LEN], uip_len);*/
|
/* uip_len = hc_inflate(&uip_buf[UIP_LLH_LEN], uip_len);*/
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ send_data(rimeaddr_t *next)
|
||||||
{
|
{
|
||||||
PRINTF("uip-over-mesh: %d.%d: send_data with len %d\n",
|
PRINTF("uip-over-mesh: %d.%d: send_data with len %d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
rimebuf_totlen());
|
packetbuf_totlen());
|
||||||
unicast_send(&dataconn, next);
|
unicast_send(&dataconn, next);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -106,7 +106,7 @@ new_route(struct route_discovery_conn *c, rimeaddr_t *to)
|
||||||
if(queued_packet) {
|
if(queued_packet) {
|
||||||
PRINTF("uip-over-mesh: new route, sending queued packet\n");
|
PRINTF("uip-over-mesh: new route, sending queued packet\n");
|
||||||
|
|
||||||
queuebuf_to_rimebuf(queued_packet);
|
queuebuf_to_packetbuf(queued_packet);
|
||||||
queuebuf_free(queued_packet);
|
queuebuf_free(queued_packet);
|
||||||
queued_packet = NULL;
|
queued_packet = NULL;
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ static void
|
||||||
gateway_announce_recv(struct trickle_conn *c)
|
gateway_announce_recv(struct trickle_conn *c)
|
||||||
{
|
{
|
||||||
struct gateway_msg *msg;
|
struct gateway_msg *msg;
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
PRINTF("%d.%d: gateway message: %d.%d\n",
|
PRINTF("%d.%d: gateway message: %d.%d\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
msg->gateway.u8[0], msg->gateway.u8[1]);
|
msg->gateway.u8[0], msg->gateway.u8[1]);
|
||||||
|
@ -163,7 +163,7 @@ uip_over_mesh_make_announced_gateway(void)
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]);
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]);
|
||||||
uip_over_mesh_set_gateway(&rimeaddr_node_addr);
|
uip_over_mesh_set_gateway(&rimeaddr_node_addr);
|
||||||
rimeaddr_copy(&(msg.gateway), &rimeaddr_node_addr);
|
rimeaddr_copy(&(msg.gateway), &rimeaddr_node_addr);
|
||||||
rimebuf_copyfrom(&msg, sizeof(struct gateway_msg));
|
packetbuf_copyfrom(&msg, sizeof(struct gateway_msg));
|
||||||
trickle_send(&gateway_announce_conn);
|
trickle_send(&gateway_announce_conn);
|
||||||
is_gateway = 1;
|
is_gateway = 1;
|
||||||
}
|
}
|
||||||
|
@ -232,13 +232,13 @@ uip_over_mesh_send(void)
|
||||||
|
|
||||||
/* uip_len = hc_compress(&uip_buf[UIP_LLH_LEN], uip_len);*/
|
/* uip_len = hc_compress(&uip_buf[UIP_LLH_LEN], uip_len);*/
|
||||||
|
|
||||||
rimebuf_copyfrom(&uip_buf[UIP_LLH_LEN], uip_len);
|
packetbuf_copyfrom(&uip_buf[UIP_LLH_LEN], uip_len);
|
||||||
|
|
||||||
rt = route_lookup(&receiver);
|
rt = route_lookup(&receiver);
|
||||||
if(rt == NULL) {
|
if(rt == NULL) {
|
||||||
PRINTF("uIP over mesh no route to %d.%d\n", receiver.u8[0], receiver.u8[1]);
|
PRINTF("uIP over mesh no route to %d.%d\n", receiver.u8[0], receiver.u8[1]);
|
||||||
if(queued_packet == NULL) {
|
if(queued_packet == NULL) {
|
||||||
queued_packet = queuebuf_new_from_rimebuf();
|
queued_packet = queuebuf_new_from_packetbuf();
|
||||||
rimeaddr_copy(&queued_receiver, &receiver);
|
rimeaddr_copy(&queued_receiver, &receiver);
|
||||||
route_discovery_discover(&route_discovery, &receiver, ROUTE_TIMEOUT);
|
route_discovery_discover(&route_discovery, &receiver, ROUTE_TIMEOUT);
|
||||||
} else if(!rimeaddr_cmp(&queued_receiver, &receiver)) {
|
} else if(!rimeaddr_cmp(&queued_receiver, &receiver)) {
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: compower.c,v 1.2 2009/03/02 22:00:41 adamdunkels Exp $
|
* $Id: compower.c,v 1.3 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
#include "contiki-conf.h"
|
#include "contiki-conf.h"
|
||||||
#include "sys/energest.h"
|
#include "sys/energest.h"
|
||||||
#include "sys/compower.h"
|
#include "sys/compower.h"
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
|
|
||||||
struct compower_activity compower_idle_activity;
|
struct compower_activity compower_idle_activity;
|
||||||
|
|
||||||
|
@ -81,15 +81,15 @@ compower_clear(struct compower_activity *e)
|
||||||
void
|
void
|
||||||
compower_attrconv(struct compower_activity *e)
|
compower_attrconv(struct compower_activity *e)
|
||||||
{
|
{
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_LISTEN_TIME, e->listen);
|
packetbuf_set_attr(PACKETBUF_ATTR_LISTEN_TIME, e->listen);
|
||||||
rimebuf_set_attr(RIMEBUF_ATTR_TRANSMIT_TIME, e->transmit);
|
packetbuf_set_attr(PACKETBUF_ATTR_TRANSMIT_TIME, e->transmit);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
compower_accumulate_attrs(struct compower_activity *e)
|
compower_accumulate_attrs(struct compower_activity *e)
|
||||||
{
|
{
|
||||||
e->listen += rimebuf_attr(RIMEBUF_ATTR_LISTEN_TIME);
|
e->listen += packetbuf_attr(PACKETBUF_ATTR_LISTEN_TIME);
|
||||||
e->transmit += rimebuf_attr(RIMEBUF_ATTR_TRANSMIT_TIME);
|
e->transmit += packetbuf_attr(PACKETBUF_ATTR_TRANSMIT_TIME);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: compower.h,v 1.1 2009/03/01 20:32:03 adamdunkels Exp $
|
* $Id: compower.h,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -116,7 +116,7 @@ void compower_clear(struct compower_activity *a);
|
||||||
*
|
*
|
||||||
* This function converts accumulated power consumption
|
* This function converts accumulated power consumption
|
||||||
* information for a communication activity to packet
|
* information for a communication activity to packet
|
||||||
* attributes (see \ref rimebufattr "packet attributes").
|
* attributes (see \ref packetbufattr "packet attributes").
|
||||||
*/
|
*/
|
||||||
void compower_attrconv(struct compower_activity *a);
|
void compower_attrconv(struct compower_activity *a);
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ void compower_attrconv(struct compower_activity *a);
|
||||||
*
|
*
|
||||||
* This function accumulates power consumption information
|
* This function accumulates power consumption information
|
||||||
* for a communication activity from packet attributes
|
* for a communication activity from packet attributes
|
||||||
* (see \ref rimebufattr "packet attributes").
|
* (see \ref packetbufattr "packet attributes").
|
||||||
*/
|
*/
|
||||||
void compower_accumulate_attrs(struct compower_activity *a);
|
void compower_accumulate_attrs(struct compower_activity *a);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sicslowmac.c,v 1.6 2008/12/10 21:26:05 c_oflynn Exp $
|
* $Id: sicslowmac.c,v 1.7 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <avr/eeprom.h>
|
#include <avr/eeprom.h>
|
||||||
#include <util/delay.h>
|
#include <util/delay.h>
|
||||||
#include "net/rime/rimebuf.h"
|
#include "net/rime/packetbuf.h"
|
||||||
#include "zmac.h"
|
#include "zmac.h"
|
||||||
#include "mac.h"
|
#include "mac.h"
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
|
@ -239,13 +239,13 @@ static uint8_t src_reversed[UIP_LLADDR_LEN];
|
||||||
void
|
void
|
||||||
sicslowmac_dataIndication(void)
|
sicslowmac_dataIndication(void)
|
||||||
{
|
{
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
|
|
||||||
|
|
||||||
#if UIP_LLADDR_LEN == 8
|
#if UIP_LLADDR_LEN == 8
|
||||||
/* Finally, get the stuff into the rime buffer.... */
|
/* Finally, get the stuff into the rime buffer.... */
|
||||||
rimebuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
packetbuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
||||||
rimebuf_set_datalen(parsed_frame->payload_length);
|
packetbuf_set_datalen(parsed_frame->payload_length);
|
||||||
|
|
||||||
memcpy(dest_reversed, (uint8_t *)parsed_frame->dest_addr, UIP_LLADDR_LEN);
|
memcpy(dest_reversed, (uint8_t *)parsed_frame->dest_addr, UIP_LLADDR_LEN);
|
||||||
memcpy(src_reversed, (uint8_t *)parsed_frame->src_addr, UIP_LLADDR_LEN);
|
memcpy(src_reversed, (uint8_t *)parsed_frame->src_addr, UIP_LLADDR_LEN);
|
||||||
|
@ -254,13 +254,13 @@ sicslowmac_dataIndication(void)
|
||||||
byte_reverse((uint8_t *)dest_reversed, UIP_LLADDR_LEN);
|
byte_reverse((uint8_t *)dest_reversed, UIP_LLADDR_LEN);
|
||||||
byte_reverse((uint8_t *)src_reversed, UIP_LLADDR_LEN);
|
byte_reverse((uint8_t *)src_reversed, UIP_LLADDR_LEN);
|
||||||
|
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
||||||
|
|
||||||
#elif UIP_CONF_USE_RUM
|
#elif UIP_CONF_USE_RUM
|
||||||
/* Finally, get the stuff into the rime buffer.... */
|
/* Finally, get the stuff into the rime buffer.... */
|
||||||
rimebuf_copyfrom(parsed_frame->payload + UIP_DATA_RUM_OFFSET, parsed_frame->payload_length - UIP_DATA_RUM_OFFSET);
|
packetbuf_copyfrom(parsed_frame->payload + UIP_DATA_RUM_OFFSET, parsed_frame->payload_length - UIP_DATA_RUM_OFFSET);
|
||||||
rimebuf_set_datalen(parsed_frame->payload_length + UIP_DATA_RUM_OFFSET);
|
packetbuf_set_datalen(parsed_frame->payload_length + UIP_DATA_RUM_OFFSET);
|
||||||
|
|
||||||
dest_reversed[0] = MSB(parsed_frame->dest_pid);
|
dest_reversed[0] = MSB(parsed_frame->dest_pid);
|
||||||
dest_reversed[1] = LSB(parsed_frame->dest_pid);
|
dest_reversed[1] = LSB(parsed_frame->dest_pid);
|
||||||
|
@ -278,8 +278,8 @@ sicslowmac_dataIndication(void)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/* Finally, get the stuff into the rime buffer.... */
|
/* Finally, get the stuff into the rime buffer.... */
|
||||||
rimebuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
packetbuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
||||||
rimebuf_set_datalen(parsed_frame->payload_length);
|
packetbuf_set_datalen(parsed_frame->payload_length);
|
||||||
|
|
||||||
dest_reversed[0] = MSB(parsed_frame->dest_pid);
|
dest_reversed[0] = MSB(parsed_frame->dest_pid);
|
||||||
dest_reversed[1] = LSB(parsed_frame->dest_pid);
|
dest_reversed[1] = LSB(parsed_frame->dest_pid);
|
||||||
|
@ -295,8 +295,8 @@ sicslowmac_dataIndication(void)
|
||||||
src_reversed[4] = MSB(parsed_frame->src_addr->addr16);
|
src_reversed[4] = MSB(parsed_frame->src_addr->addr16);
|
||||||
src_reversed[5] = LSB(parsed_frame->src_addr->addr16);
|
src_reversed[5] = LSB(parsed_frame->src_addr->addr16);
|
||||||
|
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -309,11 +309,11 @@ sicslowmac_unknownIndication(void)
|
||||||
{
|
{
|
||||||
if (sicslowmac_snifferhook) {
|
if (sicslowmac_snifferhook) {
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
|
|
||||||
/* Finally, get the stuff into the rime buffer.... */
|
/* Finally, get the stuff into the rime buffer.... */
|
||||||
rimebuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
packetbuf_copyfrom(parsed_frame->payload, parsed_frame->payload_length);
|
||||||
rimebuf_set_datalen(parsed_frame->payload_length);
|
packetbuf_set_datalen(parsed_frame->payload_length);
|
||||||
|
|
||||||
#if UIP_LLADDR_LEN == 8
|
#if UIP_LLADDR_LEN == 8
|
||||||
memcpy(dest_reversed, (uint8_t *)parsed_frame->dest_addr, UIP_LLADDR_LEN);
|
memcpy(dest_reversed, (uint8_t *)parsed_frame->dest_addr, UIP_LLADDR_LEN);
|
||||||
|
@ -323,8 +323,8 @@ sicslowmac_unknownIndication(void)
|
||||||
byte_reverse((uint8_t *)dest_reversed, UIP_LLADDR_LEN);
|
byte_reverse((uint8_t *)dest_reversed, UIP_LLADDR_LEN);
|
||||||
byte_reverse((uint8_t *)src_reversed, UIP_LLADDR_LEN);
|
byte_reverse((uint8_t *)src_reversed, UIP_LLADDR_LEN);
|
||||||
|
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
||||||
|
|
||||||
#elif UIP_CONF_USE_RUM
|
#elif UIP_CONF_USE_RUM
|
||||||
|
|
||||||
|
@ -358,8 +358,8 @@ sicslowmac_unknownIndication(void)
|
||||||
src_reversed[4] = MSB(parsed_frame->src_addr->addr16);
|
src_reversed[4] = MSB(parsed_frame->src_addr->addr16);
|
||||||
src_reversed[5] = LSB(parsed_frame->src_addr->addr16);
|
src_reversed[5] = LSB(parsed_frame->src_addr->addr16);
|
||||||
|
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)dest_reversed);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)src_reversed);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -401,13 +401,13 @@ sicslowmac_dataRequest(void)
|
||||||
frame_result_t result;
|
frame_result_t result;
|
||||||
|
|
||||||
/* Save the msduHandle in a global variable. */
|
/* Save the msduHandle in a global variable. */
|
||||||
msduHandle = rimebuf_attr(RIMEBUF_ATTR_PACKET_ID);
|
msduHandle = packetbuf_attr(PACKETBUF_ATTR_PACKET_ID);
|
||||||
|
|
||||||
/* Build the FCF. */
|
/* Build the FCF. */
|
||||||
params.fcf.frameType = DATAFRAME;
|
params.fcf.frameType = DATAFRAME;
|
||||||
params.fcf.securityEnabled = false;
|
params.fcf.securityEnabled = false;
|
||||||
params.fcf.framePending = false;
|
params.fcf.framePending = false;
|
||||||
params.fcf.ackRequired = rimebuf_attr(RIMEBUF_ATTR_RELIABLE);
|
params.fcf.ackRequired = packetbuf_attr(PACKETBUF_ATTR_RELIABLE);
|
||||||
params.fcf.panIdCompression = false;
|
params.fcf.panIdCompression = false;
|
||||||
|
|
||||||
/* Insert IEEE 802.15.4 (2003) version bit. */
|
/* Insert IEEE 802.15.4 (2003) version bit. */
|
||||||
|
@ -428,7 +428,7 @@ sicslowmac_dataRequest(void)
|
||||||
* If the output address is NULL in the Rime buf, then it is broadcast
|
* If the output address is NULL in the Rime buf, then it is broadcast
|
||||||
* on the 802.15.4 network.
|
* on the 802.15.4 network.
|
||||||
*/
|
*/
|
||||||
if(rimeaddr_cmp(rimebuf_addr(RIMEBUF_ADDR_RECEIVER), &rimeaddr_null) ) {
|
if(rimeaddr_cmp(packetbuf_addr(PACKETBUF_ADDR_RECEIVER), &rimeaddr_null) ) {
|
||||||
/* Broadcast requires short address mode. */
|
/* Broadcast requires short address mode. */
|
||||||
params.fcf.destAddrMode = SHORTADDRMODE;
|
params.fcf.destAddrMode = SHORTADDRMODE;
|
||||||
params.dest_pid = BROADCASTPANDID;
|
params.dest_pid = BROADCASTPANDID;
|
||||||
|
@ -437,7 +437,7 @@ sicslowmac_dataRequest(void)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* Phase 1.5 - end nodes send to anyone? */
|
/* Phase 1.5 - end nodes send to anyone? */
|
||||||
memcpy(¶ms.dest_addr, (uint8_t *)rimebuf_addr(RIMEBUF_ADDR_RECEIVER), LONG_ADDR_LEN);
|
memcpy(¶ms.dest_addr, (uint8_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER), LONG_ADDR_LEN);
|
||||||
|
|
||||||
/* Change from sicslowpan byte arrangement to sicslowmac */
|
/* Change from sicslowpan byte arrangement to sicslowmac */
|
||||||
byte_reverse((uint8_t*)¶ms.dest_addr.addr64, LONG_ADDR_LEN);
|
byte_reverse((uint8_t*)¶ms.dest_addr.addr64, LONG_ADDR_LEN);
|
||||||
|
@ -457,8 +457,8 @@ sicslowmac_dataRequest(void)
|
||||||
params.src_addr.addr64 = ieee15_4ManagerAddress.get_long_addr();
|
params.src_addr.addr64 = ieee15_4ManagerAddress.get_long_addr();
|
||||||
|
|
||||||
/* Copy the payload data. */
|
/* Copy the payload data. */
|
||||||
params.payload_len = rimebuf_datalen();
|
params.payload_len = packetbuf_datalen();
|
||||||
params.payload = rimebuf_dataptr();
|
params.payload = packetbuf_dataptr();
|
||||||
|
|
||||||
/* Create transmission frame. */
|
/* Create transmission frame. */
|
||||||
frame_tx_create(¶ms, &result);
|
frame_tx_create(¶ms, &result);
|
||||||
|
|
|
@ -117,10 +117,10 @@ At packet reception, the link-layer copies the 802.15.4 payload in the
|
||||||
rime buffer, and sets its length. It also stores the source and
|
rime buffer, and sets its length. It also stores the source and
|
||||||
destination link-layer addresses as two rime addresses.
|
destination link-layer addresses as two rime addresses.
|
||||||
\code
|
\code
|
||||||
rimebuf_copyfrom(&rx_frame.payload, rx_frame.payload_length);
|
packetbuf_copyfrom(&rx_frame.payload, rx_frame.payload_length);
|
||||||
rimebuf_set_datalen(rx_frame.payload_length);
|
packetbuf_set_datalen(rx_frame.payload_length);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_RECEIVER, (const rimeaddr_t *)&rx_frame.dest_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)&rx_frame.dest_addr);
|
||||||
rimebuf_set_addr(RIMEBUF_ADDR_SENDER, (const rimeaddr_t *)&rx_frame.src_addr);
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)&rx_frame.src_addr);
|
||||||
\endcode
|
\endcode
|
||||||
It then calls the sicslowpan #input function. Similarly, when the IPv6 layer
|
It then calls the sicslowpan #input function. Similarly, when the IPv6 layer
|
||||||
has a packet to send over the radio, it puts the packet in uip_buf,
|
has a packet to send over the radio, it puts the packet in uip_buf,
|
||||||
|
|
|
@ -11,6 +11,9 @@ msp430: sky.platform esb.platform # msb430.platform
|
||||||
native: native.platform netsim.platform minimal-net.platform
|
native: native.platform netsim.platform minimal-net.platform
|
||||||
avr: avr-raven.platform
|
avr: avr-raven.platform
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf [a-z]*
|
||||||
|
|
||||||
%.platform:
|
%.platform:
|
||||||
@mkdir -p $*
|
@mkdir -p $*
|
||||||
@cp *.c $*
|
@cp *.c $*
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: energest-demo.c,v 1.7 2008/07/02 09:05:41 adamdunkels Exp $
|
* $Id: energest-demo.c,v 1.8 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -100,7 +100,7 @@ static int send_amount = 10;
|
||||||
static void
|
static void
|
||||||
abc_recv(struct abc_conn *c)
|
abc_recv(struct abc_conn *c)
|
||||||
{
|
{
|
||||||
struct energy_time *incoming= (struct energy_time *)rimebuf_dataptr();
|
struct energy_time *incoming= (struct energy_time *)packetbuf_dataptr();
|
||||||
read++;
|
read++;
|
||||||
if(node_id == SINK_ID) {
|
if(node_id == SINK_ID) {
|
||||||
printf("%i SICS %i %u %li %li %li %li\n", node_id, read,
|
printf("%i SICS %i %u %li %li %li %li\n", node_id, read,
|
||||||
|
@ -129,7 +129,7 @@ do_sending(void)
|
||||||
cc2420_set_txpower(1);
|
cc2420_set_txpower(1);
|
||||||
|
|
||||||
for(i = 0;i < send_amount; i++) {
|
for(i = 0;i < send_amount; i++) {
|
||||||
rimebuf_copyfrom(send_string, send_length);
|
packetbuf_copyfrom(send_string, send_length);
|
||||||
|
|
||||||
mac->on();
|
mac->on();
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
|
@ -196,7 +196,7 @@ PROCESS_THREAD(output_process, ev, data)
|
||||||
/* printf("%i SICS %i %i %li %li %li %li\n", node_id, send, */
|
/* printf("%i SICS %i %i %li %li %li %li\n", node_id, send, */
|
||||||
/* diff.source, diff.cpu, diff.lpm, diff.transmit, diff.listen); */
|
/* diff.source, diff.cpu, diff.lpm, diff.transmit, diff.listen); */
|
||||||
|
|
||||||
rimebuf_copyfrom((char*)&diff, sizeof(diff));
|
packetbuf_copyfrom((char*)&diff, sizeof(diff));
|
||||||
|
|
||||||
mac->on();
|
mac->on();
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
|
|
|
@ -26,14 +26,14 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: radio-test.c,v 1.1 2007/11/28 23:10:38 nifi Exp $
|
* $Id: radio-test.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*
|
*
|
||||||
* -----------------------------------------------------------------
|
* -----------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Author : Adam Dunkels, Joakim Eriksson, Niclas Finne
|
* Author : Adam Dunkels, Joakim Eriksson, Niclas Finne
|
||||||
* Created : 2006-03-07
|
* Created : 2006-03-07
|
||||||
* Updated : $Date: 2007/11/28 23:10:38 $
|
* Updated : $Date: 2009/03/12 21:58:21 $
|
||||||
* $Revision: 1.1 $
|
* $Revision: 1.2 $
|
||||||
*
|
*
|
||||||
* Simple application to indicate connectivity between two nodes:
|
* Simple application to indicate connectivity between two nodes:
|
||||||
*
|
*
|
||||||
|
@ -88,15 +88,15 @@ static void
|
||||||
abc_recv(struct abc_conn *c)
|
abc_recv(struct abc_conn *c)
|
||||||
{
|
{
|
||||||
/* packet received */
|
/* packet received */
|
||||||
if(rimebuf_datalen() < PACKET_SIZE
|
if(packetbuf_datalen() < PACKET_SIZE
|
||||||
|| strncmp((char *)rimebuf_dataptr(), HEADER, sizeof(HEADER))) {
|
|| strncmp((char *)packetbuf_dataptr(), HEADER, sizeof(HEADER))) {
|
||||||
/* invalid message */
|
/* invalid message */
|
||||||
leds_blink();
|
leds_blink();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
PROCESS_CONTEXT_BEGIN(&radio_test_process);
|
PROCESS_CONTEXT_BEGIN(&radio_test_process);
|
||||||
set(&recv, ON);
|
set(&recv, ON);
|
||||||
set(&other, ((char *)rimebuf_dataptr())[sizeof(HEADER)] ? ON : OFF);
|
set(&other, ((char *)packetbuf_dataptr())[sizeof(HEADER)] ? ON : OFF);
|
||||||
|
|
||||||
/* synchronize the sending to keep the nodes from sending
|
/* synchronize the sending to keep the nodes from sending
|
||||||
simultaneously */
|
simultaneously */
|
||||||
|
@ -131,10 +131,10 @@ PROCESS_THREAD(radio_test_process, ev, data)
|
||||||
etimer_reset(&send_timer);
|
etimer_reset(&send_timer);
|
||||||
|
|
||||||
/* send packet */
|
/* send packet */
|
||||||
rimebuf_copyfrom(HEADER, sizeof(HEADER));
|
packetbuf_copyfrom(HEADER, sizeof(HEADER));
|
||||||
((char *)rimebuf_dataptr())[sizeof(HEADER)] = recv.onoff;
|
((char *)packetbuf_dataptr())[sizeof(HEADER)] = recv.onoff;
|
||||||
/* send arbitrary data to fill the packet size */
|
/* send arbitrary data to fill the packet size */
|
||||||
rimebuf_set_datalen(PACKET_SIZE);
|
packetbuf_set_datalen(PACKET_SIZE);
|
||||||
set(&flash, ON);
|
set(&flash, ON);
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-abc.c,v 1.4 2009/02/07 22:38:01 adamdunkels Exp $
|
* $Id: example-abc.c,v 1.5 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,7 +53,7 @@ AUTOSTART_PROCESSES(&example_abc_process);
|
||||||
static void
|
static void
|
||||||
abc_recv(struct abc_conn *c)
|
abc_recv(struct abc_conn *c)
|
||||||
{
|
{
|
||||||
printf("abc message received '%s'\n", (char *)rimebuf_dataptr());
|
printf("abc message received '%s'\n", (char *)packetbuf_dataptr());
|
||||||
}
|
}
|
||||||
static const struct abc_callbacks abc_call = {abc_recv};
|
static const struct abc_callbacks abc_call = {abc_recv};
|
||||||
static struct abc_conn abc;
|
static struct abc_conn abc;
|
||||||
|
@ -74,7 +74,7 @@ PROCESS_THREAD(example_abc_process, ev, data)
|
||||||
|
|
||||||
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
||||||
|
|
||||||
rimebuf_copyfrom("Hello", 6);
|
packetbuf_copyfrom("Hello", 6);
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
printf("abc message sent\n");
|
printf("abc message sent\n");
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-collect.c,v 1.7 2009/03/10 14:36:48 zhitao Exp $
|
* $Id: example-collect.c,v 1.8 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,8 +60,8 @@ recv(const rimeaddr_t *originator, uint8_t seqno, uint8_t hops)
|
||||||
printf("Sink got message from %d.%d, seqno %d, hops %d: len %d '%s'\n",
|
printf("Sink got message from %d.%d, seqno %d, hops %d: len %d '%s'\n",
|
||||||
originator->u8[0], originator->u8[1],
|
originator->u8[0], originator->u8[1],
|
||||||
seqno, hops,
|
seqno, hops,
|
||||||
rimebuf_datalen(),
|
packetbuf_datalen(),
|
||||||
(char *)rimebuf_dataptr());
|
(char *)packetbuf_dataptr());
|
||||||
|
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -88,8 +88,8 @@ PROCESS_THREAD(example_collect_process, ev, data)
|
||||||
PROCESS_PAUSE();
|
PROCESS_PAUSE();
|
||||||
}
|
}
|
||||||
printf("Sending\n");
|
printf("Sending\n");
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
rimebuf_set_datalen(sprintf(rimebuf_dataptr(),
|
packetbuf_set_datalen(sprintf(packetbuf_dataptr(),
|
||||||
"%s", "Hello") + 1);
|
"%s", "Hello") + 1);
|
||||||
collect_send(&tc, 4);
|
collect_send(&tc, 4);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-mesh.c,v 1.3 2009/01/19 13:24:42 nifi Exp $
|
* $Id: example-mesh.c,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,9 +68,9 @@ recv(struct mesh_conn *c, rimeaddr_t *from, uint8_t hops)
|
||||||
{
|
{
|
||||||
printf("Data received from %d.%d: %.*s (%d)\n",
|
printf("Data received from %d.%d: %.*s (%d)\n",
|
||||||
from->u8[0], from->u8[1],
|
from->u8[0], from->u8[1],
|
||||||
rimebuf_datalen(), (char *)rimebuf_dataptr(), rimebuf_datalen());
|
packetbuf_datalen(), (char *)packetbuf_dataptr(), packetbuf_datalen());
|
||||||
|
|
||||||
rimebuf_copyfrom("Hopp", 4);
|
packetbuf_copyfrom("Hopp", 4);
|
||||||
mesh_send(&mesh, from);
|
mesh_send(&mesh, from);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ PROCESS_THREAD(example_mesh_process, ev, data)
|
||||||
* 6.
|
* 6.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rimebuf_copyfrom("Hej", 3);
|
packetbuf_copyfrom("Hej", 3);
|
||||||
addr.u8[0] = 161;
|
addr.u8[0] = 161;
|
||||||
addr.u8[1] = 161;
|
addr.u8[1] = 161;
|
||||||
mesh_send(&mesh, &addr);
|
mesh_send(&mesh, &addr);
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-meshconn.c,v 1.1 2008/01/25 18:00:50 adamdunkels Exp $
|
* $Id: example-meshconn.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,7 +77,7 @@ static void
|
||||||
recv(struct meshconn_conn *c)
|
recv(struct meshconn_conn *c)
|
||||||
{
|
{
|
||||||
printf("Data received from %.*s (%d)\n",
|
printf("Data received from %.*s (%d)\n",
|
||||||
rimebuf_datalen(), (char *)rimebuf_dataptr(), rimebuf_datalen());
|
packetbuf_datalen(), (char *)packetbuf_dataptr(), packetbuf_datalen());
|
||||||
|
|
||||||
/* meshconn_send(&meshconn, from);*/
|
/* meshconn_send(&meshconn, from);*/
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ PROCESS_THREAD(test_meshconn_process, ev, data)
|
||||||
addr.u8[1] = 0;
|
addr.u8[1] = 0;
|
||||||
meshconn_connect(&meshconn, addr);
|
meshconn_connect(&meshconn, addr);
|
||||||
|
|
||||||
rimebuf_copyfrom("Hej", 3);
|
packetbuf_copyfrom("Hej", 3);
|
||||||
meshconn_send(&meshconn, &addr);
|
meshconn_send(&meshconn, &addr);
|
||||||
}
|
}
|
||||||
PROCESS_END();
|
PROCESS_END();
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-multihop.c,v 1.2 2009/01/16 17:40:16 nifi Exp $
|
* $Id: example-multihop.c,v 1.3 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,13 +54,13 @@ static void
|
||||||
recv(struct multihop_conn *c, rimeaddr_t *sender, rimeaddr_t *prevhop,
|
recv(struct multihop_conn *c, rimeaddr_t *sender, rimeaddr_t *prevhop,
|
||||||
uint8_t hops)
|
uint8_t hops)
|
||||||
{
|
{
|
||||||
printf("multihop message received '%s'\n", (char *)rimebuf_dataptr());
|
printf("multihop message received '%s'\n", (char *)packetbuf_dataptr());
|
||||||
}
|
}
|
||||||
static rimeaddr_t *
|
static rimeaddr_t *
|
||||||
forward(struct multihop_conn *c, rimeaddr_t *originator, rimeaddr_t *dest,
|
forward(struct multihop_conn *c, rimeaddr_t *originator, rimeaddr_t *dest,
|
||||||
rimeaddr_t *prevhop, uint8_t hops)
|
rimeaddr_t *prevhop, uint8_t hops)
|
||||||
{
|
{
|
||||||
printf("Forwarding message '%s'\n", (char *)rimebuf_dataptr());
|
printf("Forwarding message '%s'\n", (char *)packetbuf_dataptr());
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static const struct multihop_callbacks multihop_call = {recv, forward};
|
static const struct multihop_callbacks multihop_call = {recv, forward};
|
||||||
|
@ -82,7 +82,7 @@ PROCESS_THREAD(example_multihop_process, ev, data)
|
||||||
|
|
||||||
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
||||||
|
|
||||||
rimebuf_copyfrom("Hej", 4);
|
packetbuf_copyfrom("Hej", 4);
|
||||||
to.u8[0] = 161;
|
to.u8[0] = 161;
|
||||||
to.u8[1] = 161;
|
to.u8[1] = 161;
|
||||||
multihop_send(&multihop, &to);
|
multihop_send(&multihop, &to);
|
||||||
|
|
|
@ -11,7 +11,7 @@ AUTOSTART_PROCESSES(&example_polite_process);
|
||||||
static void
|
static void
|
||||||
recv(struct polite_conn *c)
|
recv(struct polite_conn *c)
|
||||||
{
|
{
|
||||||
printf("recv '%s'\n", (char *)rimebuf_dataptr());
|
printf("recv '%s'\n", (char *)packetbuf_dataptr());
|
||||||
}
|
}
|
||||||
static void
|
static void
|
||||||
sent(struct polite_conn *c)
|
sent(struct polite_conn *c)
|
||||||
|
@ -39,7 +39,7 @@ PROCESS_THREAD(example_polite_process, ev, data)
|
||||||
static struct etimer et;
|
static struct etimer et;
|
||||||
etimer_set(&et, CLOCK_SECOND * 4);
|
etimer_set(&et, CLOCK_SECOND * 4);
|
||||||
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
||||||
rimebuf_copyfrom("Hej", 4);
|
packetbuf_copyfrom("Hej", 4);
|
||||||
polite_send(&c, CLOCK_SECOND * 4, 4);
|
polite_send(&c, CLOCK_SECOND * 4, 4);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-runicast.c,v 1.3 2009/03/03 12:28:39 fros4943 Exp $
|
* $Id: example-runicast.c,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -144,7 +144,7 @@ PROCESS_THREAD(test_runicast_process, ev, data)
|
||||||
if(!runicast_is_transmitting(&runicast)) {
|
if(!runicast_is_transmitting(&runicast)) {
|
||||||
rimeaddr_t recv;
|
rimeaddr_t recv;
|
||||||
|
|
||||||
rimebuf_copyfrom("Hello", 5);
|
packetbuf_copyfrom("Hello", 5);
|
||||||
recv.u8[0] = 1;
|
recv.u8[0] = 1;
|
||||||
recv.u8[1] = 0;
|
recv.u8[1] = 0;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-trickle.c,v 1.1 2008/01/25 18:00:51 adamdunkels Exp $
|
* $Id: example-trickle.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,7 +55,7 @@ trickle_recv(struct trickle_conn *c)
|
||||||
{
|
{
|
||||||
printf("%d.%d: trickle message received '%s'\n",
|
printf("%d.%d: trickle message received '%s'\n",
|
||||||
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1],
|
||||||
(char *)rimebuf_dataptr());
|
(char *)packetbuf_dataptr());
|
||||||
}
|
}
|
||||||
const static struct trickle_callbacks trickle_call = {trickle_recv};
|
const static struct trickle_callbacks trickle_call = {trickle_recv};
|
||||||
static struct trickle_conn trickle;
|
static struct trickle_conn trickle;
|
||||||
|
@ -72,7 +72,7 @@ PROCESS_THREAD(example_trickle_process, ev, data)
|
||||||
PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event &&
|
PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event &&
|
||||||
data == &button_sensor);
|
data == &button_sensor);
|
||||||
|
|
||||||
rimebuf_copyfrom("Hello, world", 13);
|
packetbuf_copyfrom("Hello, world", 13);
|
||||||
trickle_send(&trickle);
|
trickle_send(&trickle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: example-unicast.c,v 1.1 2008/06/26 11:20:22 adamdunkels Exp $
|
* $Id: example-unicast.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +76,7 @@ PROCESS_THREAD(example_unicast_process, ev, data)
|
||||||
|
|
||||||
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
|
||||||
|
|
||||||
rimebuf_copyfrom("Hello", 5);
|
packetbuf_copyfrom("Hello", 5);
|
||||||
addr.u8[0] = 41;
|
addr.u8[0] = 41;
|
||||||
addr.u8[1] = 41;
|
addr.u8[1] = 41;
|
||||||
unicast_send(&uc, &addr);
|
unicast_send(&uc, &addr);
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sky-checkpoint.c,v 1.1 2009/02/14 22:53:00 adamdunkels Exp $
|
* $Id: sky-checkpoint.c,v 1.2 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,11 +75,11 @@ input_sniffer(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t *dataptr;
|
uint8_t *dataptr;
|
||||||
|
|
||||||
printf("x %d ", rimebuf_totlen());
|
printf("x %d ", packetbuf_totlen());
|
||||||
dataptr = rimebuf_dataptr();
|
dataptr = packetbuf_dataptr();
|
||||||
printf("%02x ", dataptr[0]);
|
printf("%02x ", dataptr[0]);
|
||||||
/* if(dataptr[0] == 18) {*/
|
/* if(dataptr[0] == 18) {*/
|
||||||
for(i = 1; i < rimebuf_totlen(); ++i) {
|
for(i = 1; i < packetbuf_totlen(); ++i) {
|
||||||
printf("%02x ", dataptr[i]);
|
printf("%02x ", dataptr[i]);
|
||||||
}
|
}
|
||||||
/* }*/
|
/* }*/
|
||||||
|
@ -90,8 +90,8 @@ static void
|
||||||
output_sniffer(void)
|
output_sniffer(void)
|
||||||
{
|
{
|
||||||
uint8_t *dataptr;
|
uint8_t *dataptr;
|
||||||
printf("- %d ", rimebuf_totlen());
|
printf("- %d ", packetbuf_totlen());
|
||||||
dataptr = rimebuf_dataptr();
|
dataptr = packetbuf_dataptr();
|
||||||
printf("%02x\n", dataptr[0]);
|
printf("%02x\n", dataptr[0]);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sky-shell.c,v 1.9 2009/02/14 22:53:00 adamdunkels Exp $
|
* $Id: sky-shell.c,v 1.10 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,11 +75,11 @@ input_sniffer(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t *dataptr;
|
uint8_t *dataptr;
|
||||||
|
|
||||||
printf("x %d ", rimebuf_totlen());
|
printf("x %d ", packetbuf_totlen());
|
||||||
dataptr = rimebuf_dataptr();
|
dataptr = packetbuf_dataptr();
|
||||||
printf("%02x ", dataptr[0]);
|
printf("%02x ", dataptr[0]);
|
||||||
/* if(dataptr[0] == 18) {*/
|
/* if(dataptr[0] == 18) {*/
|
||||||
for(i = 1; i < rimebuf_totlen(); ++i) {
|
for(i = 1; i < packetbuf_totlen(); ++i) {
|
||||||
printf("%02x ", dataptr[i]);
|
printf("%02x ", dataptr[i]);
|
||||||
}
|
}
|
||||||
/* }*/
|
/* }*/
|
||||||
|
@ -90,8 +90,8 @@ static void
|
||||||
output_sniffer(void)
|
output_sniffer(void)
|
||||||
{
|
{
|
||||||
uint8_t *dataptr;
|
uint8_t *dataptr;
|
||||||
printf("- %d ", rimebuf_totlen());
|
printf("- %d ", packetbuf_totlen());
|
||||||
dataptr = rimebuf_dataptr();
|
dataptr = packetbuf_dataptr();
|
||||||
printf("%02x\n", dataptr[0]);
|
printf("%02x\n", dataptr[0]);
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -26,14 +26,14 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: radio-test.c,v 1.4 2008/07/09 21:49:20 nifi Exp $
|
* $Id: radio-test.c,v 1.5 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*
|
*
|
||||||
* -----------------------------------------------------------------
|
* -----------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Author : Adam Dunkels, Joakim Eriksson, Niclas Finne
|
* Author : Adam Dunkels, Joakim Eriksson, Niclas Finne
|
||||||
* Created : 2006-03-07
|
* Created : 2006-03-07
|
||||||
* Updated : $Date: 2008/07/09 21:49:20 $
|
* Updated : $Date: 2009/03/12 21:58:21 $
|
||||||
* $Revision: 1.4 $
|
* $Revision: 1.5 $
|
||||||
*
|
*
|
||||||
* Simple application to indicate connectivity between two nodes:
|
* Simple application to indicate connectivity between two nodes:
|
||||||
*
|
*
|
||||||
|
@ -91,14 +91,14 @@ static void
|
||||||
abc_recv(struct abc_conn *c)
|
abc_recv(struct abc_conn *c)
|
||||||
{
|
{
|
||||||
/* packet received */
|
/* packet received */
|
||||||
if(rimebuf_datalen() < PACKET_SIZE
|
if(packetbuf_datalen() < PACKET_SIZE
|
||||||
|| strncmp((char *)rimebuf_dataptr(), HEADER, sizeof(HEADER))) {
|
|| strncmp((char *)packetbuf_dataptr(), HEADER, sizeof(HEADER))) {
|
||||||
/* invalid message */
|
/* invalid message */
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
PROCESS_CONTEXT_BEGIN(&radio_test_process);
|
PROCESS_CONTEXT_BEGIN(&radio_test_process);
|
||||||
set(&recv, ON);
|
set(&recv, ON);
|
||||||
set(&other, ((char *)rimebuf_dataptr())[sizeof(HEADER)] ? ON : OFF);
|
set(&other, ((char *)packetbuf_dataptr())[sizeof(HEADER)] ? ON : OFF);
|
||||||
|
|
||||||
/* synchronize the sending to keep the nodes from sending
|
/* synchronize the sending to keep the nodes from sending
|
||||||
simultaneously */
|
simultaneously */
|
||||||
|
@ -137,10 +137,10 @@ PROCESS_THREAD(radio_test_process, ev, data)
|
||||||
etimer_reset(&send_timer);
|
etimer_reset(&send_timer);
|
||||||
|
|
||||||
/* send packet */
|
/* send packet */
|
||||||
rimebuf_copyfrom(HEADER, sizeof(HEADER));
|
packetbuf_copyfrom(HEADER, sizeof(HEADER));
|
||||||
((char *)rimebuf_dataptr())[sizeof(HEADER)] = recv.onoff;
|
((char *)packetbuf_dataptr())[sizeof(HEADER)] = recv.onoff;
|
||||||
/* send arbitrary data to fill the packet size */
|
/* send arbitrary data to fill the packet size */
|
||||||
rimebuf_set_datalen(PACKET_SIZE);
|
packetbuf_set_datalen(PACKET_SIZE);
|
||||||
set(&flash, ON);
|
set(&flash, ON);
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: sky-collect.c,v 1.8 2008/12/02 08:09:46 adamdunkels Exp $
|
* $Id: sky-collect.c,v 1.9 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,7 +164,7 @@ recv(const rimeaddr_t *originator, uint8_t seqno, uint8_t hops)
|
||||||
{
|
{
|
||||||
struct sky_collect_msg *msg;
|
struct sky_collect_msg *msg;
|
||||||
|
|
||||||
msg = rimebuf_dataptr();
|
msg = packetbuf_dataptr();
|
||||||
printf("%u %u %u %u %u %u %u %u %u %u %u %lu %lu %lu %lu %lu ",
|
printf("%u %u %u %u %u %u %u %u %u %u %u %lu %lu %lu %lu %lu ",
|
||||||
(originator->u8[1] << 8) + originator->u8[0],
|
(originator->u8[1] << 8) + originator->u8[0],
|
||||||
seqno, hops,
|
seqno, hops,
|
||||||
|
@ -213,9 +213,9 @@ PROCESS_THREAD(test_collect_process, ev, data)
|
||||||
struct sky_collect_msg *msg;
|
struct sky_collect_msg *msg;
|
||||||
struct neighbor *n;
|
struct neighbor *n;
|
||||||
/* leds_toggle(LEDS_BLUE);*/
|
/* leds_toggle(LEDS_BLUE);*/
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
msg = (struct sky_collect_msg *)rimebuf_dataptr();
|
msg = (struct sky_collect_msg *)packetbuf_dataptr();
|
||||||
rimebuf_set_datalen(sizeof(struct sky_collect_msg));
|
packetbuf_set_datalen(sizeof(struct sky_collect_msg));
|
||||||
msg->light1 = sensors_light1();
|
msg->light1 = sensors_light1();
|
||||||
msg->light2 = sensors_light2();
|
msg->light2 = sensors_light2();
|
||||||
msg->temperature = sht11_temp();
|
msg->temperature = sht11_temp();
|
||||||
|
|
|
@ -70,7 +70,7 @@ typedef int32_t s32_t;
|
||||||
#define CLIF
|
#define CLIF
|
||||||
|
|
||||||
#define RIMEADDR_CONF_SIZE 8
|
#define RIMEADDR_CONF_SIZE 8
|
||||||
#define RIMEBUF_CONF_HDR_SIZE 0
|
#define PACKETBUF_CONF_HDR_SIZE 0
|
||||||
|
|
||||||
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
||||||
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
||||||
|
|
|
@ -330,12 +330,12 @@ void mac_LowpanToEthernet(void)
|
||||||
} else {
|
} else {
|
||||||
//Otherwise we have a real address
|
//Otherwise we have a real address
|
||||||
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->dest.addr[0]),
|
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->dest.addr[0]),
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->src.addr[0]),
|
mac_createEthernetAddr((uint8_t *) &(ETHBUF(uip_buf)->src.addr[0]),
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
|
|
||||||
//We only do address translation in network mode!
|
//We only do address translation in network mode!
|
||||||
if (usbstick_mode.translate) {
|
if (usbstick_mode.translate) {
|
||||||
|
@ -731,7 +731,7 @@ void slide(uint8_t * data, uint8_t length, int16_t slide)
|
||||||
/** \brief Process a received 6lowpan packet. Hijack function.
|
/** \brief Process a received 6lowpan packet. Hijack function.
|
||||||
* \param r The MAC layer
|
* \param r The MAC layer
|
||||||
*
|
*
|
||||||
* The 6lowpan packet is put in rimebuf by the MAC. This routine calls
|
* The 6lowpan packet is put in packetbuf by the MAC. This routine calls
|
||||||
* any other needed layers (either 6lowpan, or just raw ethernet dump)
|
* any other needed layers (either 6lowpan, or just raw ethernet dump)
|
||||||
*/
|
*/
|
||||||
void mac_ethhijack(const struct mac_driver *r)
|
void mac_ethhijack(const struct mac_driver *r)
|
||||||
|
@ -830,7 +830,7 @@ void mac_logTXtoEthernet(frame_create_params_t *p,frame_result_t *frame_result)
|
||||||
/** \brief Process a received 6lowpan packet.
|
/** \brief Process a received 6lowpan packet.
|
||||||
* \param r The MAC layer
|
* \param r The MAC layer
|
||||||
*
|
*
|
||||||
* The 6lowpan packet is put in rimebuf by the MAC. This routine passes
|
* The 6lowpan packet is put in packetbuf by the MAC. This routine passes
|
||||||
* it directly to the ethernet layer without decompressing.
|
* it directly to the ethernet layer without decompressing.
|
||||||
*/
|
*/
|
||||||
void mac_802154raw(const struct mac_driver *r)
|
void mac_802154raw(const struct mac_driver *r)
|
||||||
|
@ -861,12 +861,12 @@ void mac_802154raw(const struct mac_driver *r)
|
||||||
|
|
||||||
//Otherwise we have a real address
|
//Otherwise we have a real address
|
||||||
mac_createEthernetAddr((uint8_t *) &(ETHBUF(raw_buf)->dest.addr[0]),
|
mac_createEthernetAddr((uint8_t *) &(ETHBUF(raw_buf)->dest.addr[0]),
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_RECEIVER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mac_createEthernetAddr((uint8_t *) &(ETHBUF(raw_buf)->src.addr[0]),
|
mac_createEthernetAddr((uint8_t *) &(ETHBUF(raw_buf)->src.addr[0]),
|
||||||
(uip_lladdr_t *)rimebuf_addr(RIMEBUF_ADDR_SENDER));
|
(uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
|
|
||||||
PRINTF("Low2Eth: Sending 802.15.4 packet to ethernet\n");
|
PRINTF("Low2Eth: Sending 802.15.4 packet to ethernet\n");
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ typedef int32_t s32_t;
|
||||||
#define CLIF
|
#define CLIF
|
||||||
|
|
||||||
#define RIMEADDR_CONF_SIZE 8
|
#define RIMEADDR_CONF_SIZE 8
|
||||||
#define RIMEBUF_CONF_HDR_SIZE 0
|
#define PACKETBUF_CONF_HDR_SIZE 0
|
||||||
|
|
||||||
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
||||||
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
||||||
|
|
|
@ -74,7 +74,7 @@ typedef int32_t s32_t;
|
||||||
#define CLIF
|
#define CLIF
|
||||||
|
|
||||||
#define RIMEADDR_CONF_SIZE 8
|
#define RIMEADDR_CONF_SIZE 8
|
||||||
#define RIMEBUF_CONF_HDR_SIZE 0
|
#define PACKETBUF_CONF_HDR_SIZE 0
|
||||||
|
|
||||||
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
/* 0 for IPv6, or 1 for HC1, 2 for HC01 */
|
||||||
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef __CONTIKI_CONF_H__
|
#ifndef __CONTIKI_CONF_H__
|
||||||
#define __CONTIKI_CONF_H__
|
#define __CONTIKI_CONF_H__
|
||||||
|
|
||||||
#define RIMEBUF_CONF_ATTRS_INLINE 1
|
#define PACKETBUF_CONF_ATTRS_INLINE 1
|
||||||
#define QUEUEBUF_CONF_NUM 1
|
#define QUEUEBUF_CONF_NUM 1
|
||||||
#define QUEUEBUF_CONF_REF_NUM 1
|
#define QUEUEBUF_CONF_REF_NUM 1
|
||||||
#define ROUTE_CONF_ENTRIES 4
|
#define ROUTE_CONF_ENTRIES 4
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: test-abc.c,v 1.3 2007/11/06 14:48:18 nvt-se Exp $
|
* $Id: test-abc.c,v 1.4 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,11 +53,11 @@ abc_recv(struct abc_conn *c)
|
||||||
char *s;
|
char *s;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
s = rimebuf_dataptr();
|
s = packetbuf_dataptr();
|
||||||
|
|
||||||
printf("abc message received '%s'\n", (char *)rimebuf_dataptr());
|
printf("abc message received '%s'\n", (char *)packetbuf_dataptr());
|
||||||
printf("message length: %u\n", rimebuf_datalen());
|
printf("message length: %u\n", packetbuf_datalen());
|
||||||
for (i = 0; i < rimebuf_datalen(); i++) {
|
for (i = 0; i < packetbuf_datalen(); i++) {
|
||||||
printf("0x%x ", s[i]);
|
printf("0x%x ", s[i]);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
@ -83,7 +83,7 @@ PROCESS_THREAD(test_abc_process, ev, data)
|
||||||
PROCESS_WAIT_EVENT();
|
PROCESS_WAIT_EVENT();
|
||||||
if (etimer_expired(&et)) {
|
if (etimer_expired(&et)) {
|
||||||
len = snprintf(buf, sizeof (buf), "%u", ++i);
|
len = snprintf(buf, sizeof (buf), "%u", ++i);
|
||||||
rimebuf_copyfrom(buf, len + 1);
|
packetbuf_copyfrom(buf, len + 1);
|
||||||
abc_send(&abc);
|
abc_send(&abc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki desktop OS
|
* This file is part of the Contiki desktop OS
|
||||||
*
|
*
|
||||||
* $Id: contiki-conf.h,v 1.10 2008/05/14 19:19:29 adamdunkels Exp $
|
* $Id: contiki-conf.h,v 1.11 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -107,8 +107,8 @@ typedef unsigned long clock_time_t;
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define RIMEBUF_CONF_SIZE 128
|
#define PACKETBUF_CONF_SIZE 128
|
||||||
#define RIMEBUF_CONF_HDR_SIZE 32
|
#define PACKETBUF_CONF_HDR_SIZE 32
|
||||||
|
|
||||||
#define UIP_CONF_UIP_IP4ADDR_T_WITH_U32 1
|
#define UIP_CONF_UIP_IP4ADDR_T_WITH_U32 1
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
*
|
*
|
||||||
* Author: Adam Dunkels <adam@sics.se>
|
* Author: Adam Dunkels <adam@sics.se>
|
||||||
*
|
*
|
||||||
* $Id: ethernode-rime.c,v 1.6 2007/05/22 21:09:19 adamdunkels Exp $
|
* $Id: ethernode-rime.c,v 1.7 2009/03/12 21:58:21 adamdunkels Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
|
@ -53,12 +53,12 @@ receiver(void)
|
||||||
{
|
{
|
||||||
u8_t len;
|
u8_t len;
|
||||||
|
|
||||||
rimebuf_clear();
|
packetbuf_clear();
|
||||||
|
|
||||||
len = ethernode_read(rimebuf_dataptr(), RIMEBUF_SIZE);
|
len = ethernode_read(packetbuf_dataptr(), PACKETBUF_SIZE);
|
||||||
|
|
||||||
if(len > 0) {
|
if(len > 0) {
|
||||||
rimebuf_set_datalen(len);
|
packetbuf_set_datalen(len);
|
||||||
rime_input();
|
rime_input();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ receiver(void)
|
||||||
void
|
void
|
||||||
ethernode_rime_send(void)
|
ethernode_rime_send(void)
|
||||||
{
|
{
|
||||||
ethernode_send_buf(rimebuf_hdrptr(), rimebuf_totlen());
|
ethernode_send_buf(packetbuf_hdrptr(), packetbuf_totlen());
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* -*- C -*- */
|
/* -*- C -*- */
|
||||||
/* @(#)$Id: contiki-conf.h,v 1.40 2009/03/09 08:19:07 julienabeille Exp $ */
|
/* @(#)$Id: contiki-conf.h,v 1.41 2009/03/12 21:58:21 adamdunkels Exp $ */
|
||||||
|
|
||||||
#ifndef CONTIKI_CONF_H
|
#ifndef CONTIKI_CONF_H
|
||||||
#define CONTIKI_CONF_H
|
#define CONTIKI_CONF_H
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
#define XMAC_CONF_ANNOUNCEMENTS 1
|
#define XMAC_CONF_ANNOUNCEMENTS 1
|
||||||
#define RIME_CONF_NO_POLITE_ANNOUCEMENTS 1
|
#define RIME_CONF_NO_POLITE_ANNOUCEMENTS 1
|
||||||
|
|
||||||
#define RIMEBUF_CONF_ATTRS_INLINE 1
|
#define PACKETBUF_CONF_ATTRS_INLINE 1
|
||||||
|
|
||||||
#define SHELL_VARS_CONF_RAM_BEGIN 0x1100
|
#define SHELL_VARS_CONF_RAM_BEGIN 0x1100
|
||||||
#define SHELL_VARS_CONF_RAM_END 0x2000
|
#define SHELL_VARS_CONF_RAM_END 0x2000
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
@rime = ( "abc", "collect", "ctimer", "ibc", "ipolite", "mesh", "meshconn",
|
@rime = ( "abc", "collect", "ctimer", "ibc", "ipolite", "mesh", "meshconn",
|
||||||
"mh", "neighbor-discovery", "neighbor", "nf", "polite", "queuebuf",
|
"mh", "neighbor-discovery", "neighbor", "nf", "polite", "queuebuf",
|
||||||
"rime", "rimeaddr", "rimebuf", "rimestats", "rmesh", "rmh",
|
"rime", "rimeaddr", "packetbuf", "rimestats", "rmesh", "rmh",
|
||||||
"route-discovery", "route", "ruc", "rucb",
|
"route-discovery", "route", "ruc", "rucb",
|
||||||
"rudolph0", "rudolph1", "rudolph2", "sabc", "sibc", "suc",
|
"rudolph0", "rudolph1", "rudolph2", "sabc", "sibc", "suc",
|
||||||
"trickle", "uc", "timesynch", "nullmac", "xmac" );
|
"trickle", "uc", "timesynch", "nullmac", "xmac" );
|
||||||
|
|
Loading…
Reference in a new issue