Commit Graph

917 Commits

Author SHA1 Message Date
adamdunkels 605392522f Bugfixes and improvements: rtmetrics are now 16-bit clean. Added experimental feature that proactively probes neighbors that have not yet been tried out, in order to get an initial ETX for them. 2010-10-03 20:08:44 +00:00
adamdunkels d0579c8a81 Cleaned up the collect neighbor management code 2010-10-03 20:07:10 +00:00
adamdunkels b23a364397 rtmetric values should always be computed as 16-bit values 2010-10-03 20:06:25 +00:00
adamdunkels 32ba90ea4c Bugfix: make sure that neighbor exists before attempting to update tx
count.
2010-09-28 06:53:02 +00:00
joxe 77c5187a2e fixed bug where context is null but still referenced 2010-09-23 19:57:50 +00:00
joxe 494d2a3073 only compare with global addresses when selecting source for a specific destination 2010-09-23 18:17:27 +00:00
adamdunkels eed22a6f3c A number of changes to the collect code:
* Added an optional "keep alive" mechanism whereby an idle network is
periodically probed by dummy packets to maintain a recent quality
metric when there is no traffic.
* Bugfix in when new routing metrics should be advertised
* Rewrote the ACK logic so that a queuebuf is not allocated for each
ack, only for those acks generated by the sink node.
* Updated the wrap-around logic for sequence numbers: when a sequence
number wraps, it won't go back to 0. Instead, it wraps to 128. This
allows us to understand when a node has rebooted: when its seqno is <
128, it has recently rebooted.
2010-09-22 22:08:08 +00:00
adamdunkels 2cae71e89b Added a function for obtaining the link estimate and rtmetric for a neighbor 2010-09-22 22:04:55 +00:00
adamdunkels 46b2451969 Made the initial link estimate explicit 2010-09-22 22:03:21 +00:00
joxe 1dc5366b15 fixed buggy comment 2010-09-21 13:15:25 +00:00
joxe f1d19a5f9a no callback to rpl if rpl is not used 2010-09-21 13:13:09 +00:00
joxe 63ab1ffce0 clear default route when neighbour is removed 2010-09-20 15:30:12 +00:00
nvt-se 58db04ee64 Set a high penalty for packet losses. 2010-09-15 15:59:52 +00:00
nvt-se 098f4001e0 Use fixed point arithmetic in the calculations of the ETX EWMA 2010-09-15 15:10:25 +00:00
nvt-se adf6961a85 Various bug fixes and adjustments for rpl-11 2010-09-15 13:22:22 +00:00
adamdunkels 18e31f33b9 Minor tweaks. Removed debug output from CVS. 2010-09-14 06:48:36 +00:00
adamdunkels eb58968459 Added a timer to each phase structure that keeps track of for how long
a particular receiver has not ACKed packets. After some time
(currently 16 seconds), the sender will begin sending full strobe
periods again.
2010-09-13 13:39:05 +00:00
adamdunkels 591766e663 Significant improvements to the Collect protocol:
* Loop detection and untangling. Now uses in-band loop detection that
  works.

* Link quality estimation. Now starts with a conservative /
  pessimistic estimate for new links.

* Retransmissions. MAC layer and network layer retransmissions are now
  decoupled.

* Loss handling. Deals better with losses now.

* Concurrent applications. Each connection now maintains its own
  neighbor table with separated cost to sink estimates for each
  connection.
