1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
include $(TOPDIR)/rules.mk
PKG_NAME:=xdp-tools
PKG_RELEASE:=$(AUTORELEASE)
PKG_VERSION:=1.2.8
PKG_HASH:=2c575e5242e60055b0e7fc720f5b6ea87d74911f967dde3d50046d751f35bff0
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))
|