From b33070e0cff0aeae1d9acb10a5ac4fec9781731a Mon Sep 17 00:00:00 2001 From: Dirk Ziegelmeier Date: Sat, 1 Oct 2016 21:13:05 +0200 Subject: [PATCH] Add documentation for bug #49139: IGMP "All Systems" vs MLD "All Nodes" inconsistency --- src/include/lwip/igmp.h | 4 +++- src/include/lwip/mld6.h | 5 ++++- src/include/lwip/netif.h | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/include/lwip/igmp.h b/src/include/lwip/igmp.h index 58c34fc3..ffd80e68 100644 --- a/src/include/lwip/igmp.h +++ b/src/include/lwip/igmp.h @@ -100,7 +100,9 @@ err_t igmp_leavegroup_netif(struct netif *netif, const ip4_addr_t *groupaddr); void igmp_tmr(void); /** @ingroup igmp - * Get list head of IGMP groups for netif + * Get list head of IGMP groups for netif. + * Note: The allsystems group IP is contained in the list as first entry. + * @see @ref netif_set_igmp_mac_filter() */ #define netif_igmp_data(netif) ((struct igmp_group *)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_IGMP)) diff --git a/src/include/lwip/mld6.h b/src/include/lwip/mld6.h index 1c724c02..7fa0797f 100644 --- a/src/include/lwip/mld6.h +++ b/src/include/lwip/mld6.h @@ -83,7 +83,10 @@ err_t mld6_leavegroup(const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr); err_t mld6_leavegroup_netif(struct netif *netif, const ip6_addr_t *groupaddr); /** @ingroup mld6 - * Get list head of MLD6 groups for netif + * 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 @ref netif_set_mld_mac_filter() */ #define netif_mld6_data(netif) ((struct mld_group *)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_MLD6)) diff --git a/src/include/lwip/netif.h b/src/include/lwip/netif.h index 6b164b4c..67a2d24d 100644 --- a/src/include/lwip/netif.h +++ b/src/include/lwip/netif.h @@ -424,11 +424,13 @@ void netif_set_link_callback(struct netif *netif, netif_status_callback_fn link_ #endif /* LWIP_NETIF_HOSTNAME */ #if LWIP_IGMP +/** @ingroup netif */ #define netif_set_igmp_mac_filter(netif, function) do { if((netif) != NULL) { (netif)->igmp_mac_filter = function; }}while(0) #define netif_get_igmp_mac_filter(netif) (((netif) != NULL) ? ((netif)->igmp_mac_filter) : NULL) #endif /* LWIP_IGMP */ #if LWIP_IPV6 && LWIP_IPV6_MLD +/** @ingroup netif */ #define netif_set_mld_mac_filter(netif, function) do { if((netif) != NULL) { (netif)->mld_mac_filter = function; }}while(0) #define netif_get_mld_mac_filter(netif) (((netif) != NULL) ? ((netif)->mld_mac_filter) : NULL) #define netif_mld_mac_filter(netif, addr, action) do { if((netif) && (netif)->mld_mac_filter) { (netif)->mld_mac_filter((netif), (addr), (action)); }}while(0)