diff options
| author | luwenpeng <[email protected]> | 2024-09-18 18:32:20 +0800 |
|---|---|---|
| committer | luwenpeng <[email protected]> | 2024-09-20 16:59:19 +0800 |
| commit | 620019cf8e1c2be20a478ff8572bb0a9c22ddf3c (patch) | |
| tree | 8b5da36f7e89e722fb97d3812cbeb12e4ff591cc /infra/packet_manager | |
| parent | 60caf1bda19f8797b72ef93a9c18517c4ca9495c (diff) | |
refactor(session manager): rename original session_manager to session_manager_runtime
Diffstat (limited to 'infra/packet_manager')
| -rw-r--r-- | infra/packet_manager/packet_manager_private.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/infra/packet_manager/packet_manager_private.h b/infra/packet_manager/packet_manager_private.h new file mode 100644 index 0000000..4fe6a36 --- /dev/null +++ b/infra/packet_manager/packet_manager_private.h @@ -0,0 +1,46 @@ +#pragma once + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include "stellar/packet_manager.h" + +#define PACKET_QUEUE_MAX (PACKET_STAGE_MAX + 1) + +struct packet_manager *packet_manager_new(struct mq_schema *mq_schema, const char *toml_file); +void packet_manager_free(struct packet_manager *pkt_mgr); + +void packet_manager_runtime_init(struct packet_manager_runtime *pkt_mgr_rt, struct mq_runtime *mq_rt); +void packet_manager_runtime_ingress(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt); +struct packet *packet_manager_runtime_egress(struct packet_manager_runtime *pkt_mgr_rt); +void packet_manager_runtime_dispatch(struct packet_manager_runtime *pkt_mgr_rt); + +/****************************************************************************** + * for gtest + ******************************************************************************/ + +struct packet_manager_stat +{ + struct + { + uint64_t pkts_ingress; + uint64_t pkts_egress; + } total; + struct + { + uint64_t pkts_in; // include the packets that are scheduled + uint64_t pkts_out; // include the packets that are claimed + uint64_t pkts_claim; + uint64_t pkts_schedule; + } queue[PACKET_QUEUE_MAX]; // the last queue is for sending packets +} __attribute__((aligned(64))); + +const char *packet_stage_to_str(enum packet_stage stage); +void packet_manager_runtime_print_stat(struct packet_manager_runtime *runtime); +struct packet_manager_stat *packet_manager_runtime_get_stat(struct packet_manager_runtime *runtime); + +#ifdef __cplusplus +} +#endif |
