Skip to content

Commit

Permalink
Bluetooth: Mesh: Bridge Configuration Client API
Browse files Browse the repository at this point in the history
Adding documentation and function calles for the API's
in Bridge Configuration Client model.

Signed-off-by: Ingar Kulbrandstad <[email protected]>
  • Loading branch information
Balaklaka committed Jun 28, 2024
1 parent b82b5b0 commit 7227e8b
Show file tree
Hide file tree
Showing 8 changed files with 468 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/zephyr/bluetooth/mesh.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
#include <zephyr/bluetooth/mesh/od_priv_proxy_cli.h>
#include <zephyr/bluetooth/mesh/sol_pdu_rpl_srv.h>
#include <zephyr/bluetooth/mesh/sol_pdu_rpl_cli.h>
#include <zephyr/bluetooth/mesh/brg_cfg_cli.h>
#include <zephyr/bluetooth/mesh/statistic.h>

#endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_H_ */
2 changes: 2 additions & 0 deletions include/zephyr/bluetooth/mesh/access.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,8 @@ struct bt_mesh_elem {
#define BT_MESH_MODEL_ID_REMOTE_PROV_SRV 0x0004
/** Remote Provisioning Client */
#define BT_MESH_MODEL_ID_REMOTE_PROV_CLI 0x0005
/** Bridge Configuration Client */
#define BT_MESH_MODEL_ID_BRG_CFG_CLI 0x0009
/** Private Beacon Server */
#define BT_MESH_MODEL_ID_PRIV_BEACON_SRV 0x000a
/** Private Beacon Client */
Expand Down
86 changes: 86 additions & 0 deletions include/zephyr/bluetooth/mesh/brg_cfg.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/

#ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__
#define ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__

#include <stdint.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
* @defgroup bt_mesh_brg_cfg Bridge Configuration common header
* @ingroup bt_mesh
* @{
*/

#define BT_MESH_SUBNET_BRIDGE_DISABLED 0x00
#define BT_MESH_SUBNET_BRIDGE_ENABLED 0x01

/** Bridging Table state entry corresponding to a entry in the Bridging Table. */
struct bridging_table_entry {
/** Allowed directions for the bridged traffic (or bridged traffic not allowed) */
uint8_t directions;
/** NetKey Index of the first subnet */
uint16_t net_idx_1;
/** NetKey Index of the second subnet */
uint16_t net_idx_2;
/** Address of the node in the first subnet */
uint16_t addr_1;
/** Address of the node in the second subnet */
uint16_t addr_2;
};

/** Bridging Table Status response */
struct bt_mesh_bridging_table_status {
/** Status Code of the requesting message */
uint8_t status;
/** Requested Bridging Table entry */
struct bridging_table_entry entry;
};

struct bt_mesh_filter_netkey {
uint16_t filter: 2, /* Filter applied to the set of pairs of NetKey Indexes */
prohibited: 2, /* Prohibited */
net_idx: 12; /* NetKey Index used for filtering or ignored */
};

/** Bridged Subnets List response */
struct bt_mesh_bridged_subnets_list {
/** Filter applied NetKey Indexes, and NetKey Index used for filtering. */
struct bt_mesh_filter_netkey net_idx_filter;
/** Start offset in units of bridges */
uint8_t start_idx;
/** Pointer to allocated buffer for storing filtered of NetKey Indexes */
struct net_buf_simple *list;
};

/** Bridging Table List response */
struct bt_mesh_bridging_table_list {
/** Status Code of the requesting message */
uint8_t status;
/** NetKey Index of the first subnet */
uint16_t net_idx_1;
/** NetKey Index of the second subnet */
uint16_t net_idx_2;
/** Start offset in units of bridges */
uint16_t start_idx;
/** Pointer to allocated buffer for storing list of bridged addresses and directions */
struct net_buf_simple *list;
};

/**
* @}
*/

#ifdef __cplusplus
}
#endif

#endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_BRG_CFG_H__ */
Loading

0 comments on commit 7227e8b

Please sign in to comment.