diff options
| author | 童宗振 <[email protected]> | 2024-05-14 09:22:13 +0000 |
|---|---|---|
| committer | 童宗振 <[email protected]> | 2024-05-14 09:22:13 +0000 |
| commit | d77b43cd78605550ee7da332f22f991d02faee3f (patch) | |
| tree | 6d6f1ceee5621c9eb7837cb6aef8e2875ef4193a | |
| parent | ada1fbbe649afeba6147e5f82d1577c82f6dd3d0 (diff) | |
Fix dp trace filter exec start layerv4.8.8-20240514
| -rw-r--r-- | infra/include/dp_trace.h | 2 | ||||
| -rw-r--r-- | infra/src/dp_trace.c | 8 | ||||
| -rw-r--r-- | infra/test/TestDataPathTrace.cc | 8 |
3 files changed, 8 insertions, 10 deletions
diff --git a/infra/include/dp_trace.h b/infra/include/dp_trace.h index 55fd720..38a2f28 100644 --- a/infra/include/dp_trace.h +++ b/infra/include/dp_trace.h @@ -16,7 +16,6 @@ #define DP_TRACE_RING_SIZE_MAX 4096 #define DP_TRACE_POOL_NAME "dp_trace_pool" -#define DP_TRACE_DUMP_POOL_NAME "dp_trace_dump_pool" #define DP_TRACE_RING_NAME "dp_trace_ring" #define DP_TRACE_POOL_SIZE (2 * DP_TRACE_RING_SIZE_MAX) @@ -97,7 +96,6 @@ struct dp_trace_instance uint16_t nr_ring; struct rte_ring * ring[DP_TRACE_RING_NUM]; struct rte_mempool * pool; - struct rte_mempool * dump_pool; uint16_t nr_job_ctx; struct dp_trace_job_ctx job_ctx[DP_TRACE_JOB_NUM_MAX]; } __rte_cache_aligned; diff --git a/infra/src/dp_trace.c b/infra/src/dp_trace.c index c9e51bf..2ca343a 100644 --- a/infra/src/dp_trace.c +++ b/infra/src/dp_trace.c @@ -28,13 +28,9 @@ static struct dp_trace_instance * dp_trace_instance_create() struct dp_trace_instance * instance = ZMALLOC(sizeof(struct dp_trace_instance)); MR_VERIFY_MALLOC(instance); - unsigned int sz_align_priv = RTE_ALIGN(sizeof(struct mrb_metadata), RTE_MBUF_PRIV_ALIGN); instance->pool = rte_mempool_create(DP_TRACE_POOL_NAME, DP_TRACE_POOL_SIZE, DP_TRACE_RECORD_SIZE, 0, 0, NULL, NULL, NULL, NULL, rte_socket_id(), 0); - instance->dump_pool = rte_pktmbuf_pool_create(DP_TRACE_DUMP_POOL_NAME, DP_TRACE_POOL_SIZE, 0, sz_align_priv, - DP_TRACE_RECORD_SIZE + RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id()); MR_VERIFY_MALLOC(instance->pool); - MR_VERIFY_MALLOC(instance->dump_pool); for (unsigned int i = 0; i < DP_TRACE_JOB_NUM_MAX; i++) { @@ -370,7 +366,7 @@ void dp_trace_filter_exec(struct dp_trace_process * trace, struct rte_mbuf * mbu } unsigned int snaplen = 0; - for (unsigned int i = 0; i < pkt_parser_result->nr_layers; i++) + for (unsigned int i = pkt_parser_result->start_layers; i < pkt_parser_result->nr_layers; i++) { if (pkt_parser_result->layers[i].type_id == LAYER_TYPE_ID_ETHER && pkt_parser_result->layers[i].offset >= offset) @@ -595,7 +591,7 @@ static inline void dp_trace_buffer_initialize(struct dp_trace_process * trace, s dp_trace_buffer->traffic_link_id = mrb_meta->traffic_link_id; // Extract inner layer3 - for (int i = pkt_parser_result->nr_layers - 1; i >= 0; i--) + for (int i = pkt_parser_result->nr_layers - 1; i >= pkt_parser_result->start_layers; i--) { uint16_t this_layer_type_id = pkt_parser_result->layers[i].type_id; uint16_t this_layer_offset = pkt_parser_result->layers[i].offset; diff --git a/infra/test/TestDataPathTrace.cc b/infra/test/TestDataPathTrace.cc index 6306e42..721f1f2 100644 --- a/infra/test/TestDataPathTrace.cc +++ b/infra/test/TestDataPathTrace.cc @@ -86,6 +86,9 @@ class DataPathTraceTest : public testing::Test // create trace trace = dp_trace_process_create(DP_TRACE_PROCESS_MARSIO); trace->inst->enable = true; + unsigned int sz_align_priv = RTE_ALIGN(sizeof(struct mrb_metadata), RTE_MBUF_PRIV_ALIGN); + mempool = rte_pktmbuf_pool_create("dp_trace_dump_pool", 16, 0, sz_align_priv, + DP_TRACE_RECORD_SIZE + RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id()); } void TearDown() override @@ -105,7 +108,7 @@ class DataPathTraceTest : public testing::Test if (process_tpye == DP_TRACE_PROCESS_MARSIO) { rte_mempool_free(trace->inst->pool); - rte_mempool_free(trace->inst->dump_pool); + rte_mempool_free(mempool); for (unsigned int i = 0; i < trace->inst->nr_ring; i++) { rte_ring_free(trace->inst->ring[i]); @@ -124,7 +127,7 @@ class DataPathTraceTest : public testing::Test if (trace == NULL) return NULL; - struct rte_mbuf * pkt_mbuf = rte_pktmbuf_alloc(trace->inst->dump_pool); + struct rte_mbuf * pkt_mbuf = rte_pktmbuf_alloc(mempool); unsigned int sz_align_priv = RTE_ALIGN(sizeof(struct mrb_metadata), RTE_MBUF_PRIV_ALIGN); uint16_t data_off = sizeof(struct rte_mbuf) + sz_align_priv; @@ -151,6 +154,7 @@ class DataPathTraceTest : public testing::Test } struct dp_trace_process * trace; + struct rte_mempool * mempool; }; TEST_F(DataPathTraceTest, PackageConstruct) |
