123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- include $(TOPDIR)/rules.mk
- PKG_NAME:=xdp-tools
- PKG_RELEASE:=1
- PKG_VERSION:=1.2.9
- PKG_HASH:=159ed8d3c8195d812ec3cde83bd736245a72743af372998320d39c2ba69ab142
- 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_TARGET)" \
- LLC="$(LLVM_LLC)"
- MAKE_VARS += \
- PREFIX=/usr \
- RUNDIR=/tmp/run
- define Build/Configure
- $(call Build/Configure/Default)
- echo "BPF_CFLAGS += -I$(BPF_HEADERS_DIR)/tools/lib" >> $(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))
|