From beb7cdabf730c00bdda713ca32cc74272bbc2120 Mon Sep 17 00:00:00 2001 From: Vincent Li Date: Fri, 24 Jan 2025 17:24:22 -0800 Subject: [PATCH] loxilb: add loxilb 0.9.8 addon for loongarch64 loxilb ebpf program relies on libbpf 0.8 which does not have loongarch64 support. backported libbpf 1.2.3 loongarch support to libbpf 0.8 loxilb 0.9.8 now load ebpf program through libbpf, no external ntc command required, so remove ntc Signed-off-by: Vincent Li --- config/rootfiles/common/loxilb | 6 +++ lfs/loxilb | 82 ++++++++++++++++++++++++++++++++++ lfs/loxilb-tc | 80 +++++++++++++++++++++++++++++++++ make.sh | 1 + 4 files changed, 169 insertions(+) create mode 100644 config/rootfiles/common/loxilb create mode 100644 lfs/loxilb create mode 100644 lfs/loxilb-tc diff --git a/config/rootfiles/common/loxilb b/config/rootfiles/common/loxilb new file mode 100644 index 000000000..fb7c05444 --- /dev/null +++ b/config/rootfiles/common/loxilb @@ -0,0 +1,6 @@ +opt/loxilb/llb_ebpf_emain.o +opt/loxilb/llb_ebpf_main.o +opt/loxilb/llb_kern_sock.o +opt/loxilb/llb_xdp_main.o +opt/loxilb/loxilb_libdp.o +usr/bin/loxilb diff --git a/lfs/loxilb b/lfs/loxilb new file mode 100644 index 000000000..242b17572 --- /dev/null +++ b/lfs/loxilb @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2024 IPFire Team # +# Copyright (C) 2024 BPFire +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.9.8 + +THISAPP = loxilb-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = b5dd467a2a5303c4a902c49abce844a0d62fbca78b2a209ca5355b3278e9b7b2a11a2c39abba5bf8c1144dd2f51485a17abd0bf96ca19958a48e44bfb636c1ce + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf /opt/loxilb + + cd $(DIR_APP) && mkdir -p /opt/loxilb/dp + cd $(DIR_APP) && make + cd $(DIR_APP)/loxilb-ebpf/kernel && cp -f *.o /opt/loxilb/ + cd $(DIR_APP) && cp -f loxilb /usr/bin/loxilb + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/loxilb-tc b/lfs/loxilb-tc new file mode 100644 index 000000000..feafc64b9 --- /dev/null +++ b/lfs/loxilb-tc @@ -0,0 +1,80 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2024 IPFire Team # +# Copyright (C) 2024 BPFire +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 5.11.0 + +THISAPP = loxilb-tc-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_BLAKE2 = 07ff73f6ee40ad8f4d8e74fcd42dc9adf5b1b6ed145ff0c505524913f6362d6a39510c30f9b22b2e8c7ed9a0e14875b2417068edb379c2af1feb9639edd0dd11 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +b2 : $(subst %,%_BLAKE2,$(objects)) + +############################################################################### +# Downloading, checking, b2sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP)/libbpf/src/ && mkdir build && DESTDIR=build OBJDIR=build make install + cd $(DIR_APP) && export PKG_CONFIG_PATH=$(DIR_APP)/libbpf/src/ && \ + LIBBPF_FORCE=on LIBBPF_DIR=$(DIR_APP)/libbpf/src/build ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && cp -f tc/tc /usr/bin/ntc + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index 5b82b099e..2e5010f89 100755 --- a/make.sh +++ b/make.sh @@ -2092,6 +2092,7 @@ build_system() { lfsmake2 libbpf lfsmake2 llvm-project lfsmake2 xdp-tools + lfsmake2 loxilb lfsmake2 linux lfsmake2 yt6801