LCOV - code coverage report
Current view: top level - zephyr/net - conn_mgr_monitor.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) 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 2.0-1