This patch rebases @jgallagher's to the tip of the main branch,
adding support for IPv6 multicast groups. As in the original PR,
it is only possible to join groups by sending an initial MLDv2
Report packet. It is not yet possible to resend the change report,
leave groups, respond to queries, etc.
The Ipv6HopByHopRepr was previously the same as an Ipv6ExtHeader.
However, the RFC says that hop-by-hop options might change, which is not
possible with the current implementation.
I added a representatation for the Hop-by-Hop header, which has an
heapless Vec of parsed options. This way, we can modify the options when
needed.
The function of the Ipv6ExtHeader struct is now purely for parsing the
ext header type and the length. It also returns a pointer to the data it
holds, which must be parsed by the correct extension header
representations.
The relation table will containt the next hop for each node in the RPL
DODAG. For MOP1, this is the parent of each node. For MOP2, this is a
neighbor of a sender.
Signed-off-by: Thibaut Vandervelden <thvdveld@vub.be>