For virtual interfaces, like a veth or a tap used in OVS unit tests, plugging a af_xdp port on them results in an error level message:
dpdk|ERR|EAL: eal_parse_sysfs_value(): cannot open sysfs value /sys/class/net/ovs-tap1/device/numa_node netdev_dpdk|INFO|Device 'net_af_xdptap1,iface=ovs-tap1' attached to DPDK Avoid this error by checking if the sysfs file exists, like what is done in DPDK bus drivers using eal_parse_sysfs_value(). Fixes: 3d28387cbc48 ("net/af_xdp: parse NUMA node ID from sysfs") Signed-off-by: David Marchand <david.march...@redhat.com> --- drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c index 0cc51223ba..353c8688ec 100644 --- a/drivers/net/af_xdp/rte_eth_af_xdp.c +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c @@ -2399,7 +2399,7 @@ rte_pmd_af_xdp_probe(struct rte_vdev_device *dev) snprintf(numa_path, sizeof(numa_path), "/sys/class/net/%s/device/numa_node", if_name); - if (eal_parse_sysfs_value(numa_path, &numa) != 0) + if (access(numa_path, R_OK) != 0 || eal_parse_sysfs_value(numa_path, &numa) != 0) dev->device.numa_node = rte_socket_id(); else dev->device.numa_node = numa; -- 2.41.0