Commit graph

69 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
aaab082f27 Correctly print out the aaaa: address, if enabled 2010-02-06 10:00:49 +00:00
adamdunkels
f9e991c0dd Turning of the MAC protocol in the IPv4-over-mesh actually made performance worse due to broadcasts being received multiple times, which interfered with SLIP I/O 2010-02-03 01:20:47 +00:00
adamdunkels
88fb1c80c9 Do not activate the sensors by default: sensors should be activated by the applications that need them 2010-02-02 16:25:30 +00:00
adamdunkels
d0d52638b8 Disable (debugging-) initialiation of aaaa:: address; add CSMA MAC for IPv6/6lowpan 2010-02-01 11:55:04 +00:00
adamdunkels
5922402b3e Added the CSMA MAC mechanism on top of the default duty cycling
mechanism X-MAC. The CSMA is configurable with a MAC_CSMA define, just
like the MAC protocol is configurable with the MAC_DRIVER define.
2010-01-25 11:48:16 +00:00
adamdunkels
11362d0489 Remove the default list of sensors from the main() file to save space - those apps that need them can use them directly in any case 2010-01-21 11:17:08 +00:00
adamdunkels
9ae29c3be5 Added light, sht11, battery sensors; restored light and battery activation since rtimers don't work without them (at present) 2010-01-14 20:18:23 +00:00
joxe
3c0dcb45c7 fixed for updated sensors API 2010-01-14 15:50:13 +00:00
joxe
31ea888b75 fixed Sky platform for new sensor APIs 2010-01-14 14:00:38 +00:00
nifi
bb0ffe0478 moved rime initialization into rime router so it is easier to switch IPv6 routing module 2009-11-18 13:51:55 +00:00
adamdunkels
d3131e1811 Print link-local IPv6 address when booting the node 2009-10-29 22:10:59 +00:00
adamdunkels
29e8dae88c Added X-MAC support for IPv6/SICSlowpan nodes, added 802.15.4 default framing to X-MAC 2009-10-19 20:55:52 +00:00
nifi
912aba7280 added init function in MAC driver for easier configuration 2009-06-22 11:14:11 +00:00
adamdunkels
bc6c9410cc Print out the gateway's IP address more prominently 2009-05-12 17:32:49 +00:00
adamdunkels
e6215712ca When a node is configured as an IP gateway, we switch off the power-saving MAC protocolto improve performance and to avoid problems with the serial communication that X-MACs use of rtimers can cause 2009-04-29 11:46:20 +00:00
adamdunkels
2545fd9069 Hack to make DS2411 ID useable as an Ethernet MAC address (remove multicast bit) 2009-04-10 00:40:08 +00:00
nifi
76b7bf43d0 added setup for uip6 with 802.15.4 frames and routing using Rime 2009-04-06 14:12:58 +00:00
nifi
a36e529df1 added configuration for panid 2009-04-06 13:31:00 +00:00
nifi
c6b15c289e * show radio channel at startup
* only initialize timesynch when timesynch is enabled
2009-03-31 13:25:50 +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
ac9ab9c582 #include lib/random.h 2009-03-01 20:42:10 +00:00
adamdunkels
585620c102 Reverted the recent change from random_rand() to rand(). It turned out that
since libc rand() returns a signed int, there were frequently problems with
timer values wrapping. By reverting to random_rand(), we can provide a
random generator that returns an unsigned and the timer problems are solved.
2009-02-11 11:08:53 +00:00
adamdunkels
440899e4cb Seed rand() with the node ID + MAC address 2009-02-07 16:49:36 +00:00
joxe
9689a579be added DCO/CPU speed re-synch each 30 seconds 2009-02-04 19:32:20 +00:00
joxe
e5f0d786a8 fixed sky platform to use the new uart1_active api to avoid messing up last chars transmitted 2009-01-31 12:45:03 +00:00
fros4943
ebcaf8eec8 removed compilation warning due to unused is_gateway variable (outside uIP mode) 2009-01-19 13:44:04 +00:00
joxe
55280131fc added printout of MAC protocol name 2008-11-24 14:31:08 +00:00
fros4943
720357bc60 added log_message() implementation 2008-11-21 10:35:46 +00:00
adamdunkels
83155d48f9 Moved the network gateway logic to the uip-over-mesh module. 2008-11-09 12:22:04 +00:00
nvt-se
21e4b4be80 map rime address to mac address for ipv6 2008-11-06 15:14:24 +00:00
nvt-se
c5d9795f92 added initialization for uip6 2008-11-05 15:34:04 +00:00
joxe
5b1c229754 fixed battery sensor for sky platform 2008-09-18 21:29:06 +00:00
joxe
5d860b1df2 changed sleep to go into LPM3 2008-09-18 17:58:21 +00:00
joxe
8aa8e26c54 removed redundant sensor initialization, added comment 2008-09-14 20:47:30 +00:00
adamdunkels
8e5d255b5b Moved initialization of the SHT11 until after other initialization: this seems to fix a bug where the SHT11 temperature and humidity values started varying wildly. 2008-07-08 08:23:24 +00:00
adamdunkels
84e4bf7a15 Changed order of initialization to make light sensors work again: a previous change to irq.c seems to have conflicted with light sensor initialization 2008-07-07 23:44:58 +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
1586d8f36f Changed filename of the CC2420 driver from simple-cc2420 to cc2420. 2008-07-01 21:02:51 +00:00
adamdunkels
8b4179cf45 Moved ctimer_init() so that MAC protocols can use ctimers in their initialization code 2008-05-19 12:07:49 +00:00
adamdunkels
c38d43c387 Change order of initialization so that Rime is initialized before uIP-over-Rime. Send out a new gateway command if a spurious (erroneous) gateway command is received. (Note for the future: this will cause a ping-pong problem with two correct gateways in the network; need to come up with a better solution for this.) 2008-03-03 20:23:53 +00:00
adamdunkels
307fc41646 Detect if node is attached to a SLIP line to set node to become the network's gateway 2008-02-24 21:13:03 +00:00
adamdunkels
6740d95bfa Initialize serial line with 115200 bps for SLIP 2008-02-11 10:44:12 +00:00
adamdunkels
cb6bc45350 Added code for routing IP packets over low-power radios using the Rime mesh module 2008-02-03 21:03:19 +00:00
adamdunkels
c2ef303c24 Updated for the new simple_cc2420 API 2008-01-23 14:58:01 +00:00
adamdunkels
685de41feb Fixed buggy build 2008-01-19 06:57:44 +00:00
adamdunkels
34bd11905c Rewrote the timesynch code to use the Rime sniffer interface instead of the kludge of running timesynch as a MAC layer 2008-01-14 14:50:01 +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
f935be10c9 Added initalization of the serial library. Changed LPM3 to LPM2 since the current serial driver does not work with LPM3 yet (we need to add start edge detection interrupt support to fix that). 2008-01-08 08:21:03 +00:00
adamdunkels
381f5dc4cc Initialize Rime address from hardware MAC address if no node ID has been configured. Be more explicit on how Rime address is assigned from node ID. Set time synch authority level from Rime address rather than node ID. Fix bug that put CPU in LPM2 instead of LPM3. 2007-12-17 12:35:23 +00:00