Commit Graph

30 Commits

Author SHA1 Message Date
Adam Dunkels
45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
Csaba Kiraly
d1822b5880 collect: making some protocol parameters configurable by COLLECT_CONF_ style defines
TTL (which has a rather low default of 15), MAC level retransmissions,
overall number of retransmissions, and the header bits dedicated to these
were all fixed in the collect.h and collect.c, without a simple way to
override them.
Extracted these as COLLECT_CONF_ parameters, keeping defaults as they were
before.

Signed-off-by: Csaba Kiraly <kiraly@disi.unitn.it>
2014-01-24 12:53:16 +01:00
Adam Dunkels
bb2dcaa057 A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
Adam Dunkels
944537fccf Removed all old RCS tags in the Contiki source tree. Those RCS tags are not used any more, as we are now using git to manage the Contiki source tree 2012-10-26 15:54:49 +02:00
adamdunkels
50a3e6ea23 Increased the max ETX to allow for longer paths even with the initial conservative ETX estimate; made collect use announcements by default 2011-01-09 23:48:33 +00:00
adamdunkels
10fb99a89d Reduced the value of the max depth, so that a count-to-infinity loop will not count too long before hitting the maximum value. This is important when a network loses its sink, so that packets are not forwarded around the network for ever. 2010-12-16 22:46:34 +00:00
adamdunkels
8f745a6ea6 Added a function for obtaining the current parent 2010-11-06 14:32:10 +00:00
adamdunkels
677575fc8c Rewrote proactive link estimator to be invoked randomly instead of triggered by an empty queue; this makes network bootups because nodes are not synchronized 2010-10-28 15:36:02 +00:00
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
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
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
nifi
e965b74cf5 added missing include 2010-06-18 08:28:56 +00:00
adamdunkels
a8d8b6d31d Improved parent management: parent neighbor is retained until a better neighbor is found (with 1 ETX less than parent). Don't drop parent neighbors when loop is detected (loops are transient anyway). 2010-04-01 10:45:21 +00:00
adamdunkels
a4f9e62295 Added a parameter to collect_open() that specifies whether or not the node should be a router for packets, or only an originator of packets. Updated the collect module to the new annoucement API. 2010-03-25 08:51:07 +00:00
adamdunkels
a9bad71fbd Increased the number of bits that repressent the MAX_RETRANSMITS attribute to allow for more than 7 hop-by-hop retransmissions 2010-03-14 23:01:12 +00:00
adamdunkels
7165a3866f Significant rework of the Contiki data collection protocol:
* the new version makes use of MAC-layer feedback so that bad paths
  can be identified quicker and then avoided.

* the new code uses transport layer ACKs that contain feedback from
  the collect protocol: when a packet cannot be forwarded due to lack
  of resources, the ACK contains a flag that indicates that the packet
  could not be forwarded. ACKs also contain the routing metric of the
  sender, which improves agility in face of rapid path changes.

* loop detection and management has been improved: with higher path
  metric agility, the system is more prone to short-lived routing
  loops. Instead of dropping looping packets, the new version adjusts
  the routing metric for the routes that exhibit loops so that the
  risk for future loops is reduced.

* make use of packet attributes to inform the MAC layer of how many
  times packets should be retransmitted.
2010-02-28 09:18:01 +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
e70cf0c7c6 Rewrite of the collect module. The new version uses a packet queue for outgoing and forwarded packets so that more than one packet can be forwarded at the same time. The new version uses the packetqueue module to maintain the packet queue. 2009-04-29 20:48:57 +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
3670ef2f44 Rewrote the collect module so that it uses the announcement module rather than the neighbor-discovery module. This makes it possible to implement other annoumcement back-ends than the traditional broadcast-based neighbor discovery 2009-02-09 20:58:25 +00:00
adamdunkels
c2c3835110 Changed name of Rime module ruc to unicast 2008-07-03 21:52:25 +00:00
adamdunkels
a6682c4bfd originator address is const 2008-07-03 17:58:10 +00:00
adamdunkels
020a0c30aa Rewrote the collect module to use packet attributes instead of explicit headers 2008-06-30 09:15:22 +00:00
nifi
839b6111d6 Changed send function to return false if it was not possible to send 2008-06-26 11:38:59 +00:00
adamdunkels
d99ca27820 Changed all occurences of u8_t and u16_t to uint8_t and uint16_t 2008-02-24 22:05:27 +00:00
adamdunkels
f737127cca Minor type change 2008-01-08 07:55:00 +00:00
adamdunkels
01da62aa25 Changed local rtmetric name from 'local_rtmetric' to 'rtmetric' and updated the neighbor discovery module from nbh to neighbor-discovery 2007-12-09 15:43:09 +00:00
adamdunkels
dca1e0e446 Changed module name to 'collect' from 'tree' to better reflect the purpose of the module, rather than the particular data structure used to implement it 2007-11-28 16:04:41 +00:00