Commit Graph

179 Commits

Author SHA1 Message Date
adamdunkels
e34eb54960 A work-in-progress rework of the Contiki MAC and radio layers. The
main ideas are:

* Separates the Contiki low-layer network stack into four layers:
  network (e.g. sicslowpan / rime), Medium Access Control MAC
  (e.g. CSMA), Radio Duty Cycling RDC (e.g. ContikiMAC, X-MAC), and
  radio (e.g. cc2420).
* Introduces a new way to configure the network stack. Four #defines
  that specify what mechanism/protocol/driver to use at the four
  layers: NETSTACK_CONF_NETWORK, NETSTACK_CONF_MAC, NETSTACK_CONF_RDC,
  NETSTACK_CONF_RADIO.
* Adds a callback mechanism to inform the MAC and network layers about
  the fate of a transmitted packet: if the packet was not possible to
  transmit, the cause of the failure is reported, and if the packets
  was successfully transmitted, the number of tries before it was
  finally transmitted is reported.
* NULL-protocols at both the MAC and RDC layers: nullmac and nullrdc,
  which can be used when MAC and RDC functionality is not needed.
* Extends the radio API with three new functions that enable more
  efficient radio duty cycling protocols: channel check, pending
  packet, and receiving packet.
* New initialization mechanism, which takes advantage of the NETSTACK
  #defines.
