summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorXiaoming Jiang <jiangxiaoming@outlook.com>2023-03-08 06:49:19 +0000
committerDamjan Marion <dmarion@0xa5.net>2023-05-16 09:30:12 +0000
commit5b55526da489def814a239a3ae6599fcb30dbb6e (patch)
tree2ba829119d73291cc081b1c3ae5b3ddc7b0e6f64 /src/plugins
parente10c5242067b6ad6a9de73ad3b00bfd215202f64 (diff)
dpdk: fix format rx/tx burst function name failed
Type: fix Signed-off-by: Xiaoming Jiang <jiangxiaoming@outlook.com> Change-Id: I9971e69135e0652a36e4b4754774a43ea1d92e8b
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/dpdk/device/format.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/plugins/dpdk/device/format.c b/src/plugins/dpdk/device/format.c
index d3234d16f00..11435343cc8 100644
--- a/src/plugins/dpdk/device/format.c
+++ b/src/plugins/dpdk/device/format.c
@@ -17,9 +17,6 @@
#include <vppinfra/format.h>
#include <assert.h>
-#define __USE_GNU
-#include <dlfcn.h>
-
#include <vnet/ethernet/ethernet.h>
#include <vnet/ethernet/sfp.h>
#include <dpdk/device/dpdk.h>
@@ -347,7 +344,7 @@ format_dpdk_burst_fn (u8 *s, va_list *args)
dpdk_device_t *xd = va_arg (*args, dpdk_device_t *);
vlib_rx_or_tx_t dir = va_arg (*args, vlib_rx_or_tx_t);
void *p;
- Dl_info info = { 0 };
+ clib_elf_symbol_t sym;
#if RTE_VERSION < RTE_VERSION_NUM(21, 11, 0, 0)
#define rte_eth_fp_ops rte_eth_devices
@@ -356,10 +353,14 @@ format_dpdk_burst_fn (u8 *s, va_list *args)
p = (dir == VLIB_TX) ? rte_eth_fp_ops[xd->port_id].tx_pkt_burst :
rte_eth_fp_ops[xd->port_id].rx_pkt_burst;
- if (dladdr (p, &info) == 0 || info.dli_sname == 0)
- return format (s, "(not available)");
-
- return format (s, "%s", info.dli_sname);
+ if (clib_elf_symbol_by_address (pointer_to_uword (p), &sym))
+ {
+ return format (s, "%s", clib_elf_symbol_name (&sym));
+ }
+ else
+ {
+ return format (s, "(not available)");
+ }
}
static u8 *