diff options
author | Yulong Pei <yulong.pei@intel.com> | 2023-01-05 02:26:32 +0000 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2023-01-13 09:57:00 +0000 |
commit | f9a17487982ebc231ad0f32f15f261453aef8a88 (patch) | |
tree | edbfdc326ad1b0fc25f2efa083e94010c025c2a8 /src/plugins/af_xdp/CMakeLists.txt | |
parent | 809eb669c7a353cd06da58ccdf8578053b1233ca (diff) |
af_xdp: update af_xdp driver plugin to depend on libxdp
AF_XDP support is deprecated in libbpf since v0.7.0 [1], the libxdp library
now provides the functionality which once was in libbpf, this commit updates
af_xdp plugin to depend on libxdp, libbpf still remains a dependency even if
libxdp is present, as it need use libbpf APIs for program loading.
libxdp is distributed within xdp-tool [2], xdp-tools package also
include libbpf in it as dependency, so here installed libxdp v1.2.9 and
libbpf v0.8.0, both from xdp-tool-1.2.9 package.
More information about libxdp compatibility can be found in the libxdp
README [3].
In libbpf v0.8.0, The bpf_prog_load function was deprecated and changed to
bpf_object__open_file and bpf_object__next_program and bpf_object__load,
The bpf_get_link_xdp_id and bpf_set_link_xdp_fd functions were deprecated
and changed to bpf_xdp_attach and bpf_xdp_detach, The bpf_object__unload
function was deprecated and changed to bpf_object__close.
[1] https://github.com/libbpf/libbpf/commit/277846bc6c15
[2] https://github.com/xdp-project/xdp-tools/releases/tag/v1.2.9
[3] https://github.com/xdp-project/xdp-tools/blob/master/lib/libxdp/README.org
Type: improvement
Change-Id: Ifbf6e3aa38bc6e0b77561f26311fd11c15ddb47e
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Diffstat (limited to 'src/plugins/af_xdp/CMakeLists.txt')
-rw-r--r-- | src/plugins/af_xdp/CMakeLists.txt | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/plugins/af_xdp/CMakeLists.txt b/src/plugins/af_xdp/CMakeLists.txt index cbe96aa59dd..1097358799b 100644 --- a/src/plugins/af_xdp/CMakeLists.txt +++ b/src/plugins/af_xdp/CMakeLists.txt @@ -11,36 +11,37 @@ # See the License for the specific language governing permissions and # limitations under the License. -vpp_find_path(BPF_INCLUDE_DIR NAMES bpf/xsk.h) -if (NOT BPF_INCLUDE_DIR) - message(WARNING "libbpf headers not found - af_xdp plugin disabled") +vpp_find_path(XDP_INCLUDE_DIR NAMES xdp/xsk.h) +if (NOT XDP_INCLUDE_DIR) + message(WARNING "libxdp headers not found - af_xdp plugin disabled") return() endif() set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) +vpp_plugin_find_library(af_xdp XDP_LIB libxdp.a) vpp_plugin_find_library(af_xdp BPF_LIB libbpf.a) -vpp_plugin_find_library(af_xdp BPF_ELF_LIB elf) -vpp_plugin_find_library(af_xdp BPF_Z_LIB z) -if (NOT BPF_LIB OR NOT BPF_ELF_LIB OR NOT BPF_Z_LIB) +vpp_plugin_find_library(af_xdp ELF_LIB elf) +vpp_plugin_find_library(af_xdp Z_LIB z) +if (NOT XDP_LIB OR NOT BPF_LIB OR NOT ELF_LIB OR NOT Z_LIB) message(WARNING "af_xdp plugin - missing libraries - af_xdp plugin disabled") return() endif() set(CMAKE_REQUIRED_FLAGS "-fPIC") -set(CMAKE_REQUIRED_INCLUDES "${BPF_INCLUDE_DIR}") -set(CMAKE_REQUIRED_LIBRARIES "${BPF_LIB}" "${BPF_ELF_LIB}" "${BPF_Z_LIB}") +set(CMAKE_REQUIRED_INCLUDES "${XDP_INCLUDE_DIR}") +set(CMAKE_REQUIRED_LIBRARIES "${XDP_LIB}" "${BPF_LIB}" "${ELF_LIB}" "${Z_LIB}") CHECK_C_SOURCE_COMPILES(" -#include <bpf/xsk.h> +#include <xdp/xsk.h> int main(void) { return xsk_socket__create (0, 0, 0, 0, 0, 0, 0); -}" BPF_COMPILES_CHECK) -if (NOT BPF_COMPILES_CHECK) - message(WARNING "af_xdp plugins - no working libbpf found - af_xdp plugin disabled") +}" XDP_COMPILES_CHECK) +if (NOT XDP_COMPILES_CHECK) +message(WARNING "af_xdp plugins - no working libxdp found - af_xdp plugin disabled") return() endif() -include_directories(${BPF_INCLUDE_DIR}) +include_directories(${XDP_INCLUDE_DIR}) add_vpp_plugin(af_xdp SOURCES @@ -65,7 +66,8 @@ add_vpp_plugin(af_xdp test_api.c LINK_LIBRARIES + ${XDP_LIB} ${BPF_LIB} - ${BPF_ELF_LIB} - ${BPF_Z_LIB} + ${ELF_LIB} + ${Z_LIB} ) |