diff --git a/infra/packet_manager/packet_manager.c b/infra/packet_manager/packet_manager.c index 3278236..9555c18 100644 --- a/infra/packet_manager/packet_manager.c +++ b/infra/packet_manager/packet_manager.c @@ -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]); } } diff --git a/infra/packet_manager/packet_manager_private.h b/infra/packet_manager/packet_manager_private.h index 8e7b01a..8a51f3c 100644 --- a/infra/packet_manager/packet_manager_private.h +++ b/infra/packet_manager/packet_manager_private.h @@ -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 { diff --git a/infra/packet_manager/test/gtest_packet_manager.cpp b/infra/packet_manager/test/gtest_packet_manager.cpp index 99c2a90..062a782 100644 --- a/infra/packet_manager/test/gtest_packet_manager.cpp +++ b/infra/packet_manager/test/gtest_packet_manager.cpp @@ -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},