mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
64f629e207
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>
63 lines
1.6 KiB
Makefile
63 lines
1.6 KiB
Makefile
#
|
|
# 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))
|