Commit graph

4791 commits

Author SHA1 Message Date
nifi c20047f657 Changed the network stack to use different structures for the different layers (network_driver, mac_driver, rdc_driver, radio_driver). This helps to avoid incorrect configuration. 2010-02-23 20:09:11 +00:00
adamdunkels bb62749de7 Made debug printfs optional 2010-02-23 18:49:58 +00:00
adamdunkels 0ab2ba433f Bugfix: the wrong callback pointer was passed to higher layers. 2010-02-23 18:49:45 +00:00
adamdunkels ed52586e18 Rework of parts of the ContikiMAC code based on input from experimental results. When channel check is triggered because of a false positive, the new version checks the radio several times to make sure that there really is an incoming packet. Otherwise, the radio is switched off. Cleaned up and removed old unused code. Added a few temporary debugging mechanisms and functions. 2010-02-23 18:49:05 +00:00
adamdunkels 14bc9aa98b New and improved shell collect test: the new test sends out 10 packets from each node and counts the received packets. If less than 10 packets from each node is received, the test fails 2010-02-23 18:46:20 +00:00
adamdunkels 85a9f7db42 Fix bootup printf() with 32-bit timer values 2010-02-23 18:45:16 +00:00
adamdunkels eadfe5f3d6 Enabled 32-bit clock ticks to allow longer timeouts; experimentally disabled polite announcements in favour of a non-announcement based collect protocol 2010-02-23 18:44:52 +00:00
adamdunkels 69a5b67523 Updated netsim to new netstack API 2010-02-23 18:44:08 +00:00
adamdunkels 08f06d8039 Updated to new sensors API 2010-02-23 18:43:43 +00:00
adamdunkels 757ca59511 Added netstack init to native platform 2010-02-23 18:43:21 +00:00
adamdunkels ebea184116 Added netstack config for CC2420 radio driver, and also for cxmac RDC layer (which is not confirmed if it runs on real hardware, only tested in simulation) 2010-02-23 18:42:41 +00:00
adamdunkels 465125c5e7 Added support for 32-bit clock ticks: when reading the 32-bit value, make sure that it does not change between readouts to avoid reading right in the middle of it being updated 2010-02-23 18:41:20 +00:00
adamdunkels 50e1452564 Ugly workaround for internal error in mspgcc when applying the >= operator to two 32-bit values 2010-02-23 18:40:08 +00:00
adamdunkels 0c4c88ae66 Improved per-packet power profiling: if a packet is retransmitted, the new energy is added to the old energy so that it is possible to measure the full energy for all transmissions of the packet 2010-02-23 18:39:00 +00:00
adamdunkels ca0417a923 Added the MAC layer callback functionality so that the Rime network layer gets information from the MAC about the status of sent packets: were they successfully transmitted, or was there a collisions? How many retries were there? 2010-02-23 18:38:05 +00:00
adamdunkels f10eedab3e Added debug printout 2010-02-23 18:37:15 +00:00
adamdunkels 2d13fecea7 Improved backoff management: timer is now doubled on every transmission, until the using module calls the neighbor_discovery_start() function again. Don't cancel the transmission even if a lower value arrives (this fixes a problem with multi-hop ETX propagaion). 2010-02-23 18:36:50 +00:00
adamdunkels 0eade2886c Better loop handling: when a loop is detected, the neighbor to which the packet was originally sent gets an inflated ETX; made sure that collect without announcments work; increased timeouts, to work nicer in larger networks 2010-02-23 18:35:23 +00:00
adamdunkels a4d9d6651b Added the option to specify the old value to observers so that they can determine if the announcement should be sent out quicklier than otherwise 2010-02-23 18:32:44 +00:00
adamdunkels b746b7fc06 Reworked the Rime/Chameleon interface so that packets now always hit Rime before Chameleon. Chameleon is now only called by Rime. This makes packet sniffing easier, and allows for sniffing packets after their header has been processed by Chameleon, thereby making per-packet power profiling much easier to implement 2010-02-23 18:29:53 +00:00
adamdunkels d8cce42d28 Set the default radio driver to nullradio 2010-02-23 18:28:04 +00:00
adamdunkels 47578806b5 Removed semicolon from #define to allow the semicolon to be placed naturally after the macro is used 2010-02-23 18:27:04 +00:00
adamdunkels 4b04fdd328 Minor style fix 2010-02-23 18:26:26 +00:00
adamdunkels 1ee32c3074 Removed non-functional time synchronization code; added some experimental code for CCA checks (enabled CCA mode 1, a temporary development function for setting the CCA threshold); enable the possibility to switch off radio even if a packet is currently arriving 2010-02-23 18:24:49 +00:00
adamdunkels c4c4e8164d Enabled compilation without timesynch enabled 2010-02-23 18:22:44 +00:00
adamdunkels 2186d70c59 Added per-packet power profile tracing 2010-02-23 18:22:16 +00:00
adamdunkels 5292005962 A null radio driver that does not do anything - useful in the native port and as a template for new radio drivers 2010-02-23 18:18:53 +00:00
dak664 e695e4860d Allow build with original radio driver using $make RF230BB=0 2010-02-23 17:43:20 +00:00
dak664 7274f1d1ed Report operating channel with either radio driver 2010-02-23 17:40:09 +00:00
dak664 4ded42db1e Add sniffer and 802 frame reporting 2010-02-23 17:37:51 +00:00
dak664 64d57a3dd8 Update jackdaw to new radio driver interface 2010-02-23 17:35:49 +00:00
dak664 a64a8674bc Remove debug print 2010-02-23 02:22:25 +00:00
dak664 b4bc7fc3da Make RF230BB the default radio driver 2010-02-23 02:01:46 +00:00
dak664 cbb8621e30 update to new driver format 2010-02-22 22:23:18 +00:00
dak664 658c35df11 remove debug printf 2010-02-22 22:21:15 +00:00
fros4943 dbd1cd7b08 show contiki stack trace in error dialog, not just print to console 2010-02-21 21:50:58 +00:00
adamdunkels 5e6fd67213 Powertrace: a program that periodically prints out the power consumption; suitable for experiments or simulations that want to measure power consumption 2010-02-20 14:15:45 +00:00
adamdunkels 60425aa355 ESB uses tr1001 radio 2010-02-18 23:53:21 +00:00
adamdunkels 0b2b7bcdba Removed inadvertedly left-over include file 2010-02-18 23:52:34 +00:00
adamdunkels fa4d4db329 Use the common netstack_init 2010-02-18 23:19:03 +00:00
adamdunkels 5cf3b83733 Common initialization code for the netstack 2010-02-18 23:15:26 +00:00
adamdunkels 927aa821c3 Updated to new MAC api 2010-02-18 23:10:06 +00:00
adamdunkels a2664054c5 Always include netstack.h 2010-02-18 23:09:30 +00:00
adamdunkels 459c550cbd Updated to match the new netstack api 2010-02-18 23:04:54 +00:00
adamdunkels 51980f0be4 CC2420_CONF_AUTOACK is now defined in contiki-conf.h 2010-02-18 23:03:36 +00:00
adamdunkels 953a8c2015 Turn off timer before updating - needed to avoid bugs in ContikiMAC - not 100% sure why 2010-02-18 22:15:54 +00:00
adamdunkels f49ebfe1c4 Temporarily disabled rime route udp because it breaks with newest MAC interfaces 2010-02-18 21:53:08 +00:00
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
oliverschmidt 1817acae15 Now that the C64 mouse driver works we can activate the mouse support for this target :-) 2010-02-18 21:30:31 +00:00
adamdunkels f8c804e28b ntikiMAC: a new radio duty cycling mechanism that uses a combination
of link-layer and MAC-layer mechanisms to achieve a very low power
consumption: during idle listening the radio is switched off between
99.2% and 99.6% of the time. One unicast transmission typically adds
between 0.07% and 1.2% additional radio time, depending on packet
size.

ContikiMAC uses the standard IEEE 802.15.4 message format and adds no
additional headers.

ContikiMAC is simple: it uses periodic two-shot channel sampling
during idle listening to keep the radio on-time down. Transmissions
are done with repeated transmissions until a link-layer ACK is
received.
2010-02-18 21:26:15 +00:00