Check for DAO fwd loop early, before we start processing DAO options
dao_output() now takes the advertised v6 prefix as a pointer argument
Slightly different retrieval of our own global v6 address

Instead of creating a copy, we return a pointer to it. This saves
us stack space and simplifies validity checks in dao_output()
Define a new ICMPv6 message type for Trickle Multicast

Pending IANA allocation, we currently use private experimentation
New uip_is_addr macros for multicast addresses
Multicast common heeader files
Datatypes and function prototypes for multicast routing table manipulation

We store multicast routes in a separate table since we don't need
as much information as we need for normal routes
Implementation of multicast routing table manipulation
We now know how to select our source address for outgoing routable multicast datagrams
RPL Multicast group management with MOP 3
Implementation of the SMRF multicast engine
Implementation of the Trickle multicast engine
Include multicast engines in the build
Implement multicast engine hooks in the uIPv6 core

  - init()
  - process incoming multicast datagram
  - IPv6->next multicast HBHO support with trickle
  - Pass ICMPv6 trickle messages to the engine
Multicast README
RPL multicast example
We don't need to declare uip_len. In fact it's better not to