support packet_manager_register_node(), remove packet_manager_subscribe()
This commit is contained in:
@@ -101,23 +101,25 @@ static void check_stat(struct packet_manager_stat *curr_stat, struct packet_mana
|
||||
#if 1
|
||||
TEST(PACKET_MANAGER, NEW_FREE)
|
||||
{
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
static void on_packet_stage(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void on_packet(struct packet *pkt, void *args)
|
||||
{
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
static int count = 0;
|
||||
EXPECT_TRUE(count == stage);
|
||||
EXPECT_TRUE(packet_get_type(pkt) == PACKET_TYPE_PSEUDO);
|
||||
@@ -125,25 +127,19 @@ static void on_packet_stage(struct packet *pkt, enum packet_stage stage, void *a
|
||||
count++;
|
||||
}
|
||||
|
||||
TEST(PACKET_MANAGER, SUBSCRIBER_PACKET_STAGE)
|
||||
TEST(PACKET_MANAGER, REGISTER)
|
||||
{
|
||||
// global init
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
|
||||
EXPECT_TRUE(mq_rt);
|
||||
|
||||
// module init
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, on_packet_stage, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, on_packet_stage, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, on_packet_stage, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, on_packet_stage, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, on_packet_stage, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, on_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, on_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, on_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, on_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, on_packet, NULL) == 0);
|
||||
|
||||
// per-thread init
|
||||
packet_manager_init(pkt_mgr, thread_id, mq_rt);
|
||||
packet_manager_init(pkt_mgr, thread_id);
|
||||
|
||||
// per-thread run
|
||||
struct packet pkt;
|
||||
@@ -176,18 +172,21 @@ TEST(PACKET_MANAGER, SUBSCRIBER_PACKET_STAGE)
|
||||
|
||||
// module free
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
// global free
|
||||
mq_runtime_free(mq_rt);
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
static void on_forward_stage_drop_packet(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void drop_packet(struct packet *pkt, void *args)
|
||||
{
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
static int count = 0;
|
||||
EXPECT_TRUE(count == stage);
|
||||
EXPECT_TRUE(packet_get_type(pkt) == PACKET_TYPE_PSEUDO);
|
||||
@@ -202,23 +201,17 @@ static void on_forward_stage_drop_packet(struct packet *pkt, enum packet_stage s
|
||||
|
||||
TEST(PACKET_MANAGER, DROP_PACKET)
|
||||
{
|
||||
// global init
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
|
||||
EXPECT_TRUE(mq_rt);
|
||||
|
||||
// module init
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, on_forward_stage_drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, on_forward_stage_drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, on_forward_stage_drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, on_forward_stage_drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, on_forward_stage_drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, drop_packet, NULL) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, drop_packet, NULL) == 0);
|
||||
|
||||
// per-thread init
|
||||
packet_manager_init(pkt_mgr, thread_id, mq_rt);
|
||||
packet_manager_init(pkt_mgr, thread_id);
|
||||
|
||||
// per-thread run
|
||||
struct packet pkt;
|
||||
@@ -250,10 +243,6 @@ TEST(PACKET_MANAGER, DROP_PACKET)
|
||||
|
||||
// module free
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
// global free
|
||||
mq_runtime_free(mq_rt);
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -268,11 +257,17 @@ static void packet_claimed(struct packet *pkt, void *args)
|
||||
free(str);
|
||||
}
|
||||
|
||||
static void claim_packet_success(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void claim_packet_success(struct packet *pkt, void *args)
|
||||
{
|
||||
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
printf("claim_packet_success: %s\n", packet_stage_to_str(stage));
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
static int count = 0;
|
||||
EXPECT_TRUE(count == 0);
|
||||
@@ -283,11 +278,17 @@ static void claim_packet_success(struct packet *pkt, enum packet_stage stage, vo
|
||||
count++;
|
||||
}
|
||||
|
||||
static void claim_packet_failed(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void claim_packet_failed(struct packet *pkt, void *args)
|
||||
{
|
||||
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
printf("claim_packet_failed: %s\n", packet_stage_to_str(stage));
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
static int count = 0;
|
||||
EXPECT_TRUE(count == 0);
|
||||
@@ -300,29 +301,23 @@ static void claim_packet_failed(struct packet *pkt, enum packet_stage stage, voi
|
||||
|
||||
TEST(PACKET_MANAGER, CLAIM_PACKET)
|
||||
{
|
||||
// global init
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
|
||||
EXPECT_TRUE(mq_rt);
|
||||
|
||||
// module init
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_success, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_success, pkt_mgr) == 0);
|
||||
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_failed, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_failed, pkt_mgr) == 0);
|
||||
|
||||
// per-thread init
|
||||
packet_manager_init(pkt_mgr, thread_id, mq_rt);
|
||||
packet_manager_init(pkt_mgr, thread_id);
|
||||
|
||||
// per-thread run
|
||||
struct packet pkt;
|
||||
@@ -354,19 +349,21 @@ TEST(PACKET_MANAGER, CLAIM_PACKET)
|
||||
|
||||
// module free
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
// global free
|
||||
mq_runtime_free(mq_rt);
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
static void on_packet_stage_schedule_packet(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void schedule_packet(struct packet *pkt, void *args)
|
||||
{
|
||||
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
printf("on_packet_stage_schedule_packet: \"%s\" schedule packet %p\n", packet_stage_to_str(stage), pkt);
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
EXPECT_TRUE(!packet_is_claim(pkt));
|
||||
|
||||
@@ -381,23 +378,17 @@ static void on_packet_stage_schedule_packet(struct packet *pkt, enum packet_stag
|
||||
|
||||
TEST(PACKET_MANAGER, SCHEDULE_PACKET)
|
||||
{
|
||||
// global init
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
|
||||
EXPECT_TRUE(mq_rt);
|
||||
|
||||
// module init
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, on_packet_stage_schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, on_packet_stage_schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, on_packet_stage_schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, on_packet_stage_schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, on_packet_stage_schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, schedule_packet, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, schedule_packet, pkt_mgr) == 0);
|
||||
|
||||
// per-thread init
|
||||
packet_manager_init(pkt_mgr, thread_id, mq_rt);
|
||||
packet_manager_init(pkt_mgr, thread_id);
|
||||
|
||||
// per-thread run
|
||||
struct packet pkt;
|
||||
@@ -438,10 +429,6 @@ TEST(PACKET_MANAGER, SCHEDULE_PACKET)
|
||||
|
||||
// module free
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
// global free
|
||||
mq_runtime_free(mq_rt);
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -457,11 +444,17 @@ 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(struct packet *pkt, enum packet_stage stage, void *args)
|
||||
static void claim_packet_to_schedule(struct packet *pkt, void *args)
|
||||
{
|
||||
struct packet_manager *pkt_mgr = (struct packet_manager *)args;
|
||||
enum packet_stage stage = packet_get_stage(pkt);
|
||||
printf("on_packet_stage: %s\n", packet_stage_to_str(stage));
|
||||
|
||||
printf("on_packet_stage_claim_packet_to_schedule: %s\n", packet_stage_to_str(stage));
|
||||
uint64_t tag_key_bits;
|
||||
uint64_t tag_val_bits;
|
||||
packet_tag_get(pkt, &tag_key_bits, &tag_val_bits);
|
||||
EXPECT_TRUE(tag_key_bits == PKT_TAG_KEY_IPPROTO);
|
||||
EXPECT_TRUE(tag_val_bits == PKT_TAG_VAL_IPPROTO_TCP);
|
||||
|
||||
static int count = 0;
|
||||
EXPECT_TRUE(packet_get_type(pkt) == PACKET_TYPE_PSEUDO);
|
||||
@@ -485,23 +478,17 @@ static void on_packet_stage_claim_packet_to_schedule(struct packet *pkt, enum pa
|
||||
|
||||
TEST(PACKET_MANAGER, SCHEDULE_CLAIMED_PACKET)
|
||||
{
|
||||
// global init
|
||||
struct mq_schema *mq_schema = mq_schema_new();
|
||||
EXPECT_TRUE(mq_schema);
|
||||
struct mq_runtime *mq_rt = mq_runtime_new(mq_schema);
|
||||
EXPECT_TRUE(mq_rt);
|
||||
|
||||
// module init
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(mq_schema, 1);
|
||||
struct packet_manager *pkt_mgr = packet_manager_new(1);
|
||||
EXPECT_TRUE(pkt_mgr);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_PREROUTING, on_packet_stage_claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_INPUT, on_packet_stage_claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_FORWARD, on_packet_stage_claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_OUTPUT, on_packet_stage_claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_subscribe(pkt_mgr, PACKET_STAGE_POSTROUTING, on_packet_stage_claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_PREROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_INPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_FORWARD, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_OUTPUT, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
EXPECT_TRUE(packet_manager_register_node(pkt_mgr, "name", PACKET_STAGE_POSTROUTING, PKT_TAG_KEY_IPPROTO, PKT_TAG_VAL_IPPROTO_TCP, claim_packet_to_schedule, pkt_mgr) == 0);
|
||||
|
||||
// per-thread init
|
||||
packet_manager_init(pkt_mgr, thread_id, mq_rt);
|
||||
packet_manager_init(pkt_mgr, thread_id);
|
||||
|
||||
// per-thread run
|
||||
struct packet pkt;
|
||||
@@ -533,10 +520,6 @@ TEST(PACKET_MANAGER, SCHEDULE_CLAIMED_PACKET)
|
||||
|
||||
// module free
|
||||
packet_manager_free(pkt_mgr);
|
||||
|
||||
// global free
|
||||
mq_runtime_free(mq_rt);
|
||||
mq_schema_free(mq_schema);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user