2010-02-18 21:48:39 +00:00
adamdunkels
e455ef3533 Added the battery indicator to the sensors API 2010-01-15 08:51:21 +00:00
adamdunkels
fab672c7ba Reverted the FIFOP->FIFO change; it didn't work :( 2010-01-14 23:32:05 +00:00
adamdunkels
53edff7655 Added sensor API for the SHT11 driver 2010-01-14 20:16:33 +00:00
zhitao
93c748cc74 Bug fix for mysterious packet loss : check FIFO pin instead of FIFOP pin for any unread RX FIFO data;
Added protection of packet timestamp across interrupts. Note that race condition can still occur as interrupts and self-scheduled reads of the RX FIFO interleave in certain unusual patterns. More investigation is needed.
2009-12-11 18:32:54 +00:00
adamdunkels
6815e2a53f Code style fix 2009-12-05 11:26:20 +00:00
fros4943
9cc57c4324 generic radio return values
+ minor bug fix: SFD may go high without transmission starting (very seldom)
2009-11-13 10:07:53 +00:00
fros4943
26bb5ecd21 added radio and MAC generic return values to allow applications finding out whether the packet was transmitted 2009-11-13 08:59:22 +00:00
fros4943
5f71e9914e configurable line buffer size + simplified interrupt handler + overflow check on line buffer 2009-11-02 12:47:06 +00:00
fros4943
6f4a537aa0 serial line ringbuf implementation + increased default buffer size to 128 bytes 2009-10-27 16:20:31 +00:00
adamdunkels
8745235a79 Minor codestyle fix 2009-09-09 21:07:42 +00:00
nifi
d4b619bcc5 Renamed SPI_WAITFOREOTxBUF to SPI_WAITFORTxREADY for clarity and generalized SPI transmission status checks to work with both AVR and MSP430 2009-09-07 11:31:26 +00:00
nifi
3a8ee769cb Changed to monitor the UART transmitter buffer ready flag instead of the UART transmitter empty flag. This almost doubles the speed of transmitting data to CC2420. Patch by James Brown. 2009-08-31 12:06:34 +00:00
nifi
c81dbb6c89 Fixed problem with the radio driver changing transmission power to max when not specified at transmission. Also fixed bug where the lock was released when setting the transmission power.
Thanks to Djamel Djenouri and Marcus Lundén for identifying the problem.
2009-08-19 15:05:05 +00:00
fros4943
18a98bb573 bug fix: we need to explicitly turn off the cc2420 listen mode after a packet transmission 2009-08-19 12:00:04 +00:00
joxe
0c8b200987 added autoack configuration for CC2420 and reversed long ieee address for address recognition 2009-07-28 22:24:53 +00:00
joxe
a71664e8d1 quick fix for driver to work with 4MHz 2009-06-23 13:12:37 +00:00
adamdunkels
92862ad2a5 Increased the number of iterations for ugly-hack-loop that checks if a transmission has started, to accommodate a faster CPU speed on the MSP430 2009-04-29 11:38:50 +00:00
nifi
a3777852d4 * Corrected address for setting key 1
* Added missing include
2009-04-07 09:22:58 +00:00
adamdunkels
0076bfe8a5 Changed the name of the 'serial' module to 'serial-line' to signify that the module is about lines of data from the serial port, not individual bytes, and to make sdcc happy 2009-03-17 15:56:32 +00:00
adamdunkels
65eb5fd4e8 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). 2009-03-12 21:58:20 +00:00
adamdunkels
f634ccfb3d Set transmission power based on packet attribute 2009-03-11 20:38:53 +00:00
adamdunkels
57b9cab27e Set RSSI, correlation, and timestamp as packet attributes for incoming packets 2009-03-02 21:59:01 +00:00
nifi
dee785ae88 added configuration of checksum and timesynch 2009-02-25 21:21:06 +00:00
adamdunkels
e34e97cd6f Minor code style fixes 2009-02-24 21:30:20 +00:00
zhitao
ae271a7f2f replaced the TMOTE_SKY macros with CONTIKI_TARGET_SKY, in conformance to the latest target hint rules 2008-11-25 09:20:54 +00:00
adamdunkels
ceb2554d2f Enabled the SHT11 register readout to allow reading the low-voltage indicator bit 2008-11-10 21:10:36 +00:00
adamdunkels
a42311dc7e Only process incoming data if the process is polled. Compile checksum checks only for IPv4. 2008-11-06 08:18:29 +00:00
joxe
673d73bfa3 added energest on all parts of leds API and some cleanup 2008-09-29 11:35:28 +00:00
adamdunkels
6a460fecdd There is problem with the CC2420 driver: under high traffic load the packets often get mangled in the receive FIFO. Not sure why this happens or how to best prevent it. As a temporary workaround, I've added an additional CRC16 check to the incoming packets. This eats two bytes from each packet, but at least protects against the erroneous packets we've seen quite a few of lately. The reception code was also cleaned up, which resulted in a smaller code size. 2008-08-26 21:44:03 +00:00
adamdunkels
f58b387bd3 Code style fixes 2008-07-08 08:23:47 +00:00
adamdunkels
1f005b6299 Moved energest.{c,h} from core/lib to core/sys: power profiling is a system mechanism, not a library 2008-07-03 23:36:30 +00:00
adamdunkels
51f4ab8b2c Changed type from off_t (that potentially conflicts with existing types.h typedefs) to unsigned long 2008-07-03 23:12:10 +00:00
adamdunkels
66876625d4 Changed name of the simple-cc2420 module to cc2420: changed all function names and variable names from simple_cc2420_* to cc2420_*. 2008-07-02 09:05:40 +00:00
adamdunkels
6b187328bd Added AES cipher constants 2008-07-02 09:03:49 +00:00
nifi
1cef019e78 Fixed typo. 2008-07-02 09:02:39 +00:00
adamdunkels
1da58b8858 Functions for interfacing the built-in AES functions of the CC2420 chip 2008-07-02 08:46:13 +00:00
adamdunkels
1586d8f36f Changed filename of the CC2420 driver from simple-cc2420 to cc2420. 2008-07-01 21:02:51 +00:00
adamdunkels
c802151453 Removed unused files 2008-07-01 20:13:24 +00:00
adamdunkels
6709823d4a Bugfix: energy estimation was not correct if a packet was sent when the radio was not in listen mode 2008-05-14 19:44:30 +00:00
adamdunkels
39abed8672 Moved old CC2420 driver to the backyard 2008-02-24 22:29:08 +00:00
adamdunkels
af48b648ee Added a function that gets called when we see SLIP input. This function can be used to determine if a node is a SLIP gateway or not. 2008-02-24 21:00:53 +00:00
adamdunkels
b001c14bf2 Code style fix 2008-02-03 20:43:35 +00:00
adamdunkels
dc70ac2584 Added calibration to channel switch if currently in receive mode. Added explicit checks for transmission activity before channel switch 2008-01-24 13:09:16 +00:00
adamdunkels
2c5964ef55 Changed default transmission behaviour to be to send without checking for channel activity first (in anticipation of radio API change that adds a CCA function to the radio API). General code cleanup. Added optional timetable profiling. Added simple_cc2420_get_channel() function, changed simple_cc2420_set_chan_pan to simple_cc2420_set_pan since we now have a dedicated simple_cc2420_set_channel 2008-01-23 14:57:19 +00:00
fros4943
0c21c8893a bugfix: wait while *either* transmitting or unvalid rssi 2008-01-17 15:38:45 +00:00
nvt-se
8a38ffea87 added declaration for simple_cc2420_get_txpower. 2008-01-15 08:53:52 +00:00
nvt-se
057cd5ac05 no ENERGEST_ON_* macro needed for levels. 2008-01-15 08:52:16 +00:00
nvt-se
c3653b96ce check if ENERGEST_CONF_LEVELDEVICE_LEVELS is set.
call ENERGEST_ON_LEVEL.
2008-01-15 08:33:02 +00:00
thiemovoigt
21c690ecae energy measurement support for TX power levels 2008-01-14 16:19:25 +00:00
adamdunkels
02ee418313 Moving timesynch.[ch] from sys/ to core/net/rime as they have more to do with Rime than with the kernel 2008-01-14 14:22:16 +00:00
adamdunkels
b356ebe009 Increased the default input line length from 40 to 80 2008-01-08 07:49:51 +00:00
adamdunkels
a0a524e128 Added watchdog_reboot() prototype 2008-01-07 14:42:35 +00:00
adamdunkels
cc6c6eee62 Added prototype for _on() and _off() functions 2008-01-07 14:41:34 +00:00
adamdunkels
d8e84abaae Made estimation of departure time better by locally measuring the average time per byte and adding this to the incoming timestamp. 2008-01-07 14:08:02 +00:00
adamdunkels
c948c97b4f Fixed timestamping to support the simple implicit network time synchronization mechanism 2007-12-16 14:30:36 +00:00
adamdunkels
d8617c7879 Added API for setting 802.15.4 channel and for measuring RSSI 2007-12-05 13:21:05 +00:00
ksb
71dc988cb9 slip.c:
char is signed but uip_buf is unsigned

