It was added in libbpf 0.7 and EL8 only has 0.5, sadly.
], [:])
PKG_CHECK_MODULES([BPF], [libbpf], [
AC_DEFINE([HAVE_BPF], [1], [Define to 1 if you have the BPF library])
+ save_CFLAGS=$CFLAGS
+ save_LIBS=$LIBS
+ CFLAGS="$BPF_CFLAGS $CFLAGS"
+ LIBS="$BPF_LIBS $LIBS"
+ AC_CHECK_FUNCS([bpf_xdp_query])
+ CFLAGS=$save_CFLAGS
+ LIBS=$save_LIBS
], [:])
])
])
[[nodiscard]] std::string XskSocket::getXDPMode() const
{
+#ifdef HAVE_BPF_XDP_QUERY
unsigned int itfIdx = if_nametoindex(ifName.c_str());
if (itfIdx == 0) {
- return {};
+ return "unable to get interface index";
}
bpf_xdp_query_opts info{};
info.sz = sizeof(info);
default:
return "unknown";
}
+#else /* HAVE_BPF_XDP_QUERY */
+ return "undetected";
+#endif /* HAVE_BPF_XDP_QUERY */
}
void XskSocket::markAsFree(const XskPacket& packet)