LCOV - code coverage report
Current view: top level - zephyr/net - conn_mgr_monitor.h Hit Total Coverage
Test: new.info Lines: 7 7 100.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2018 Intel Corporation
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief API for monitoring network connections and interfaces.
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_INCLUDE_CONN_MGR_H_
      13             : #define ZEPHYR_INCLUDE_CONN_MGR_H_
      14             : 
      15             : #ifdef __cplusplus
      16             : extern "C" {
      17             : #endif
      18             : 
      19             : #if defined(CONFIG_NET_CONNECTION_MANAGER) || defined(__DOXYGEN__)
      20             : 
      21             : /**
      22             :  * @brief Connection Manager API
      23             :  * @defgroup conn_mgr Connection Manager API
      24             :  * @since 2.0
      25             :  * @version 0.1.0
      26             :  * @ingroup networking
      27             :  * @{
      28             :  */
      29             : 
      30             : struct net_if;
      31             : struct net_l2;
      32             : 
      33             : /**
      34             :  * @brief Resend either NET_L4_CONNECTED or NET_L4_DISCONNECTED depending on whether connectivity
      35             :  * is currently available.
      36             :  */
      37           1 : void conn_mgr_mon_resend_status(void);
      38             : 
      39             : /**
      40             :  * @brief Mark an iface to be ignored by conn_mgr.
      41             :  *
      42             :  * Ignoring an iface forces conn_mgr to consider it unready/disconnected.
      43             :  *
      44             :  * This means that events related to the iface connecting/disconnecting will not be fired,
      45             :  * and if the iface was connected before being ignored, events will be fired as though it
      46             :  * disconnected at that moment.
      47             :  *
      48             :  * @param iface iface to be ignored.
      49             :  */
      50           1 : void conn_mgr_ignore_iface(struct net_if *iface);
      51             : 
      52             : /**
      53             :  * @brief Watch (stop ignoring) an iface.
      54             :  *
      55             :  * conn_mgr will no longer be forced to consider the iface unreadly/disconnected.
      56             :  *
      57             :  * Events related to the iface connecting/disconnecting will no longer be blocked,
      58             :  * and if the iface was connected before being watched, events will be fired as though
      59             :  * it connected in that moment.
      60             :  *
      61             :  * All ifaces default to watched at boot.
      62             :  *
      63             :  * @param iface iface to no longer ignore.
      64             :  */
      65           1 : void conn_mgr_watch_iface(struct net_if *iface);
      66             : 
      67             : /**
      68             :  * @brief Check whether the provided iface is currently ignored.
      69             :  *
      70             :  * @param iface The iface to check.
      71             :  * @retval true if the iface is being ignored by conn_mgr.
      72             :  * @retval false if the iface is being watched by conn_mgr.
      73             :  */
      74           1 : bool conn_mgr_is_iface_ignored(struct net_if *iface);
      75             : 
      76             : /**
      77             :  * @brief Mark an L2 to be ignored by conn_mgr.
      78             :  *
      79             :  * This is a wrapper for conn_mgr_ignore_iface that ignores all ifaces that use the L2.
      80             :  *
      81             :  * @param l2 L2 to be ignored.
      82             :  */
      83           1 : void conn_mgr_ignore_l2(const struct net_l2 *l2);
      84             : 
      85             : /**
      86             :  * @brief Watch (stop ignoring) an L2.
      87             :  *
      88             :  *  This is a wrapper for conn_mgr_watch_iface that watches all ifaces that use the L2.
      89             :  *
      90             :  * @param l2 L2 to watch.
      91             :  */
      92           1 : void conn_mgr_watch_l2(const struct net_l2 *l2);
      93             : 
      94             : /**
      95             :  * @}
      96             :  */
      97             : 
      98             : #else
      99             : 
     100             : #define conn_mgr_mon_resend_status(...)
     101             : #define conn_mgr_ignore_iface(...)
     102             : #define conn_mgr_watch_iface(...)
     103             : #define conn_mgr_ignore_l2(...)
     104             : #define conn_mgr_watch_l2(...)
     105             : 
     106             : #endif /* CONFIG_NET_CONNECTION_MANAGER */
     107             : 
     108             : #ifdef __cplusplus
     109             : }
     110             : #endif
     111             : 
     112             : #endif /* ZEPHYR_INCLUDE_CONN_MGR_H_ */

Generated by: LCOV version 1.14