spi.h:
	casted unused values to void

autostart.c:
autostart.h:
        The array itself should be const but the processes pointed to
        should not.

profile-aggregates.c:
        sizeof returns unsigned long on my platform
2007-11-18 12:27:44 +00:00
adamdunkels
e1affe5e72 Changed watchdog API by adding a start function, and renaming the restart function to periodic to make it clear that this should be called periodically 2007-11-17 10:15:50 +00:00
adamdunkels
5e7cbff22a Fixed compiler warnings 2007-11-17 10:12:19 +00:00
adamdunkels
670f65b55e Added battery sensor to the core interfaces 2007-11-13 20:36:40 +00:00
fros4943
2c1af74f37 declaration outside loop 2007-11-13 06:45:29 +00:00
adamdunkels
c5d79e8aea Added contentiondrop rimestats when a packet couldn't be sent because of failing CCA check 2007-11-12 22:26:03 +00:00
adamdunkels
127503e2a6 waiting for valid RSSI bugfix, minor cleanup 2007-10-25 13:29:21 +00:00
adamdunkels
349274cb81 Turn off listen energy accounting when transmitting 2007-10-25 09:38:15 +00:00
adamdunkels
a9e4287cbe Changed the energy estimation type ENERGEST_TYPE_RECEIVE to ENERGEST_TYPE_LISTEN to highlight that energy is spent on idle listening, not just the actual reception of packets 2007-10-25 09:30:39 +00:00
nvt-se
045225fa05 Made driver less platform-dependent and added support for msb-430. 2007-10-22 12:19:58 +00:00
nifi
ccf6bc4d9d moved ENERGEST_ON to actual transmission 2007-09-18 10:36:31 +00:00
nifi
c12af56ad0 Turn off ENERGEST_TYPE_TRANSMIT if send error 2007-09-18 10:32:00 +00:00
bg-
70ddc0f27e * If we detect a RXFIFO overflow schedule a poll of the device driver. 2007-07-30 14:54:49 +00:00
bg-
8f0d9aab89 * Change max life of neigbour entries from 60 to 30 seconds by
changing the time unit (quanta) from 4 to 2 seconds.
2007-06-28 15:08:53 +00:00
bg-
08d547780c * Some extra delay when broadcasting to break potential symmetries. 2007-06-01 14:37:02 +00:00
bg-
81b684414d * Changed implementation for dealing with retransmissions to be
strictly event driven. The old implementation was rather process
  like and the new one is still implemented as a process.