2010-09-13 13:28:14 +00:00
adamdunkels 4e0744954a Rewrite of important parts of the Collect logic: link estimation
calculation and parent selection.  This fixes a severe bug that caused
loops when packets were erroneously retransmitted due to ACK loss.
2010-09-08 19:21:45 +00:00
nifi f05952c926 Changed packet id to use 8 bit instead of 4 bit 2010-08-31 13:14:49 +00:00
dak664 12479c32bc Fix compiler warnings 2010-08-01 21:18:07 +00:00
nvt-se 11760059d3 The second predicate is not needed. 2010-07-03 23:52:02 +00:00
nvt-se 007d4a4001 Improved logic for processing DIOs 2010-06-28 14:51:23 +00:00
nifi 30db4eff52 Made QUEUEBUF_STATS configurable 2010-06-24 09:48:21 +00:00
nifi e965b74cf5 added missing include 2010-06-18 08:28:56 +00:00
nifi 4741b95858 added missing include 2010-06-16 10:10:10 +00:00
nifi 21828ad782 Changed the retransmission time to be based on the configured MAC channel check rate when the RDC has no channel check interval. 2010-06-16 10:08:30 +00:00
adamdunkels 7647cbd8aa Use the list_item_next() API 2010-06-15 19:22:25 +00:00
adamdunkels 560c84a2fe Added a function for getting the first global IPv6 address 2010-06-15 19:16:22 +00:00
nifi 01b1359b1f removed unused (and slightly problematic) code 2010-06-15 14:19:22 +00:00
adamdunkels 3fa8ffda1a Moved the modules packetbuf, queuebuf, and packetqueue from net/rime to net/, since they are not Rime-specific 2010-06-14 19:19:16 +00:00
adamdunkels 951fd78f6c ctimer moved from net/rime to sys/ 2010-06-14 18:58:45 +00:00
nvt-se fad2b1def9 Clarified the function naming for neighbor information callbacks - names now indicate where the information is from. 2010-06-14 18:35:04 +00:00
nifi adc38568ad Minor optimization: replaced init loops with memset to reduce code size 2010-06-14 13:51:13 +00:00
nifi 7499939c94 removed debug output 2010-06-14 13:07:09 +00:00
nvt-se e000b1abf3 A major update to ContikiRPL resulting in a reduced code footprint by
300 bytes, as well as cleaner protocol logic.

* Made parent management uniform.

* Simplified the DIO processing.

* Improved the Objective Function API and its documentation.

* Removed redundant code at various places.

* Improved identifier naming.

* Switched visualization from candidate parents to preferred parents only.

* Made DAO ACK transmissions configurable.

* Improved initial ETX guess by using a cached local confidence value.

* Added a periodical rank recalculation function to reduce
  the maximum stack depth.

* Increased the Trickle redundancy constant to ensure faster
  topological updates.
2010-06-14 12:44:37 +00:00
adamdunkels a890cd3d49 Moved ctimer.[ch] from their old and illogical location in core/net/rime to a more appropriate place in core/sys 2010-06-14 11:33:58 +00:00
adamdunkels 8f8393aadc Moved ctimer.[ch] from their old and illogical location in core/net/rime to a more appropriate place in core/sys 2010-06-14 07:34:36 +00:00
adamdunkels baa62e9314 Addresses are not const 2010-06-14 06:55:26 +00:00
adamdunkels 2647f879c2 Bugfix: select the best parent if current parent is NULL 2010-06-14 06:54:47 +00:00
adamdunkels 8d1680fed5 Filter duplicate packets 2010-06-14 06:52:41 +00:00
adamdunkels a6bd51f361 If a packet is lost due to NOACK or TXERR, we count the number of transmissions and we add an additional loss penalty (currently one) 2010-06-14 06:51:58 +00:00
joxe 1095997b66 made DIOs and OCP 09 compliant 2010-06-12 10:55:46 +00:00
nvt-se 75b624eb71 Refactored the code, removed void pointer arithmetic, and fixed invalid list removal after freeing of memb object. 2010-06-11 12:32:48 +00:00
nvt-se 8a43743a42 Updated declaration for rpl_alloc_dag. 2010-06-08 21:41:02 +00:00
nvt-se b1521e4950 Check correctly if a DAG already exists in the same instance. 2010-06-08 21:37:22 +00:00
adamdunkels 296c828ac2 Removed instant reaction to packet loss. Previously, a neighbor was dropped if no MAC layer ack was received. 2010-06-08 19:25:40 +00:00
nvt-se 4a08f545c9 Make the distinction between incoming and outgoing DTSN clear. 2010-06-08 16:21:54 +00:00
nvt-se b8848f29eb Replaced invalid attempt to switch preferred parent when its DS6 neighbor entry got purged. 2010-06-08 15:40:50 +00:00
nvt-se 4e61d69a49 Removed redundant code, moved the control of acceptable rank increases into a separate function. 2010-06-07 14:01:22 +00:00