* Revamp forwarding to deal with bad routes or request new routes as
appropriate.
* Mark bad routes (rather than tossing them) as we are informed by
other hosts.
* No longer wait two ticks before making route request.
* If we have rebooted, bump seqno (gleaned from RREQs).
* Reworked filtering of RREQs.
* Use last known seqno check before responding to RREQ that we have a
route for. Never graft onto an existing but old route.
* Rename aodvconn to bcastconn for clarity and uniformity.
* Use uip_udp_packet_send where possible.
* Change a lot of debug printfs.
* Moved call to fwc_add.
* Set ttl to sensible value if AODV_COMPLIANCE.
using 2's complement arithmetic. Unfortunately C only defines
unsigned arithmetic and consequently machines that don't use 2's
complement (i.e unknown arithmetic) will have to be dealt with on a
per machine basis.
* Changes to use network byte order.
* Add RREQ forwading cache.
* Fix some const:ness and casts.
* RERR shall only delete old routes.
* Filter RREQ:s also using cc2420_check_remote().
* LRU management of routes.
* Printf format check and fix format strings.
* More info in some printfs.
* Be conservative about keeping working routes in RREQ (forward) path.
* Put some spacing between forwarded packet and RREQ.
typedef union uip_ip4addr_t {
u16_t u16[2];
u8_t u8[4];
} uip_ip4addr_t;
typedef uip_ip4addr_t uip_ipaddr_t;
This implies that one must consistently pass pointers to
uip_ipaddr_t:s and not mix and match pointers with
uip_ipaddr_t:s as was done earlier.