Multicast listener discovery for IPv6. Aims to be compliant with RFC 2710. No support for MLDv2.
Note: The allnodes (ff01::1, ff02::1) group is assumed be received by your netif since it must always be received for correct IPv6 operation (e.g. SLAAC). Ensure the netif filters are configured accordingly!
The netif flags also need NETIF_FLAG_MLD6 flag set to enable MLD6 on a netif ("netif->flags |= NETIF_FLAG_MLD6;").
To be called from TCPIP thread.
◆ netif_mld6_data
Get list head of MLD6 groups for netif. Note: The allnodes group IP is NOT in the list, since it must always be received for correct IPv6 operation.
- See also
- netif_set_mld_mac_filter()
◆ mld6_joingroup()
Join a group on one or all network interfaces.
If the group is to be joined on all interfaces, the given group address must not have a zone set (i.e., it must have its zone index set to IP6_NO_ZONE). If the group is to be joined on one particular interface, the given group address may or may not have a zone set.
- Parameters
-
srcaddr | ipv6 address (zoned) of the network interface which should join a new group. If IP6_ADDR_ANY6, join on all netifs |
groupaddr | the ipv6 address of the group to join (possibly but not necessarily zoned) |
- Returns
- ERR_OK if group was joined on the netif(s), an err_t otherwise
◆ mld6_joingroup_netif()
Join a group on a network interface.
- Parameters
-
netif | the network interface which should join a new group. |
groupaddr | the ipv6 address of the group to join (possibly but not necessarily zoned) |
- Returns
- ERR_OK if group was joined on the netif, an err_t otherwise
◆ mld6_leavegroup()
Leave a group on a network interface.
Zoning of address follows the same rules as mld6_joingroup.
- Parameters
-
srcaddr | ipv6 address (zoned) of the network interface which should leave the group. If IP6_ADDR_ANY6, leave on all netifs |
groupaddr | the ipv6 address of the group to leave (possibly, but not necessarily zoned) |
- Returns
- ERR_OK if group was left on the netif(s), an err_t otherwise
◆ mld6_leavegroup_netif()
Leave a group on a network interface.
- Parameters
-
netif | the network interface which should leave the group. |
groupaddr | the ipv6 address of the group to leave (possibly, but not necessarily zoned) |
- Returns
- ERR_OK if group was left on the netif, an err_t otherwise