rename packet_manager_runtime_input/output to packet_manager_runtime_ingress/egress

This commit is contained in:
luwenpeng
2024-09-18 14:35:34 +08:00
parent 22ba2e1d96
commit 84cf235dec
3 changed files with 32 additions and 36 deletions

View File

@@ -24,7 +24,6 @@ struct packet_manager_schema
struct packet_manager_runtime
{
uint16_t idx;
void *cb_args;
on_packet_claimed_callback *claimed_cb;
enum packet_stage stage;
@@ -199,7 +198,7 @@ static void packet_manager_runtime_free(struct packet_manager_runtime *runtime)
runtime = NULL;
}
static struct packet_manager_runtime *packet_manager_runtime_new(uint16_t idx)
static struct packet_manager_runtime *packet_manager_runtime_new()
{
struct packet_manager_runtime *runtime = calloc(1, sizeof(struct packet_manager_runtime));
if (runtime == NULL)
@@ -208,8 +207,6 @@ static struct packet_manager_runtime *packet_manager_runtime_new(uint16_t idx)
return NULL;
}
runtime->idx = idx;
for (int i = 0; i < PACKET_QUEUE_MAX; i++)
{
TAILQ_INIT(&runtime->queue[i]);
@@ -220,13 +217,13 @@ static struct packet_manager_runtime *packet_manager_runtime_new(uint16_t idx)
void packet_manager_runtime_print_stat(struct packet_manager_runtime *runtime)
{
PACKET_MANAGER_LOG_DEBUG("runtime[%d] current stage: %s, pkts_input: %lu, pkts_output: %lu",
runtime->idx, packet_stage_to_str(runtime->stage),
runtime->stat.total.pkts_input, runtime->stat.total.pkts_output);
PACKET_MANAGER_LOG_DEBUG("runtime[%p] current stage: %s, pkts_ingress: %lu, pkts_egress: %lu",
runtime, packet_stage_to_str(runtime->stage),
runtime->stat.total.pkts_ingress, runtime->stat.total.pkts_egress);
for (int i = 0; i < PACKET_QUEUE_MAX; i++)
{
PACKET_MANAGER_LOG_DEBUG("runtime[%d] (%11s) queue stat => pkts_in: %lu, pkts_out: %lu, pkts_claim: %lu, pkts_schedule: %lu",
runtime->idx,
PACKET_MANAGER_LOG_DEBUG("runtime[%p] (%11s) queue stat => pkts_in: %lu, pkts_out: %lu, pkts_claim: %lu, pkts_schedule: %lu",
runtime,
packet_stage_to_str(i),
runtime->stat.queue[i].pkts_in,
runtime->stat.queue[i].pkts_out,
@@ -245,19 +242,19 @@ void packet_manager_runtime_init(struct packet_manager_runtime *pkt_mgr_rt, stru
pkt_mgr_rt->mq = mq_rt;
}
void packet_manager_runtime_input(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt)
void packet_manager_runtime_ingress(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt)
{
pkt_mgr_rt->stat.total.pkts_input++;
pkt_mgr_rt->stat.total.pkts_ingress++;
pkt_mgr_rt->stat.queue[PACKET_STAGE_PREROUTING].pkts_in++;
TAILQ_INSERT_TAIL(&pkt_mgr_rt->queue[PACKET_STAGE_PREROUTING], pkt, stage_tqe);
}
struct packet *packet_manager_runtime_output(struct packet_manager_runtime *pkt_mgr_rt)
struct packet *packet_manager_runtime_egress(struct packet_manager_runtime *pkt_mgr_rt)
{
struct packet *pkt = TAILQ_FIRST(&pkt_mgr_rt->queue[PACKET_STAGE_MAX]);
if (pkt)
{
pkt_mgr_rt->stat.total.pkts_output++;
pkt_mgr_rt->stat.total.pkts_egress++;
pkt_mgr_rt->stat.queue[PACKET_STAGE_MAX].pkts_out++;
TAILQ_REMOVE(&pkt_mgr_rt->queue[PACKET_STAGE_MAX], pkt, stage_tqe);
}
@@ -361,7 +358,7 @@ struct packet_manager *packet_manager_new(struct mq_schema *mq, const char *toml
for (uint16_t i = 0; i < pkt_mgr->cfg->nr_worker_thread; i++)
{
pkt_mgr->runtime[i] = packet_manager_runtime_new(i);
pkt_mgr->runtime[i] = packet_manager_runtime_new();
if (pkt_mgr->runtime[i] == NULL)
{
PACKET_MANAGER_LOG_ERROR("failed to create packet_manager_runtime");
@@ -384,7 +381,6 @@ void packet_manager_free(struct packet_manager *pkt_mgr)
{
if (pkt_mgr->runtime[i])
{
// packet_manager_runtime_print_stat(pkt_mgr->runtime[i]);
packet_manager_runtime_free(pkt_mgr->runtime[i]);
}
}

View File

@@ -13,8 +13,8 @@ struct packet_manager *packet_manager_new(struct mq_schema *mq_schema, const cha
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_input(struct packet_manager_runtime *pkt_mgr_rt, struct packet *pkt);
struct packet *packet_manager_runtime_output(struct packet_manager_runtime *pkt_mgr_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);
/******************************************************************************
@@ -25,8 +25,8 @@ struct packet_manager_runtime_stat
{
struct
{
uint64_t pkts_input;
uint64_t pkts_output;
uint64_t pkts_ingress;
uint64_t pkts_egress;
} total;
struct
{

View File

@@ -71,8 +71,8 @@ static struct packet_manager_runtime_stat init_stat = {};
static void check_stat(struct packet_manager_runtime_stat *curr_stat, struct packet_manager_runtime_stat *expect_stat)
{
EXPECT_TRUE(curr_stat->total.pkts_input == expect_stat->total.pkts_input);
EXPECT_TRUE(curr_stat->total.pkts_output == expect_stat->total.pkts_output);
EXPECT_TRUE(curr_stat->total.pkts_ingress == expect_stat->total.pkts_ingress);
EXPECT_TRUE(curr_stat->total.pkts_egress == expect_stat->total.pkts_egress);
for (int i = 0; i < PACKET_QUEUE_MAX; i++)
{
@@ -146,12 +146,12 @@ TEST(PACKET_MANAGER, SUBSCRIBER_PACKET_STAGE)
struct packet_manager_runtime_stat *curr_stat = packet_manager_runtime_get_stat(runtime);
check_stat(curr_stat, &init_stat);
packet_manager_runtime_input(runtime, &pkt);
packet_manager_runtime_ingress(runtime, &pkt);
packet_manager_runtime_dispatch(runtime);
EXPECT_TRUE(packet_manager_runtime_output(runtime) == &pkt);
EXPECT_TRUE(packet_manager_runtime_output(runtime) == NULL);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == &pkt);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == NULL);
struct packet_manager_runtime_stat expect_stat = {
.total = {.pkts_input = 1, .pkts_output = 1},
.total = {.pkts_ingress = 1, .pkts_egress = 1},
.queue = {
[PACKET_STAGE_PREROUTING] = {.pkts_in = 1, .pkts_out = 1, .pkts_claim = 0, .pkts_schedule = 0},
[PACKET_STAGE_INPUT] = {.pkts_in = 1, .pkts_out = 1, .pkts_claim = 0, .pkts_schedule = 0},
@@ -257,11 +257,11 @@ TEST(PACKET_MANAGER, CLAIM_PACKET)
struct packet_manager_runtime_stat *curr_stat = packet_manager_runtime_get_stat(runtime);
check_stat(curr_stat, &init_stat);
packet_manager_runtime_input(runtime, &pkt);
packet_manager_runtime_ingress(runtime, &pkt);
packet_manager_runtime_dispatch(runtime);
EXPECT_TRUE(packet_manager_runtime_output(runtime) == NULL);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == NULL);
struct packet_manager_runtime_stat expect_stat = {
.total = {.pkts_input = 1, .pkts_output = 0},
.total = {.pkts_ingress = 1, .pkts_egress = 0},
.queue = {
[PACKET_STAGE_PREROUTING] = {.pkts_in = 1, .pkts_out = 1, .pkts_claim = 1, .pkts_schedule = 0},
[PACKET_STAGE_INPUT] = {.pkts_in = 0, .pkts_out = 0, .pkts_claim = 0, .pkts_schedule = 0},
@@ -336,20 +336,20 @@ TEST(PACKET_MANAGER, SCHEDULE_PACKET)
struct packet_manager_runtime_stat *curr_stat = packet_manager_runtime_get_stat(runtime);
check_stat(curr_stat, &init_stat);
packet_manager_runtime_input(runtime, &pkt);
packet_manager_runtime_ingress(runtime, &pkt);
packet_manager_runtime_dispatch(runtime);
struct packet *tmp = NULL;
for (int i = 0; i < 4; i++)
{
tmp = packet_manager_runtime_output(runtime);
tmp = packet_manager_runtime_egress(runtime);
EXPECT_TRUE(tmp);
packet_free(tmp);
}
EXPECT_TRUE(packet_manager_runtime_output(runtime) == &pkt);
EXPECT_TRUE(packet_manager_runtime_output(runtime) == NULL);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == &pkt);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == NULL);
struct packet_manager_runtime_stat expect_stat = {
.total = {.pkts_input = 1, .pkts_output = 5},
.total = {.pkts_ingress = 1, .pkts_egress = 5},
.queue = {
[PACKET_STAGE_PREROUTING] = {.pkts_in = 1, .pkts_out = 1, .pkts_claim = 0, .pkts_schedule = 0},
[PACKET_STAGE_INPUT] = {.pkts_in = 2, .pkts_out = 2, .pkts_claim = 0, .pkts_schedule = 1},
@@ -443,11 +443,11 @@ TEST(PACKET_MANAGER, SCHEDULE_CLAIMED_PACKET)
struct packet_manager_runtime_stat *curr_stat = packet_manager_runtime_get_stat(runtime);
check_stat(curr_stat, &init_stat);
packet_manager_runtime_input(runtime, &pkt);
packet_manager_runtime_ingress(runtime, &pkt);
packet_manager_runtime_dispatch(runtime);
EXPECT_TRUE(packet_manager_runtime_output(runtime) == &pkt);
EXPECT_TRUE(packet_manager_runtime_egress(runtime) == &pkt);
struct packet_manager_runtime_stat expect_stat = {
.total = {.pkts_input = 1, .pkts_output = 1},
.total = {.pkts_ingress = 1, .pkts_egress = 1},
.queue = {
[PACKET_STAGE_PREROUTING] = {.pkts_in = 1, .pkts_out = 1, .pkts_claim = 1, .pkts_schedule = 0},
[PACKET_STAGE_INPUT] = {.pkts_in = 0, .pkts_out = 0, .pkts_claim = 0, .pkts_schedule = 0},