summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-10-25 13:19:58 +0800
committerluwenpeng <[email protected]>2024-10-25 13:19:58 +0800
commite2c212fb71769f1a4cd9f66c984bf82e6b6bdb42 (patch)
treef9301b09c3a74cf01e7b4638d972cb145f1efdea
parentb5606c689d6b4437e62d38a4445c2aaa0efbafbd (diff)
move stellar/packet_manager.h into stellar/packet.h
-rw-r--r--include/stellar/packet.h31
-rw-r--r--include/stellar/packet_manager.h41
-rw-r--r--infra/packet_manager/packet_manager.c6
-rw-r--r--infra/packet_manager/packet_manager.h (renamed from infra/packet_manager/packet_manager_internal.h)2
-rw-r--r--infra/packet_manager/test/gtest_packet_manager.cpp12
-rw-r--r--infra/session_manager/session_manager.c8
-rw-r--r--infra/stellar_core.c2
-rw-r--r--infra/version.map19
8 files changed, 53 insertions, 68 deletions
diff --git a/include/stellar/packet.h b/include/stellar/packet.h
index 2e4b78e..413676a 100644
--- a/include/stellar/packet.h
+++ b/include/stellar/packet.h
@@ -16,6 +16,9 @@ extern "C"
#include <linux/if_ether.h>
#include <linux/mpls.h>
+#include "stellar/exdata.h"
+#include "stellar/module_manager.h"
+
struct packet;
/******************************************************************************
* layer
@@ -188,6 +191,34 @@ uint16_t packet_get_payload_len(const struct packet *pkt);
void packet_set_exdata(struct packet *pkt, int idx, void *ex_ptr);
void *packet_get_exdata(struct packet *pkt, int idx);
+/******************************************************************************
+ * packet manager
+ ******************************************************************************/
+
+enum packet_stage
+{
+ PACKET_STAGE_PREROUTING,
+ PACKET_STAGE_INPUT,
+ PACKET_STAGE_FORWARD,
+ PACKET_STAGE_OUTPUT,
+ PACKET_STAGE_POSTROUTING,
+ PACKET_STAGE_MAX,
+};
+
+struct packet_manager;
+struct packet_manager *stellar_module_get_packet_manager(struct stellar_module_manager *mod_mgr);
+int packet_manager_new_packet_exdata_index(struct packet_manager *pkt_mgr, const char *name, exdata_free *func, void *arg);
+
+typedef void on_packet_stage_callback(struct packet *pkt, enum packet_stage stage, void *arg);
+int packet_manager_subscribe(struct packet_manager *pkt_mgr, enum packet_stage stage, on_packet_stage_callback *cb, void *arg);
+
+// if two modules claim the same packet at the same stage, the second 'claim' fails.
+// return 0 on success
+// return -1 on failure
+typedef void on_packet_claimed_callback(struct packet *pkt, void *arg);
+int packet_manager_claim_packet(struct packet_manager *pkt_mgr, uint16_t thread_id, struct packet *pkt, on_packet_claimed_callback cb, void *arg);
+void packet_manager_schedule_packet(struct packet_manager *pkt_mgr, uint16_t thread_id, struct packet *pkt, enum packet_stage stage);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/stellar/packet_manager.h b/include/stellar/packet_manager.h
deleted file mode 100644
index 870eb2a..0000000
--- a/include/stellar/packet_manager.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include "stellar/exdata.h"
-#include "stellar/packet.h"
-
-#include "stellar/module_manager.h"
-
-enum packet_stage
-{
- PACKET_STAGE_PREROUTING,
- PACKET_STAGE_INPUT,
- PACKET_STAGE_FORWARD,
- PACKET_STAGE_OUTPUT,
- PACKET_STAGE_POSTROUTING,
- PACKET_STAGE_MAX,
-};
-
-struct packet_manager;
-
-struct packet_manager *stellar_module_get_packet_manager(struct stellar_module_manager *mod_mgr);
-
-int packet_manager_new_packet_exdata_index(struct packet_manager *pkt_mgr, const char *name, exdata_free *func, void *arg);
-
-typedef void on_packet_stage_callback(enum packet_stage stage, struct packet *pkt, void *arg);
-int packet_manager_subscribe(struct packet_manager *pkt_mgr, enum packet_stage stage, on_packet_stage_callback *cb, void *arg);
-
-// if two modules claim the same packet at the same stage, the second 'claim' fails.
-// return 0 on success
-// return -1 on failure
-typedef void on_packet_claimed_callback(struct packet *pkt, void *arg);
-int packet_manager_claim_packet(struct packet_manager *pkt_mgr, uint16_t thread_id, struct packet *pkt, on_packet_claimed_callback cb, void *arg);
-void packet_manager_schedule_packet(struct packet_manager *pkt_mgr, uint16_t thread_id, struct packet *pkt, enum packet_stage stage);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/infra/packet_manager/packet_manager.c b/infra/packet_manager/packet_manager.c
index ba1c28d..5623107 100644
--- a/infra/packet_manager/packet_manager.c
+++ b/infra/packet_manager/packet_manager.c
@@ -2,7 +2,7 @@
#include "utils_internal.h"
#include "packet_internal.h"
-#include "packet_manager_internal.h"
+#include "packet_manager.h"
#define PACKET_MANAGER_MODULE_NAME "packet_manager_module"
@@ -113,7 +113,7 @@ static void on_packet_stage_dispatch(int topic_id, void *msg, on_msg_cb_func *cb
}
}
- ((on_packet_stage_callback *)(void *)cb)(stage, pkt, cb_arg);
+ ((on_packet_stage_callback *)(void *)cb)(pkt, stage, cb_arg);
}
static void packet_schema_free(struct packet_manager_schema *pkt_mgr_schema)
@@ -223,7 +223,7 @@ int packet_manager_new_packet_exdata_index(struct packet_manager *pkt_mgr, const
int packet_manager_subscribe(struct packet_manager *pkt_mgr, enum packet_stage stage, on_packet_stage_callback *cb, void *arg)
{
assert(pkt_mgr);
- return mq_schema_subscribe(pkt_mgr->schema->mq, pkt_mgr->schema->topic_id[stage], (on_msg_cb_func *)cb, arg);
+ return mq_schema_subscribe(pkt_mgr->schema->mq, pkt_mgr->schema->topic_id[stage], (on_msg_cb_func *)(void *)cb, arg);
}
int packet_manager_init(struct packet_manager *pkt_mgr, uint16_t thread_id, struct mq_runtime *mq_rt)
diff --git a/infra/packet_manager/packet_manager_internal.h b/infra/packet_manager/packet_manager.h
index dc7a979..7821758 100644
--- a/infra/packet_manager/packet_manager_internal.h
+++ b/infra/packet_manager/packet_manager.h
@@ -6,7 +6,7 @@ extern "C"
#endif
#include "stellar/mq.h"
-#include "stellar/packet_manager.h"
+#include "stellar/packet.h"
#define PACKET_QUEUE_MAX (PACKET_STAGE_MAX + 1)
diff --git a/infra/packet_manager/test/gtest_packet_manager.cpp b/infra/packet_manager/test/gtest_packet_manager.cpp
index e447c32..902b7c7 100644
--- a/infra/packet_manager/test/gtest_packet_manager.cpp
+++ b/infra/packet_manager/test/gtest_packet_manager.cpp
@@ -2,7 +2,7 @@
#include "packet_parser.h"
#include "packet_internal.h"
-#include "packet_manager_internal.h"
+#include "packet_manager.h"
/******************************************************************************
* [Protocols in frame: eth:ethertype:ip:ipv6:tcp]
@@ -99,7 +99,7 @@ TEST(PACKET_MANAGER, NEW_FREE)
#endif
#if 1
-static void on_packet_stage(enum packet_stage stage, struct packet *pkt, void *args)
+static void on_packet_stage(struct packet *pkt, enum packet_stage stage, void *args)
{
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
@@ -178,7 +178,7 @@ static void packet_claimed(struct packet *pkt, void *args)
free(str);
}
-static void claim_packet_success(enum packet_stage stage, struct packet *pkt, void *args)
+static void claim_packet_success(struct packet *pkt, enum packet_stage stage, void *args)
{
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
@@ -193,7 +193,7 @@ static void claim_packet_success(enum packet_stage stage, struct packet *pkt, vo
count++;
}
-static void claim_packet_failed(enum packet_stage stage, struct packet *pkt, void *args)
+static void claim_packet_failed(struct packet *pkt, enum packet_stage stage, void *args)
{
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
@@ -271,7 +271,7 @@ TEST(PACKET_MANAGER, CLAIM_PACKET)
#endif
#if 1
-static void on_packet_stage_schedule_packet(enum packet_stage stage, struct packet *pkt, void *args)
+static void on_packet_stage_schedule_packet(struct packet *pkt, enum packet_stage stage, void *args)
{
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
@@ -365,7 +365,7 @@ static void schedule_claimed_packet(struct packet *pkt, void *args)
packet_manager_schedule_packet(pkt_mgr, thread_id, pkt, PACKET_STAGE_POSTROUTING);
}
-static void on_packet_stage_claim_packet_to_schedule(enum packet_stage stage, struct packet *pkt, void *args)
+static void on_packet_stage_claim_packet_to_schedule(struct packet *pkt, enum packet_stage stage, void *args)
{
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
diff --git a/infra/session_manager/session_manager.c b/infra/session_manager/session_manager.c
index 11457cf..7a6aabe 100644
--- a/infra/session_manager/session_manager.c
+++ b/infra/session_manager/session_manager.c
@@ -1,10 +1,8 @@
#include <assert.h>
#include <stdlib.h>
-#include "stellar/exdata.h"
-#include "stellar/packet_manager.h"
+#include "stellar/packet.h"
#include "stellar/session_manager.h"
-#include "stellar/module_manager.h"
#include "utils_internal.h"
#include "session_internal.h"
@@ -88,7 +86,7 @@ static void on_session_free(void *msg, void *args)
session_manager_runtime_free_session(sess_mgr_rt, sess);
}
-static void on_packet_forward(enum packet_stage stage, struct packet *pkt, void *args)
+static void on_packet_forward(struct packet *pkt, enum packet_stage stage, void *args)
{
struct session_manager *sess_mgr = (struct session_manager *)args;
struct stellar_module_manager *mod_mgr = sess_mgr->mod_mgr;
@@ -180,7 +178,7 @@ fast_path:
return;
}
-static void on_packet_output(enum packet_stage stage, struct packet *pkt, void *args)
+static void on_packet_output(struct packet *pkt, enum packet_stage stage, void *args)
{
struct session_manager *sess_mgr = (struct session_manager *)args;
struct stellar_module_manager *mod_mgr = sess_mgr->mod_mgr;
diff --git a/infra/stellar_core.c b/infra/stellar_core.c
index 06e91de..ab9a39f 100644
--- a/infra/stellar_core.c
+++ b/infra/stellar_core.c
@@ -9,7 +9,7 @@
#include "log_internal.h"
#include "utils_internal.h"
#include "packet_internal.h"
-#include "packet_manager_internal.h"
+#include "packet_manager.h"
#include "module_manager_interna.h"
#define CORE_LOG_FATAL(format, ...) STELLAR_LOG_FATAL(__thread_local_logger, "core", format, ##__VA_ARGS__)
diff --git a/infra/version.map b/infra/version.map
index 28aaa35..9f1ee3a 100644
--- a/infra/version.map
+++ b/infra/version.map
@@ -2,10 +2,8 @@ LIBSTELLAR_DEVEL {
global:
packet_get_layer_count;
packet_get_layer_by_idx;
-
packet_get_tunnel_count;
packet_get_tunnel_by_idx;
-
packet_prepend_sids;
packet_get_direction;
packet_set_action;
@@ -17,6 +15,14 @@ global:
packet_build_tcp;
packet_build_udp;
packet_build_l3;
+ packet_manager_on_init;
+ packet_manager_on_exit;
+ packet_manager_on_thread_init;
+ packet_manager_on_thread_exit;
+ packet_manager_new_packet_exdata_index;
+ packet_manager_subscribe;
+ packet_manager_claim_packet;
+ packet_manager_schedule_packet;
exdata_*;
mq_*;
@@ -52,15 +58,6 @@ global:
log_print;
log_check_level;
- packet_manager_on_init;
- packet_manager_on_exit;
- packet_manager_on_thread_init;
- packet_manager_on_thread_exit;
- packet_manager_new_packet_exdata_index;
- packet_manager_subscribe;
- packet_manager_claim_packet;
- packet_manager_schedule_packet;
-
session_manager_on_init;
session_manager_on_exit;
session_manager_on_thread_init;