diff options
author | Heinrich Kuhn <heinrich.kuhn@corigine.com> | 2021-08-18 16:58:46 +0200 |
---|---|---|
committer | Luc Provoost <luc.provoost@intel.com> | 2021-09-13 10:05:54 +0000 |
commit | d87ea3dfce75c5993564a60cadb81bfa75f20c80 (patch) | |
tree | 70ac63b66466f5e636a8abcaf5e8c0e2b2363b35 /VNFs/DPPD-PROX/handle_dump.c | |
parent | 8793304de2a9ec5035f632152b580ee6113b56f6 (diff) |
Use mbuf dynfield1 array in Prox
The udata64 field in the rte_mbuf struct has been removed to make more
space for the dynfield1 array. Prox used the udata64 field for various
use cases. From DPDK v20.11 and beyond use the dynfield1 field in the
rte_mbuf struct for the same functionality.
Signed-off-by: Heinrich Kuhn <heinrich.kuhn@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Change-Id: I0c2ba2f24bf5649ae809a54a9b0f9d6bebdd7056
Diffstat (limited to 'VNFs/DPPD-PROX/handle_dump.c')
-rw-r--r-- | VNFs/DPPD-PROX/handle_dump.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/VNFs/DPPD-PROX/handle_dump.c b/VNFs/DPPD-PROX/handle_dump.c index 29a46fef..8fbc514c 100644 --- a/VNFs/DPPD-PROX/handle_dump.c +++ b/VNFs/DPPD-PROX/handle_dump.c @@ -42,7 +42,12 @@ static uint16_t buffer_packets(struct task_dump *task, struct rte_mbuf **mbufs, return 0; for (j = 0; j < n_pkts && task->n_mbufs < task->n_pkts; ++j) { +#if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0) + uint64_t rdtsc = rte_rdtsc(); + memcpy(&mbufs[j]->dynfield1[0], &rdtsc, sizeof(rdtsc)); +#else mbufs[j]->udata64 = rte_rdtsc(); +#endif task->mbufs[task->n_mbufs++] = mbufs[j]; } @@ -93,10 +98,20 @@ static void stop(struct task_base *tbase) pcap_dump_handle = pcap_dump_open(handle, task->pcap_file); if (task->n_mbufs) { +#if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0) + memcpy(&beg, &task->mbufs[0]->dynfield1[0], sizeof(beg)); +#else beg = task->mbufs[0]->udata64; +#endif } for (uint32_t j = 0; j < task->n_mbufs; ++j) { +#if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0) + uint64_t mbufs_beg; + memcpy(&mbufs_beg, &task->mbufs[j]->dynfield1[0], sizeof(mbufs_beg)); + tsc = mbufs_beg - beg; +#else tsc = task->mbufs[j]->udata64 - beg; +#endif header.len = rte_pktmbuf_pkt_len(task->mbufs[j]); header.caplen = header.len; tsc_to_tv(&header.ts, tsc); |