summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/handle_dump.c
diff options
context:
space:
mode:
authorHeinrich Kuhn <heinrich.kuhn@corigine.com>2021-08-18 16:58:46 +0200
committerLuc Provoost <luc.provoost@intel.com>2021-09-13 10:05:54 +0000
commitd87ea3dfce75c5993564a60cadb81bfa75f20c80 (patch)
tree70ac63b66466f5e636a8abcaf5e8c0e2b2363b35 /VNFs/DPPD-PROX/handle_dump.c
parent8793304de2a9ec5035f632152b580ee6113b56f6 (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.c15
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);