LCOV - code coverage report
Current view: top level - zephyr/net - igmp.h Coverage Total Hit
Test: new.info Lines: 100.0 % 7 7
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2021 Intel Corporation
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /** @file
       8              :  * @brief IGMP API
       9              :  */
      10              : 
      11              : #ifndef ZEPHYR_INCLUDE_NET_IGMP_H_
      12              : #define ZEPHYR_INCLUDE_NET_IGMP_H_
      13              : 
      14              : /**
      15              :  * @brief IGMP (Internet Group Management Protocol)
      16              :  * @defgroup igmp IGMP API
      17              :  * @since 2.6
      18              :  * @version 0.8.0
      19              :  * @ingroup networking
      20              :  * @{
      21              :  */
      22              : 
      23              : #include <zephyr/types.h>
      24              : 
      25              : #include <zephyr/net/net_if.h>
      26              : #include <zephyr/net/net_ip.h>
      27              : 
      28              : #ifdef __cplusplus
      29              : extern "C" {
      30              : #endif
      31              : 
      32              : /** IGMP parameters */
      33            1 : struct igmp_param {
      34            1 :         struct in_addr *source_list; /**< List of sources to include or exclude */
      35            1 :         size_t sources_len;          /**< Length of source list */
      36            1 :         bool include;                /**< Source list filter type */
      37              : };
      38              : 
      39              : /**
      40              :  * @brief Join a given multicast group.
      41              :  *
      42              :  * @param iface Network interface where join message is sent
      43              :  * @param addr Multicast group to join
      44              :  * @param param Optional parameters
      45              :  *
      46              :  * @return Return 0 if joining was done, <0 otherwise.
      47              :  */
      48              : #if defined(CONFIG_NET_IPV4_IGMP)
      49              : int net_ipv4_igmp_join(struct net_if *iface, const struct in_addr *addr,
      50              :                        const struct igmp_param *param);
      51              : #else
      52            1 : static inline int net_ipv4_igmp_join(struct net_if *iface, const struct in_addr *addr,
      53              :                                      const struct igmp_param *param)
      54              : {
      55              :         ARG_UNUSED(iface);
      56              :         ARG_UNUSED(addr);
      57              :         ARG_UNUSED(param);
      58              : 
      59              :         return -ENOSYS;
      60              : }
      61              : #endif
      62              : 
      63              : /**
      64              :  * @brief Leave a given multicast group.
      65              :  *
      66              :  * @param iface Network interface where leave message is sent
      67              :  * @param addr Multicast group to leave
      68              :  *
      69              :  * @return Return 0 if leaving is done, <0 otherwise.
      70              :  */
      71              : #if defined(CONFIG_NET_IPV4_IGMP)
      72              : int net_ipv4_igmp_leave(struct net_if *iface, const struct in_addr *addr);
      73              : #else
      74            1 : static inline int net_ipv4_igmp_leave(struct net_if *iface,
      75              :                                       const struct in_addr *addr)
      76              : {
      77              :         ARG_UNUSED(iface);
      78              :         ARG_UNUSED(addr);
      79              : 
      80              :         return -ENOSYS;
      81              : }
      82              : #endif
      83              : 
      84              : #ifdef __cplusplus
      85              : }
      86              : #endif
      87              : 
      88              : /**
      89              :  * @}
      90              :  */
      91              : 
      92              : #endif /* ZEPHYR_INCLUDE_NET_IGMP_H_ */
        

Generated by: LCOV version 2.0-1