From 8287215c82262c97a61678a2c4ad8b7337a4b81d Mon Sep 17 00:00:00 2001 From: adamdunkels Date: Mon, 17 Dec 2007 09:12:16 +0000 Subject: [PATCH] Removed obsolete, unused files --- core/net/rime/abc-udp.c | 70 ------------------- core/net/rime/abc-udp.h | 53 --------------- core/net/rime/ccsabc.c | 97 -------------------------- core/net/rime/ccsabc.h | 70 ------------------- core/net/rime/uabc.c | 137 ------------------------------------- core/net/rime/uabc.h | 88 ------------------------ core/net/rime/uibc.c | 146 ---------------------------------------- core/net/rime/uibc.h | 86 ----------------------- 8 files changed, 747 deletions(-) delete mode 100644 core/net/rime/abc-udp.c delete mode 100644 core/net/rime/abc-udp.h delete mode 100644 core/net/rime/ccsabc.c delete mode 100644 core/net/rime/ccsabc.h delete mode 100644 core/net/rime/uabc.c delete mode 100644 core/net/rime/uabc.h delete mode 100644 core/net/rime/uibc.c delete mode 100644 core/net/rime/uibc.h diff --git a/core/net/rime/abc-udp.c b/core/net/rime/abc-udp.c deleted file mode 100644 index 501e831cc..000000000 --- a/core/net/rime/abc-udp.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2006, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: abc-udp.c,v 1.4 2007/03/15 09:56:00 adamdunkels Exp $ - */ - -/** - * \file - * A Rime driver that uses UDP local broadcasts. - * \author - * Adam Dunkels - */ - -#include "net/rime.h" -#include "contiki-net.h" - -#define PORT 8096 -static struct uip_udp_conn *c; -/*---------------------------------------------------------------------------*/ -PROCESS(abc_udp_process, "abc_udp"); -PROCESS_THREAD(abc_udp_process, ev, data) -{ - - c = udp_new(&uip_broadcast_addr, HTONS(PORT), NULL); - - PROCESS_BEGIN(); - - while(1) { - PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event && uip_newdata()); - DEBUGF(0, "%d: abc_udp_process: new data %p\n", node_id, data); - rimebuf_copyfrom(uip_appdata, uip_datalen()); - abc_input_packet(); - } - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ -void -abc_driver_send(void) -{ - uip_udp_packet_send(c, rimebuf_hdrptr(), rimebuf_totlen()); -} -/*---------------------------------------------------------------------------*/ diff --git a/core/net/rime/abc-udp.h b/core/net/rime/abc-udp.h deleted file mode 100644 index 6cc501c0d..000000000 --- a/core/net/rime/abc-udp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: abc-udp.h,v 1.1 2007/03/13 13:02:33 adamdunkels Exp $ - */ - -/** - * \addtogroup rime - * @{ - */ - -/** - * \file - * Header file for a Rime driver that uses UDP local broadcasts. - * \author - * Adam Dunkels - */ - -#ifndef __ABC_UDP_H__ -#define __ABC_UDP_H__ - -PROCESS_NAME(abc_udp_process); - -#endif /* __ABC_UDP_H__ */ - -/** @} */ diff --git a/core/net/rime/ccsabc.c b/core/net/rime/ccsabc.c deleted file mode 100644 index e99e2fbc4..000000000 --- a/core/net/rime/ccsabc.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: ccsabc.c,v 1.4 2007/03/19 22:10:16 adamdunkels Exp $ - */ - -/** - * \file - * Congestion-Controlled Stubborn Anonymous BroadCast (ccsabc) - * \author - * Adam Dunkels - */ - -#include "net/rime/ccsabc.h" - -#define STATE_LISTENPERIOD 0 -#define STATE_SENDINGPERIOD 1 - -/*---------------------------------------------------------------------------*/ -static void -recv_from_sabc(struct sabc_conn *sabc) -{ - struct ccsabc_conn *c = (struct ccsabc_conn *)sabc; - if(c->u->recv != NULL) { - c->u->recv(c); - } -} -/*---------------------------------------------------------------------------*/ -static void -sent_from_sabc(struct sabc_conn *sabc) -{ - struct ccsabc_conn *c = (struct ccsabc_conn *)sabc; - if(c->u->sent != NULL) { - c->u->sent(c); - } -} -/*---------------------------------------------------------------------------*/ -static const struct sabc_callbacks ccsabc = {recv_from_sabc, sent_from_sabc}; -/*---------------------------------------------------------------------------*/ -void -ccsabc_open(struct ccsabc_conn *c, u16_t channel, - const struct ccsabc_callbacks *u) -{ - sabc_open(&c->c, channel, &ccsabc); -} -/*---------------------------------------------------------------------------*/ -void -ccsabc_close(struct ccsabc_conn *c) -{ - sabc_close(&c->c); -} -/*---------------------------------------------------------------------------*/ -int -ccsabc_send_stubborn(struct ccsabc_conn *c, clock_time_t t) -{ - return sabc_send_stubborn(&c->c, t); -} -/*---------------------------------------------------------------------------*/ -void -ccsabc_cancel(struct ccsabc_conn *c) -{ - sabc_cancel(&c->c); -} -/*---------------------------------------------------------------------------*/ -void -ccsabc_set_timer(struct ccsabc_conn *c, clock_time_t t) -{ - sabc_set_timer(&c->c, t); -} -/*---------------------------------------------------------------------------*/ diff --git a/core/net/rime/ccsabc.h b/core/net/rime/ccsabc.h deleted file mode 100644 index 76354016e..000000000 --- a/core/net/rime/ccsabc.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: ccsabc.h,v 1.4 2007/03/19 22:10:16 adamdunkels Exp $ - */ - -/** - * \file - * Congestion-Controlled Stubborn Anonymous BroadCast (ccsabc) - * \author - * Adam Dunkels - */ - -#ifndef __CCSABC_H__ -#define __CCSABC_H__ - -#include "net/rime.h" -#include "net/rime/sabc.h" - -struct ccsabc_conn; - -struct ccsabc_callbacks { - void (* recv)(struct ccsabc_conn *c); - void (* sent)(struct ccsabc_conn *c); -}; - -struct ccsabc_conn { - struct sabc_conn conn; - const struct ccsabc_callbacks *u; - unsigned char state; - unsigned char c; -}; - -void ccsabc_open(struct ccsabc_conn *c, u16_t channel, - const struct ccsabc_callbacks *u); -void ccsabc_close(struct ccsabc_conn *c); - -int ccsabc_send_stubborn(struct ccsabc_conn *c, clock_time_t t); -void ccsabc_cancel(struct ccsabc_conn *c); - -void ccsabc_set_timer(struct ccsabc_conn *c, clock_time_t t); - -#endif /* __CCSABC_H__ */ diff --git a/core/net/rime/uabc.c b/core/net/rime/uabc.c deleted file mode 100644 index ee4a358d4..000000000 --- a/core/net/rime/uabc.c +++ /dev/null @@ -1,137 +0,0 @@ -/** - * \addtogroup rimeuabc - * @{ - */ - -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: uabc.c,v 1.6 2007/05/15 08:09:21 adamdunkels Exp $ - */ - -/** - * \file - * Unique Anonymous best effort local area BroadCast (uabc) - * \author - * Adam Dunkels - */ - -#include "net/rime.h" -#include "net/rime/uabc.h" -#include "lib/rand.h" - -#include - -/*---------------------------------------------------------------------------*/ -static void -recv(struct abc_conn *abc) -{ - struct uabc_conn *c = (struct uabc_conn *)abc; - if(c->q != NULL && - rimebuf_datalen() == queuebuf_datalen(c->q) && - memcmp(rimebuf_dataptr(), queuebuf_dataptr(c->q), - rimebuf_datalen()) == 0) { - /* We received a copy of our own packet, so we do not send out - packet. */ - queuebuf_free(c->q); - c->q = NULL; - ctimer_stop(&c->t); - if(c->cb->dropped) { - c->cb->dropped(c); - } - } - if(c->cb->recv) { - c->cb->recv(c); - } -} -/*---------------------------------------------------------------------------*/ -static void -send(void *ptr) -{ - struct uabc_conn *c = ptr; - - if(c->q != NULL) { - queuebuf_to_rimebuf(c->q); - queuebuf_free(c->q); - c->q = NULL; - abc_send(&c->c); - if(c->cb->sent) { - c->cb->sent(c); - } - } -} -/*---------------------------------------------------------------------------*/ -static const struct abc_callbacks abc = { recv }; -/*---------------------------------------------------------------------------*/ -void -uabc_open(struct uabc_conn *c, u16_t channel, - const struct uabc_callbacks *cb) -{ - abc_open(&c->c, channel, &abc); - c->cb = cb; -} -/*---------------------------------------------------------------------------*/ -void -uabc_close(struct uabc_conn *c) -{ - abc_close(&c->c); - ctimer_stop(&c->t); - if(c->q != NULL) { - queuebuf_free(c->q); - c->q = NULL; - } -} -/*---------------------------------------------------------------------------*/ -int -uabc_send(struct uabc_conn *c, clock_time_t interval) -{ - if(c->q != NULL) { - /* If we are already about to send a packet, we cancel the old one. */ - queuebuf_free(c->q); - } - c->q = queuebuf_new_from_rimebuf(); - if(c->q != NULL) { - ctimer_set(&c->t, interval / 2 + (random_rand() % (interval / 2)), send, c); - return 1; - } - return 0; -} -/*---------------------------------------------------------------------------*/ -void -uabc_cancel(struct uabc_conn *c) -{ - ctimer_stop(&c->t); - if(c->q != NULL) { - queuebuf_free(c->q); - c->q = NULL; - } -} -/*---------------------------------------------------------------------------*/ -/** @} */ diff --git a/core/net/rime/uabc.h b/core/net/rime/uabc.h deleted file mode 100644 index d0a097f4c..000000000 --- a/core/net/rime/uabc.h +++ /dev/null @@ -1,88 +0,0 @@ -/** - * \addtogroup rime - * @{ - */ - -/** - * \defgroup rimeuabc Unique anonymous best effort local area broadcast - * @{ - * - * The uabc module sends one anonymous packet that is unique within a - * time interval. - * - * \section channels Channels - * - * The uabc module uses 1 channel. - * - */ - -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: uabc.h,v 1.3 2007/05/15 08:09:21 adamdunkels Exp $ - */ - -/** - * \file - * Header file for Unique Anonymous best effort local area BroadCast (uabc) - * \author - * Adam Dunkels - */ - -#ifndef __UABC_H__ -#define __UABC_H__ - -#include "net/rime.h" - -struct uabc_conn; - -struct uabc_callbacks { - void (* recv)(struct uabc_conn *c); - void (* sent)(struct uabc_conn *c); - void (* dropped)(struct uabc_conn *c); -}; - -struct uabc_conn { - struct abc_conn c; - const struct uabc_callbacks *cb; - struct ctimer t; - struct queuebuf *q; -}; - -void uabc_open(struct uabc_conn *c, u16_t channel, - const struct uabc_callbacks *cb); -void uabc_close(struct uabc_conn *c); -int uabc_send(struct uabc_conn *c, clock_time_t interval); -void uabc_cancel(struct uabc_conn *c); - -#endif /* __UABC_H__ */ - -/** @} */ -/** @} */ diff --git a/core/net/rime/uibc.c b/core/net/rime/uibc.c deleted file mode 100644 index 44a332376..000000000 --- a/core/net/rime/uibc.c +++ /dev/null @@ -1,146 +0,0 @@ -/** - * \addtogroup rimeuibc - * @{ - */ - -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: uibc.c,v 1.5 2007/03/28 19:51:54 adamdunkels Exp $ - */ - -/** - * \file - * Unique Identified best effort local area BroadCast (uibc) - * \author - * Adam Dunkels - */ - -#include "net/rime.h" -#include "net/rime/uibc.h" -#include "lib/rand.h" - -#include - -#define DEBUG 0 -#if DEBUG -#include -#define PRINTF(...) printf(__VA_ARGS__) -#else -#define PRINTF(...) -#endif - -/*---------------------------------------------------------------------------*/ -static void -recv(struct ibc_conn *ibc, rimeaddr_t *from) -{ - struct uibc_conn *c = (struct uibc_conn *)ibc; - - if(c->q != NULL) { - PRINTF("%d.%d: recv queued packet, rimebuf len %d queuebuf %d, memcmp %d\n", - rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], - rimebuf_datalen(), queuebuf_datalen(c->q), - memcmp(rimebuf_dataptr(), queuebuf_dataptr(c->q), - rimebuf_datalen())); - - if(rimebuf_datalen() == queuebuf_datalen(c->q) && - memcmp(rimebuf_dataptr(), queuebuf_dataptr(c->q), - rimebuf_datalen()) == 0) { - /* We received a copy of our own packet, so we do not send out - packet. */ - queuebuf_free(c->q); - c->q = NULL; - ctimer_stop(&c->t); - if(c->cb->dropped) { - c->cb->dropped(c); - } - } - } - if(c->cb->recv) { - PRINTF("%d.%d: uibc calling recv\n", - rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]); - c->cb->recv(c, from); - } -} -/*---------------------------------------------------------------------------*/ -static void -send(void *ptr) -{ - struct uibc_conn *c = ptr; - - if(c->q != NULL) { - queuebuf_to_rimebuf(c->q); - queuebuf_free(c->q); - c->q = NULL; - PRINTF("%d.%d: uibc sending with ibc_send\n", - rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1]); - ibc_send(&c->c); - if(c->cb->sent) { - c->cb->sent(c); - } - } -} -/*---------------------------------------------------------------------------*/ -static const struct ibc_callbacks ibc = { recv }; -/*---------------------------------------------------------------------------*/ -void -uibc_open(struct uibc_conn *c, u16_t channel, - const struct uibc_callbacks *cb) -{ - ibc_open(&c->c, channel, &ibc); - c->cb = cb; -} -/*---------------------------------------------------------------------------*/ -void -uibc_close(struct uibc_conn *c) -{ - ibc_close(&c->c); - ctimer_stop(&c->t); - if(c->q != NULL) { - queuebuf_free(c->q); - } -} -/*---------------------------------------------------------------------------*/ -int -uibc_send(struct uibc_conn *c, clock_time_t interval) -{ - if(c->q != NULL) { - /* If we are already about to send a packet, we cancel the old one. */ - queuebuf_free(c->q); - } - c->q = queuebuf_new_from_rimebuf(); - if(c->q != NULL) { - ctimer_set(&c->t, interval / 2 + (random_rand() % (interval / 2)), send, c); - return 1; - } - return 0; -} -/*---------------------------------------------------------------------------*/ -/** @} */ diff --git a/core/net/rime/uibc.h b/core/net/rime/uibc.h deleted file mode 100644 index b07f8a8a7..000000000 --- a/core/net/rime/uibc.h +++ /dev/null @@ -1,86 +0,0 @@ -/** - * \addtogroup rime - * @{ - */ - -/** - * \defgroup rimeuibc Unique identified best effort local area broadcast - * @{ - * - * The uibc module sends one packet that is unique within a time interval. - * - * \section channels Channels - * - * The uibc module uses 1 channel. - * - */ - -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * $Id: uibc.h,v 1.4 2007/03/31 18:31:29 adamdunkels Exp $ - */ - -/** - * \file - * Header file for Unique Identified best effort local area BroadCast (uibc) - * \author - * Adam Dunkels - */ - -#ifndef __UIBC_H__ -#define __UIBC_H__ - -#include "net/rime.h" - -struct uibc_conn; - -struct uibc_callbacks { - void (* recv)(struct uibc_conn *c, rimeaddr_t *from); - void (* sent)(struct uibc_conn *c); - void (* dropped)(struct uibc_conn *c); -}; - -struct uibc_conn { - struct ibc_conn c; - const struct uibc_callbacks *cb; - struct ctimer t; - struct queuebuf *q; -}; - -void uibc_open(struct uibc_conn *c, u16_t channel, - const struct uibc_callbacks *cb); -void uibc_close(struct uibc_conn *c); -int uibc_send(struct uibc_conn *c, clock_time_t interval); - -#endif /* __UIBC_H__ */ - -/** @} */ -/** @} */