blob: c5403d2fd54627558e231132166adfa45d33ea67 [file] [log] [blame]
/** @file
* @brief BLE mesh statistic APIs.
*/
/*
* Copyright (c) 2023 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_STATISTIC_H_
#define ZEPHYR_INCLUDE_BLUETOOTH_MESH_STATISTIC_H_
#include <stdint.h>
/**
* @brief Statistic
* @defgroup bt_mesh_stat Statistic
* @ingroup bt_mesh
* @{
*/
#ifdef __cplusplus
extern "C" {
#endif
/** The structure that keeps statistics of mesh frames handling. */
struct bt_mesh_statistic {
/** All received frames passed basic validation and decryption. */
/** Received frames over advertiser. */
uint32_t rx_adv;
/** Received frames over loopback. */
uint32_t rx_loopback;
/** Received frames over proxy. */
uint32_t rx_proxy;
/** Received over unknown interface. */
uint32_t rx_uknown;
/** Counter of frames that were initiated to relay over advertiser bearer. */
uint32_t tx_adv_relay_planned;
/** Counter of frames that succeeded relaying over advertiser bearer. */
uint32_t tx_adv_relay_succeeded;
/** Counter of frames that were initiated to send over advertiser bearer locally. */
uint32_t tx_local_planned;
/** Counter of frames that succeeded to send over advertiser bearer locally. */
uint32_t tx_local_succeeded;
/** Counter of frames that were initiated to send over friend bearer. */
uint32_t tx_friend_planned;
/** Counter of frames that succeeded to send over friend bearer. */
uint32_t tx_friend_succeeded;
};
/** @brief Get mesh frame handling statistic.
*
* @param st BLE mesh statistic.
*/
void bt_mesh_stat_get(struct bt_mesh_statistic *st);
/** @brief Reset mesh frame handling statistic.
*/
void bt_mesh_stat_reset(void);
#ifdef __cplusplus
}
#endif
/**
* @}
*/
#endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_STATISTIC_H_ */