Added and updated debugging printouts and reformatted code to make it a little easier to read.
Added function prototypes to a number of functions with void arguments
Defensive programming: check for the argument being NULL.
Added a function rpl_get_parent_link_metric() for obtaining the link metric of a given parent
Fixed a bunch of compiler warnings
Added a function uip_ds6_nbr_num() for getting the number of neighbors
Bugfix: don't set the parent if the dag is NULL
Implement forwarding error handling: if a packet changes direction, we set the FWD_ERR flag. If we see the FWD_ERR flag, we drop the route that we sent it to. If we are the root node, we also initiate a global repair.
Poor man's loop reparation: reset the DIO timer and hope the neighbor learns a better route.
Loop detection via DAO: if we get a DAO from a parent, that parent thinks we are its parent. We poison it and recalulate our parents.
Make sure our parent's IP address isn't NULL.
Bugfix: must multiply with ETX divisor to turn into fixed-point format.
Check if the nexthop neighbor for a given route has disappeared. If so, we drop the route too. If we happen to be the RPL root, we also initiate a global repair as the neighbor may moved.
Fixed a few bugs in the route handling code. While bughunting, rewrote parts of the code to make its intention clearer. Also added a bunch of comments to make the logic of the code more evident.
Re-enabled the large network RPL test
A RPL regression test that tests DAO routes going towards the sink and then down
A RPL regression test that tests that a RPL network survives a temporary root loss
A RPL regression test that tests that the network survives a random rearrangement
A set of RPL regression tests that the RPL network is able to survive the replacement of one node. The different tests test different placements of the moving node, with a varying number of hops from the root
Removed debugging printout that came before a local variable declaration, which seems to have broken sdcc