2007-05-31 10:15:57 +00:00
oliverschmidt
4aabfc10b3 Moved 6502 inline assmbler into backyard as it was never replaced by C code. 2007-05-26 22:00:12 +00:00
adamdunkels
f373c63532 Removed __ prefixes on symbols, which are reserved for C implementation; updated to new radio.h types 2007-05-25 08:06:15 +00:00
adamdunkels
c8eecc5b02 Updated types to avoid reliance on uIP includes 2007-05-25 08:05:24 +00:00
adamdunkels
b8d586b210 Enabled dropping of packets with bad CRC. Added statistics gathering. Bugfix when packets where shorter than 2 bytes 2007-05-22 20:51:30 +00:00
adamdunkels
0e4c30ccb4 Added net include to define u*_t types 2007-05-22 20:50:22 +00:00
adamdunkels
940f323801 Removed unused files 2007-05-22 17:35:28 +00:00
bg-
1009c3fabf * Literal constants REMOTE_*. 2007-05-21 14:24:51 +00:00
fros4943
41255df6b0 removed old radio_on/off functions 2007-05-18 13:13:18 +00:00
adamdunkels
af997a93e0 Moved a much code as possible away from interrupt handler; main thread code now do not need to disable interrupts. Added energy estimation code. Added radio driver structure. 2007-05-15 07:53:09 +00:00
adamdunkels
177e07992d A common structure for radio drivers. Used by MAC protocols. 2007-05-15 07:51:57 +00:00
bg-
81ad433208 * Change function uaodv_bad_route to uaodv_bad_dest. 2007-05-08 13:31:50 +00:00
bg-
b10eea85f5 * Add attribute to track bad routes and necessary support for this.
* Revamp forwarding to deal with bad routes or request new routes as
  appropriate.
2007-05-08 08:36:00 +00:00
bg-
34b1d02607 * Need to track if this was the incoming interface. 2007-05-08 08:27:34 +00:00
bg-
536703d0a2 * Check in with debug off! 2007-05-07 12:02:14 +00:00
bg-
d34db6ee92 * Change retransmission scheme both for unicasts and for
broadcasts. Only count retransmissions that actually caused
  transmission (according to the hardware).
2007-05-07 12:01:32 +00:00
bg-
cce656e23d * Print LOST in dotted format. 2007-05-07 11:44:40 +00:00
bg-
83f2b1da00 * Use uip_fw return codes.
* Use unicast retransmission scheme also for broadcasts.
2007-05-02 14:51:20 +00:00
bg-
b97a9e1c28 * Sending routing messages should bypass same routing protocol.
* Unifdef UAODV_BAD_ROUTE.

* Less confusing debug printf.
2007-04-30 09:47:09 +00:00
bg-
f2ea90ba06 * Use literal constant.
* Better debug printf.
2007-04-30 09:42:16 +00:00
bg-
e7d7e31bc9 * Better management of "DATA ACK"s. 2007-04-30 09:41:42 +00:00
bg-
cd0d83a705 * Toggle led before returning.
* Change printf.
2007-04-24 18:38:11 +00:00
bg-
9c8f01be41 * Major overhaul in order to support route sequence numbers.
* Changes to use network byte order.

* Add RREQ forwading cache.

* Fix some const:ness and casts.

* RERR shall only delete old routes.

* Filter RREQ:s also using cc2420_check_remote().

* LRU management of routes.
2007-04-04 12:12:21 +00:00
bg-
212f455b71 * Literal constants. 2007-04-04 11:46:47 +00:00
bg-
478953dcf4 * Randomised backoff when broadcasting.
* Only warn about rxfifo overflows when sending.

* More intricate tests to verify if transmission really started.
2007-04-04 11:46:10 +00:00
adamdunkels
7ce8d3920a Added radio_on() and radio_off() functions 2007-04-03 19:05:44 +00:00
adamdunkels
96d8967673 Should subtract two bytes from the length to account for the two-bytes footer 2007-03-25 17:15:30 +00:00
adamdunkels
cf24a46d2a Exported RSSI values 2007-03-22 23:56:05 +00:00