LCOV - code coverage report
Current view: top level - zephyr/net - mld.h Hit Total Coverage
Test: new.info Lines: 3 3 100.0 %
Date: 2024-12-21 18:13:37

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2016 Intel Corporation
       3             :  * Copyright (c) 2024 Nordic Semiconductor ASA
       4             :  *
       5             :  * SPDX-License-Identifier: Apache-2.0
       6             :  */
       7             : 
       8             : /** @file
       9             :  * @brief Multicast Listener Discovery API
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_INCLUDE_NET_MLD_H_
      13             : #define ZEPHYR_INCLUDE_NET_MLD_H_
      14             : 
      15             : /**
      16             :  * @brief MLD (Multicast Listener Discovery)
      17             :  * @defgroup mld Multicast Listener Discovery API
      18             :  * @since 1.8
      19             :  * @version 0.8.0
      20             :  * @ingroup networking
      21             :  * @{
      22             :  */
      23             : 
      24             : #include <errno.h>
      25             : 
      26             : #include <zephyr/net/net_if.h>
      27             : #include <zephyr/net/net_ip.h>
      28             : #include <zephyr/toolchain.h>
      29             : 
      30             : #ifdef __cplusplus
      31             : extern "C" {
      32             : #endif
      33             : 
      34             : /**
      35             :  * @brief Join a given multicast group.
      36             :  *
      37             :  * @param iface Network interface where join message is sent
      38             :  * @param addr Multicast group to join
      39             :  *
      40             :  * @return 0 if joining was done, <0 otherwise.
      41             :  */
      42             : #if defined(CONFIG_NET_IPV6_MLD)
      43             : int net_ipv6_mld_join(struct net_if *iface, const struct in6_addr *addr);
      44             : #else
      45             : static inline int
      46           1 : net_ipv6_mld_join(struct net_if *iface, const struct in6_addr *addr)
      47             : {
      48             :         ARG_UNUSED(addr);
      49             :         ARG_UNUSED(iface);
      50             : 
      51             :         return -ENOTSUP;
      52             : }
      53             : #endif /* CONFIG_NET_IPV6_MLD */
      54             : 
      55             : /**
      56             :  * @brief Leave a given multicast group.
      57             :  *
      58             :  * @param iface Network interface where leave message is sent
      59             :  * @param addr Multicast group to leave
      60             :  *
      61             :  * @return 0 if leaving is done, <0 otherwise.
      62             :  */
      63             : #if defined(CONFIG_NET_IPV6_MLD)
      64             : int net_ipv6_mld_leave(struct net_if *iface, const struct in6_addr *addr);
      65             : #else
      66             : static inline int
      67           1 : net_ipv6_mld_leave(struct net_if *iface, const struct in6_addr *addr)
      68             : {
      69             :         ARG_UNUSED(iface);
      70             :         ARG_UNUSED(addr);
      71             : 
      72             :         return -ENOTSUP;
      73             : }
      74             : #endif /* CONFIG_NET_IPV6_MLD */
      75             : 
      76             : #ifdef __cplusplus
      77             : }
      78             : #endif
      79             : 
      80             : /**
      81             :  * @}
      82             :  */
      83             : 
      84             : #endif /* ZEPHYR_INCLUDE_NET_MLD_H_ */

Generated by: LCOV version 1.14