Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

MLD6

MLD6
[IPv6]

Multicast listener discovery for IPv6. More...

Functions

err_t mld6_joingroup (const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr)
 Join a group on one or all network interfaces.
err_t mld6_joingroup_netif (struct netif *netif, const ip6_addr_t *groupaddr)
 Join a group on a network interface.
err_t mld6_leavegroup (const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr)
 Leave a group on a network interface.
err_t mld6_leavegroup_netif (struct netif *netif, const ip6_addr_t *groupaddr)
 Leave a group on a network interface.

Detailed Description

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.


Function Documentation

err_t mld6_joingroup ( const ip6_addr_t srcaddr,
const ip6_addr_t groupaddr 
)

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:
srcaddripv6 address (zoned) of the network interface which should join a new group. If IP6_ADDR_ANY6, join on all netifs
groupaddrthe 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

Definition at line 315 of file lwip_mld6.c.

err_t mld6_joingroup_netif ( struct netif netif,
const ip6_addr_t groupaddr 
)

Join a group on a network interface.

Parameters:
netifthe network interface which should join a new group.
groupaddrthe 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

Definition at line 347 of file lwip_mld6.c.

err_t mld6_leavegroup ( const ip6_addr_t srcaddr,
const ip6_addr_t groupaddr 
)

Leave a group on a network interface.

Zoning of address follows the same rules as mld6_joingroup.

Parameters:
srcaddripv6 address (zoned) of the network interface which should leave the group. If IP6_ADDR_ANY6, leave on all netifs
groupaddrthe 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

Definition at line 404 of file lwip_mld6.c.

err_t mld6_leavegroup_netif ( struct netif netif,
const ip6_addr_t groupaddr 
)

Leave a group on a network interface.

Parameters:
netifthe network interface which should leave the group.
groupaddrthe 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

Definition at line 437 of file lwip_mld6.c.