summaryrefslogtreecommitdiff
path: root/infra/packet_manager
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-09-18 18:32:20 +0800
committerluwenpeng <[email protected]>2024-09-20 16:59:19 +0800
commit620019cf8e1c2be20a478ff8572bb0a9c22ddf3c (patch)
tree8b5da36f7e89e722fb97d3812cbeb12e4ff591cc /infra/packet_manager
parent60caf1bda19f8797b72ef93a9c18517c4ca9495c (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.h46
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