2017-12-19 15:49:03 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
* Copyright(c) 2017 Intel Corporation
|
2017-03-30 21:00:59 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _RTE_BITRATE_H_
|
|
|
|
#define _RTE_BITRATE_H_
|
|
|
|
|
2017-04-26 12:07:16 +00:00
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2017-03-30 21:00:59 +00:00
|
|
|
/**
|
|
|
|
* Bitrate statistics data structure.
|
|
|
|
* This data structure is intentionally opaque.
|
|
|
|
*/
|
|
|
|
struct rte_stats_bitrates;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Allocate a bitrate statistics structure
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* - Pointer to structure on success
|
|
|
|
* - NULL on error (zmalloc failure)
|
|
|
|
*/
|
|
|
|
struct rte_stats_bitrates *rte_stats_bitrate_create(void);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Register bitrate statistics with the metric library.
|
|
|
|
*
|
|
|
|
* @param bitrate_data
|
|
|
|
* Pointer allocated by rte_stats_create()
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* Zero on success
|
|
|
|
* Negative on error
|
|
|
|
*/
|
|
|
|
int rte_stats_bitrate_reg(struct rte_stats_bitrates *bitrate_data);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Calculate statistics for current time window. The period with which
|
|
|
|
* this function is called should be the intended sampling window width.
|
|
|
|
*
|
|
|
|
* @param bitrate_data
|
|
|
|
* Bitrate statistics data pointer
|
|
|
|
*
|
|
|
|
* @param port_id
|
|
|
|
* Port id to calculate statistics for
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* - Zero on success
|
|
|
|
* - Negative value on error
|
|
|
|
*/
|
|
|
|
int rte_stats_bitrate_calc(struct rte_stats_bitrates *bitrate_data,
|
2017-09-29 07:17:24 +00:00
|
|
|
uint16_t port_id);
|
2017-03-30 21:00:59 +00:00
|
|
|
|
2017-04-26 12:07:16 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2017-03-30 21:00:59 +00:00
|
|
|
#endif /* _RTE_BITRATE_H_ */
|