aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/bridger/Makefile
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-04-06 14:09:34 +0200
committerFelix Fietkau <nbd@nbd.name>2022-04-06 14:13:26 +0200
commit64f629e2078b0c76bfe176a6f2f56877391b1b4e (patch)
tree232389aa60279ac6546214c253196b7d2ed6f5e2 /package/network/services/bridger/Makefile
parent54bcf586b0beb510345fdbac731ce1c04b6fa56b (diff)
downloadupstream-64f629e2078b0c76bfe176a6f2f56877391b1b4e.tar.gz
upstream-64f629e2078b0c76bfe176a6f2f56877391b1b4e.tar.bz2
upstream-64f629e2078b0c76bfe176a6f2f56877391b1b4e.zip
bridger: add bridge forwarding accelerator
This package uses BPF to create a fast path which improves bridging performance by bypassing the bridge layer. It also supports creating tc offload rules for hardware that supports it. Hardware offload support can be used with MT7622 + MT7915 once it is merged Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/network/services/bridger/Makefile')
-rw-r--r--package/network/services/bridger/Makefile62
1 files changed, 62 insertions, 0 deletions
diff --git a/package/network/services/bridger/Makefile b/package/network/services/bridger/Makefile
new file mode 100644
index 0000000000..dc32b1a6af
--- /dev/null
+++ b/package/network/services/bridger/Makefile
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2022 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bridger
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL=https://github.com/nbd168/bridger
+PKG_SOURCE_DATE:=2022-04-06
+PKG_SOURCE_VERSION:=e8f6814a85b4ea951657e7018c5d77597400f44a
+PKG_MIRROR_HASH:=f917e099a9ab2a55745a7254239efabe695a722d5c448342198cdc847a4a24ac
+
+PKG_LICENSE:=GPL-2.0
+PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
+
+PKG_BUILD_DEPENDS:=bpf-headers
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+include $(INCLUDE_DIR)/bpf.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/bridger
+ SECTION:=utils
+ CATEGORY:=Base system
+ TITLE:=Bridge forwarding accelerator
+ DEPENDS:=+libbpf +libubox +libubus +libnl-tiny +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf +kmod-sched-act-vlan $(BPF_DEPENDS)
+endef
+
+TARGET_CFLAGS += \
+ -I$(STAGING_DIR)/usr/include/libnl-tiny \
+ -I$(STAGING_DIR)/usr/include
+
+CMAKE_OPTIONS += \
+ -DLIBNL_LIBS=-lnl-tiny
+
+define Build/Compile
+ $(call CompileBPF,$(PKG_BUILD_DIR)/bridger-bpf.c)
+ $(Build/Compile/Default)
+endef
+
+define Package/bridger/install
+ $(INSTALL_DIR) \
+ $(1)/etc/config \
+ $(1)/etc/init.d \
+ $(1)/lib/bpf \
+ $(1)/usr/sbin
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/bridger-bpf.o $(1)/lib/bpf
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)/usr/bin/bridger \
+ $(1)/usr/sbin/
+ $(INSTALL_DATA) ./files/bridger.conf $(1)/etc/config/bridger
+ $(INSTALL_BIN) ./files/bridger.init $(1)/etc/init.d/bridger
+endef
+
+$(eval $(call BuildPackage,bridger))