test(packet manager): test packets flow between multiple queues

This commit is contained in:
luwenpeng
2024-09-14 15:20:59 +08:00
parent 6ddb99bfcd
commit f559d67b93
8 changed files with 376 additions and 154 deletions

View File

@@ -16,37 +16,61 @@ enum log_level
};
#define STELLAR_LOG_TRACE(logger, module, format, ...) \
if (log_check_level((logger), LOG_TRACE)) \
if ((logger) == NULL) \
{ \
printf("TRACE: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_TRACE)) \
{ \
log_print((logger), LOG_TRACE, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_DEBUG(logger, module, format, ...) \
if (log_check_level((logger), LOG_DEBUG)) \
if ((logger) == NULL) \
{ \
printf("DEBUG: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_DEBUG)) \
{ \
log_print((logger), LOG_DEBUG, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_INFO(logger, module, format, ...) \
if (log_check_level((logger), LOG_INFO)) \
if ((logger) == NULL) \
{ \
printf("INFO: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_INFO)) \
{ \
log_print((logger), LOG_INFO, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_WARN(logger, module, format, ...) \
if (log_check_level((logger), LOG_WARN)) \
if ((logger) == NULL) \
{ \
printf("WARN: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_WARN)) \
{ \
log_print((logger), LOG_WARN, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_ERROR(logger, module, format, ...) \
if (log_check_level((logger), LOG_ERROR)) \
if ((logger) == NULL) \
{ \
printf("ERROR: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_ERROR)) \
{ \
log_print((logger), LOG_ERROR, (module), (format), ##__VA_ARGS__); \
}
#define STELLAR_LOG_FATAL(logger, module, format, ...) \
if (log_check_level((logger), LOG_FATAL)) \
if ((logger) == NULL) \
{ \
printf("FATAL: (%s): " format "\n", module, ##__VA_ARGS__); \
} \
else if (log_check_level((logger), LOG_FATAL)) \
{ \
log_print((logger), LOG_FATAL, (module), (format), ##__VA_ARGS__); \
}

View File

@@ -185,16 +185,6 @@ uint16_t packet_get_raw_len(const struct packet *pkt);
const char *packet_get_payload(const struct packet *pkt);
uint16_t packet_get_payload_len(const struct packet *pkt);
enum packet_stage
{
PACKET_STAGE_PREROUTING,
PACKET_STAGE_INPUT,
PACKET_STAGE_FORWARD,
PACKET_STAGE_OUTPUT,
PACKET_STAGE_POSTROUTING,
PACKET_STAGE_MAX,
};
#ifdef __cplusplus
}
#endif

View File

@@ -7,6 +7,16 @@ extern "C"
#include "packet.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_schema;
struct packet_manager_runtime;
@@ -15,8 +25,10 @@ struct packet_manager_schema *packet_manager_get_schema(struct packet_manager *p
struct packet_manager_runtime *packet_manager_get_runtime(struct packet_manager *pkt_mgr, uint16_t thr_idx);
typedef void on_packet_stage_callback(enum packet_stage stage, struct packet *pkt, void *args);
int packet_manager_schema_add_subscriber(struct packet_manager_schema *schema, enum packet_stage stage, on_packet_stage_callback cb, void *args);
int packet_manager_schema_add_subscriber(struct packet_manager_schema *pkt_mgr_schema, enum packet_stage stage, on_packet_stage_callback cb, void *args);
// take 只执行一次
// 同一 stage 后面的 msg 是否中断???不中断
void packet_manager_runtime_take_packet(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt);
void packet_manager_runtime_schedule_packet(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt, enum packet_stage stage);