mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
ff18576f84
Currently, xdp-tools doesn't compile on build systems where bpftool is installed because additional tools and BPF programs will be compiled then, which results in build errors. This commit disables the compilation of those bpftool-dependent tools. Signed-off-by: Til Kaiser <mail@tk154.de> Link: https://github.com/openwrt/openwrt/pull/16787 Signed-off-by: Robert Marko <robimarko@gmail.com>
146 lines
4.0 KiB
Makefile
146 lines
4.0 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=xdp-tools
|
|
PKG_RELEASE:=1
|
|
PKG_VERSION:=1.4.3
|
|
PKG_HASH:=6e727e2c7c079dec86575c5d0e7aac7ecd582aabe04b3b176d7ef50e653b60c0
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://codeload.github.com/xdp-project/xdp-tools/tar.gz/v$(PKG_VERSION)?
|
|
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_VERSION))
|
|
|
|
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
|
|
|
PKG_BUILD_DEPENDS:=bpf-headers
|
|
PKG_FLAGS:=nonshared
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/bpf.mk
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
|
|
define Package/libxdp
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libxdp - Library for use with XDP
|
|
LICENSE:=LGPL-2.1 OR BSD-2-Clause
|
|
ABI_VERSION:=$(PKG_ABI_VERSION)
|
|
URL:=https://github.com/xdp-project/xdp-tools/
|
|
DEPENDS:=+libbpf $(BPF_DEPENDS)
|
|
endef
|
|
|
|
define Package/libxdp/description
|
|
libxdp - library for attaching XDP programs and using AF_XDP sockets
|
|
endef
|
|
|
|
define Package/xdp-tools/Default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
LICENSE:=GPL-2.0-only
|
|
URL:=https://github.com/xdp-project/xdp-tools/
|
|
DEPENDS:=+libxdp
|
|
endef
|
|
|
|
define Package/xdp-filter
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdp-filter - a simple XDP-powered packet filter
|
|
endef
|
|
|
|
define Package/xdp-filter/description
|
|
xdp-filter is a packet filtering utility powered by XDP. It is deliberately
|
|
simple and so does not have the same matching capabilities as, e.g.,
|
|
netfilter. Instead, thanks to XDP, it can achieve very high drop rates:
|
|
tens of millions of packets per second on a single CPU core.
|
|
endef
|
|
|
|
|
|
define Package/xdp-loader
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdp-loader - an XDP program loader
|
|
endef
|
|
|
|
define Package/xdp-loader/description
|
|
xdp-loader is a simple loader for XDP programs with support for attaching
|
|
multiple programs to the same interface. To achieve this it exposes the same
|
|
load and unload semantics exposed by the libxdp library.
|
|
endef
|
|
|
|
define Package/xdpdump
|
|
$(call Package/xdp-tools/Default)
|
|
TITLE:=xdpdump - tool for capturing packets at the XDP layer
|
|
DEPENDS+=+libpcap
|
|
endef
|
|
|
|
define Package/xdpdump/description
|
|
xdpdump - a simple tcpdump like tool for capturing packets at the XDP layer
|
|
endef
|
|
|
|
TARGET_LDFLAGS += $(INTL_LDFLAGS)
|
|
|
|
CONFIGURE_VARS += \
|
|
FORCE_SYSTEM_LIBBPF=1 \
|
|
CC="$(TARGET_CC)" \
|
|
CFLAGS="$(TARGET_CFLAGS)" \
|
|
LDFLAGS="$(TARGET_LDFLAGS)" \
|
|
CLANG="$(CLANG)" \
|
|
BPF_TARGET="$(BPF_ARCH)-linux-gnu" \
|
|
LLC="$(LLVM_LLC)" \
|
|
BPF_LDFLAGS="-march=$(BPF_TARGET) -mcpu=v3" \
|
|
BPFTOOL=""
|
|
|
|
ifneq ($(findstring s,$(OPENWRT_VERBOSE)),)
|
|
MAKE_FLAGS+=V=1
|
|
endif
|
|
|
|
MAKE_VARS += \
|
|
PREFIX=/usr \
|
|
RUNDIR=/tmp/run
|
|
|
|
define Build/Configure
|
|
$(call Build/Configure/Default)
|
|
echo "BPF_CFLAGS += $(BPF_CFLAGS) -Wno-error -fno-stack-protector" >> $(PKG_BUILD_DIR)/config.mk
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include/xdp
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/xdp/*.h $(1)/usr/include/xdp/
|
|
$(INSTALL_DIR) $(1)/usr/lib/bpf
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.{a,so*} $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxdp.pc \
|
|
$(1)/usr/lib/pkgconfig/
|
|
$(SED) 's,/usr/include,$$$${prefix}/include,g' \
|
|
$(1)/usr/lib/pkgconfig/libxdp.pc
|
|
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' \
|
|
$(1)/usr/lib/pkgconfig/libxdp.pc
|
|
endef
|
|
|
|
define Package/xdp-filter/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-filter $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/xdp-loader/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdp-loader $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/xdpdump/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xdpdump $(1)/usr/sbin
|
|
endef
|
|
|
|
define Package/libxdp/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/bpf
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxdp.so.* $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/bpf/*.o $(1)/usr/lib/bpf
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libxdp))
|
|
$(eval $(call BuildPackage,xdp-filter))
|
|
$(eval $(call BuildPackage,xdp-loader))
|
|
$(eval $(call BuildPackage,xdpdump))
|