openSUSE package xdp dependency
OS: openSUSE Leap 15.6 libmsquic-2.4.16 requires libxdp >= 1.4.0, openSUSE Leap 15.6 only provides libxdp1 version 1.3.1.
Context: https://github.com/dotnet/dotnet-buildtools-prereqs-docker/pull/1536
@mtfriesen Do you know if MsQuic needs libxdp >= 1.4.0 or if the dependency required is too strong?
I don't think MsQuic needs (or at least, should need) libxdp at all. It should be an optional acceleration; I'm also not sure XDP support is even included in the MsQuic official builds.
However, my experience is limited to XDP on Windows.
Let me dig around a bit.
It looks like official 24.04 builds do link to libxdp on x64. From the import table, I think the effective dependency is >= 1.2?
Separately, IMO MsQuic should not require XDP at all - just try runtime loading the libxdp.so file.
nm -gD /lib/x86_64-linux-gnu/libmsquic.so.2 | grep LIBXDP
U libxdp_get_error@LIBXDP_1.0.0
U libxdp_set_print@LIBXDP_1.0.0
U libxdp_strerror@LIBXDP_1.0.0
U xdp_multiprog__close@LIBXDP_1.0.0
U xdp_multiprog__detach@LIBXDP_1.0.0
U xdp_multiprog__get_from_ifindex@LIBXDP_1.0.0
U xdp_program__attach@LIBXDP_1.0.0
U xdp_program__bpf_obj@LIBXDP_1.0.0
U xdp_program__close@LIBXDP_1.0.0
U xdp_program__open_file@LIBXDP_1.0.0
U xsk_socket__create@LIBXDP_1.2.0
U xsk_socket__delete@LIBXDP_1.2.0
U xsk_socket__fd@LIBXDP_1.2.0
U xsk_socket__update_xskmap@LIBXDP_1.2.0
U xsk_umem__create@LIBXDP_1.2.0
U xsk_umem__delete@LIBXDP_1.2.0
Unless we can identify a need, we should remove XDP support from the Linux package.
- XDP support on Linux is a recent addition that wasn't part of older packages
- There is no clearly identified need for it as of now
A longer-term solution would be to load libxdp.so at runtime as mentioned above, which can be done if/when there is a need.
This is a problem for us. We recently shipped openSUSE 16 packages, but are unable to test on that platform. Will this issue be fixed this month?
We are working on a fix. Some unrelated build issue (#5583) is delaying progress, but I expect this will be addressed this month.
The issue should be addressed in v2.4.17-rc (already published). Stable version v2.4.17 and v2.5.6 will be released shortly to make the fix available by default.
I don't see that package version at:
- https://packages.microsoft.com/opensuse/15/prod/Packages/l/
- https://packages.microsoft.com/opensuse/16/prod/Packages/l/
They are currently in the pre-release repository only.
https://packages.microsoft.com/yumrepos/microsoft-opensuse15-testing-prod/Packages/l/
We have the same change for opensuse16, but an ES change broke the build pipeline, we are working on solving it so we are able to release the remaining packages.