LCOV - code coverage report
Current view: top level - zephyr/bluetooth/mesh - brg_cfg.h Hit Total Coverage
Test: new.info Lines: 21 27 77.8 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2024 Nordic Semiconductor ASA
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__
       8             : #define ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__
       9             : 
      10             : #include <stdint.h>
      11             : #include <stdbool.h>
      12             : 
      13             : #ifdef __cplusplus
      14             : extern "C" {
      15             : #endif
      16             : 
      17             : /**
      18             :  * @defgroup bt_mesh_brg_cfg Bridge Configuration common header
      19             :  * @ingroup bt_mesh
      20             :  * @{
      21             :  */
      22             : 
      23             : /** Subnet Bridge states */
      24           1 : enum bt_mesh_brg_cfg_state {
      25             :         /** Subnet bridge functionality is disabled. */
      26             :         BT_MESH_BRG_CFG_DISABLED,
      27             :         /** Subnet bridge state functionality is enabled. */
      28             :         BT_MESH_BRG_CFG_ENABLED,
      29             : };
      30             : 
      31             : /* Bridging from Addr1 to Addr2. */
      32           0 : #define BT_MESH_BRG_CFG_DIR_ONEWAY 1
      33             : /* Bidirectional bridging between Addr1 and Addr2. */
      34           0 : #define BT_MESH_BRG_CFG_DIR_TWOWAY 2
      35             : 
      36             : /** Bridging Table state entry corresponding to a entry in the Bridging Table. */
      37           1 : struct bt_mesh_brg_cfg_table_entry {
      38             :         /** Allowed directions for the bridged traffic (or bridged traffic not allowed) */
      39           1 :         uint8_t directions;
      40             :         /** NetKey Index of the first subnet */
      41           1 :         uint16_t net_idx1;
      42             :         /** NetKey Index of the second subnet */
      43           1 :         uint16_t net_idx2;
      44             :         /** Address of the node in the first subnet */
      45           1 :         uint16_t addr1;
      46             :         /** Address of the node in the second subnet */
      47           1 :         uint16_t addr2;
      48             : };
      49             : 
      50             : /** Bridging Table Status response */
      51           1 : struct bt_mesh_brg_cfg_table_status {
      52             :         /** Status Code of the requesting message */
      53           1 :         uint8_t status;
      54             :         /** Requested Bridging Table entry */
      55           1 :         struct bt_mesh_brg_cfg_table_entry entry;
      56             : };
      57             : 
      58             : /** Used to filter set of pairs of NetKey Indexes from the Bridging Table */
      59           1 : struct bt_mesh_brg_cfg_filter_netkey {
      60           0 :         uint16_t filter: 2,    /* Filter applied to the set of pairs of NetKey Indexes */
      61           0 :                 prohibited: 2, /* Prohibited */
      62           0 :                 net_idx: 12;   /* NetKey Index used for filtering or ignored */
      63             : };
      64             : 
      65             : /** Bridged Subnets List response */
      66           1 : struct bt_mesh_brg_cfg_subnets_list {
      67             :         /** Filter applied NetKey Indexes, and NetKey Index used for filtering. */
      68           1 :         struct bt_mesh_brg_cfg_filter_netkey net_idx_filter;
      69             :         /** Start offset in units of bridges */
      70           1 :         uint8_t start_idx;
      71             :         /** Pointer to allocated buffer for storing filtered of NetKey Indexes */
      72           1 :         struct net_buf_simple *list;
      73             : };
      74             : 
      75             : /** Bridging Table List response */
      76           1 : struct bt_mesh_brg_cfg_table_list {
      77             :         /** Status Code of the requesting message */
      78           1 :         uint8_t status;
      79             :         /** NetKey Index of the first subnet */
      80           1 :         uint16_t net_idx1;
      81             :         /** NetKey Index of the second subnet */
      82           1 :         uint16_t net_idx2;
      83             :         /** Start offset in units of bridging table state entries */
      84           1 :         uint16_t start_idx;
      85             :         /** Pointer to allocated buffer for storing list of bridged addresses and directions */
      86           1 :         struct net_buf_simple *list;
      87             : };
      88             : 
      89             : /**
      90             :  * @}
      91             :  */
      92             : 
      93             : #ifdef __cplusplus
      94             : }
      95             : #endif
      96             : 
      97             : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__ */

Generated by: LCOV version 1.14