🎉 Sync 2026-06-14 00:48:20

This commit is contained in:
github-actions[bot] committed 2026-06-14 00:48:20 +08:00
1 parent e7e8c48a5e
commit 0b5f398c4f
10 files changed
+169645 -131

No files matched your search

+56 -48
View File
@@ -1,27 +1,39 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2023 ImmortalWrt.org
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=dae PKG_NAME:=dae
PKG_VERSION:=1.1.0 PKG_VERSION:=2026.06.13.2
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip PKG_SOURCE:=dae-src-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/daeuniverse/dae/releases/download/v$(PKG_VERSION)/dae-full-src.zip? PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_HASH:=skip PKG_HASH:=skip
PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE:=AGPL-3.0-only
PKG_LICENSE_FILE:=LICENSE PKG_LICENSE_FILE:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> PKG_MAINTAINER:=kenzok8
DAE_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(DAE_BUILD_DIR)/core
PKG_BUILD_DEPENDS:=golang/host bpf-headers PKG_BUILD_DEPENDS:=golang/host bpf-headers
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16 PKG_BUILD_FLAGS:=no-mips16
# armv7 lacks a CO-RE vmlinux.h for the trace eBPF, so trace's bpf2go fails to
# build there. Apply sbwml/openwrt_helloworld's arm patches (add vmlinux-arm.h
# + drop the kprobe that doesn't work) to let dae build on arm targets.
ifeq ($(ARCH),arm)
PATCH_DIR:=$(CURDIR)/patches_arm
endif
GO_PKG:=github.com/daeuniverse/dae GO_PKG:=github.com/daeuniverse/dae
GO_PKG_EXCLUDES:=control/kern/tests GO_PKG_EXCLUDES:=control/kern/tests
GO_PKG_LDFLAGS:= \
-s -w -buildid= \
-linkmode external -extldflags '-static -Wl,-s'
GO_PKG_LDFLAGS_X:= \ GO_PKG_LDFLAGS_X:= \
$(GO_PKG)/cmd.Version=$(PKG_VERSION) \ $(GO_PKG)/cmd.Version=$(PKG_VERSION) \
$(GO_PKG)/common/consts.MaxMatchSetLen_=1024 $(GO_PKG)/common/consts.MaxMatchSetLen_=1024
@@ -31,7 +43,10 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/bpf.mk include $(INCLUDE_DIR)/bpf.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
UNZIP_CMD:=unzip -q -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) GO_PKG_BUILD_VARS+= GOFLAGS="-trimpath -buildvcs=false -pgo=auto"
GO_PKG_TARGET_VARS+= \
CGO_LDFLAGS="$(TARGET_LDFLAGS) -static -Wl,-s" \
GOEXPERIMENT=newinliner,simd
define Package/dae/Default define Package/dae/Default
SECTION:=net SECTION:=net
@@ -43,36 +58,31 @@ endef
define Package/dae define Package/dae
$(call Package/dae/Default) $(call Package/dae/Default)
TITLE:=A lightweight and high-performance transparent proxy solution TITLE:=A lightweight and high-performance transparent proxy solution
# You need enable KERNEL_DEBUG_INFO_BTF and KERNEL_BPF_EVENTS DEPENDS:=$(GO_ARCH_DEPENDS) \
DEPENDS:=$(GO_ARCH_DEPENDS) $(BPF_DEPENDS) \ +ca-bundle +kmod-sched-core +kmod-sched-bpf \
+ca-bundle +kmod-sched-core +kmod-sched-bpf +kmod-xdp-sockets-diag \ +kmod-veth +v2ray-geoip +v2ray-geosite \
+kmod-veth +@KERNEL_XDP_SOCKETS \
+DAE_USE_VMLINUX_BTF:vmlinux-btf
endef endef
define Package/dae-geoip define Package/dae/config
$(call Package/dae/Default) choice
TITLE:=geoip for dae prompt "BTF source for CO-RE"
DEPENDS:=+dae +v2ray-geoip default DAE_USE_KERNEL_BTF
PKGARCH:=all depends on PACKAGE_dae
endef
define Package/dae-geosite config DAE_USE_KERNEL_BTF
$(call Package/dae/Default) bool "Use kernel BTF (integrated)"
TITLE:=geosite for dae depends on KERNEL_DEBUG_INFO_BTF
DEPENDS:=+dae +v2ray-geosite
PKGARCH:=all config DAE_USE_VMLINUX_BTF
bool "Use vmlinux-btf package"
endchoice
endef endef
define Package/dae/description define Package/dae/description
dae, means goose, is a lightweight and high-performance transparent dae, means goose, is a lightweight and high-performance transparent
proxy solution. proxy solution.
In order to improve the traffic diversion performance as much as possible,
dae runs the transparent proxy and traffic diversion suite in the linux
kernel by eBPF. Therefore, we have the opportunity to make the direct
traffic bypass the forwarding by proxy application and achieve true direct
traffic through. Under such a magic trick, there is almost no performance
loss and additional resource consumption for direct traffic.
endef endef
define Package/dae/conffiles define Package/dae/conffiles
@@ -86,8 +96,15 @@ DAE_CFLAGS:= \
-I$(BPF_HEADERS_DIR)/tools/lib \ -I$(BPF_HEADERS_DIR)/tools/lib \
-I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic -I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic
define Build/Prepare
mkdir -p $(DAE_BUILD_DIR)
$(TAR) --strip-components=1 -C $(DAE_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
$(if $(wildcard $(PATCH_DIR)/*.patch),$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),))
endef
define Build/Compile define Build/Compile
( \ ( \
pushd $(PKG_BUILD_DIR) ; \
export \ export \
$(GO_GENERAL_BUILD_CONFIG_VARS) \ $(GO_GENERAL_BUILD_CONFIG_VARS) \
$(GO_PKG_BUILD_CONFIG_VARS) \ $(GO_PKG_BUILD_CONFIG_VARS) \
@@ -97,17 +114,20 @@ define Build/Compile
BPF_CFLAGS="$(DAE_CFLAGS)" \ BPF_CFLAGS="$(DAE_CFLAGS)" \
BPF_TARGET="bpfel,bpfeb" \ BPF_TARGET="bpfel,bpfeb" \
BPF_TRACE_TARGET="$(GO_ARCH)" ; \ BPF_TRACE_TARGET="$(GO_ARCH)" ; \
go generate $(PKG_BUILD_DIR)/control/control.go ; \ go generate ./control/control.go ; \
go generate $(PKG_BUILD_DIR)/trace/trace.go ; \ go generate ./trace/trace.go ; \
$(call GoPackage/Build/Compile) ; \ popd ; \
) )
$(call GoPackage/Build/Compile)
endef endef
define Package/dae/install define Package/dae/install
$(call GoPackage/Package/Install/Bin,$(1)) $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dae $(1)/usr/bin/dae
$(INSTALL_DIR) $(1)/etc/dae/ $(INSTALL_DIR) $(1)/etc/dae
$(INSTALL_CONF) $(PKG_BUILD_DIR)/example.dae $(1)/etc/dae/ $(INSTALL_CONF) $(PKG_BUILD_DIR)/example.dae $(1)/etc/dae/example.dae
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) $(CURDIR)/files/dae.config $(1)/etc/config/dae $(INSTALL_CONF) $(CURDIR)/files/dae.config $(1)/etc/config/dae
@@ -116,17 +136,5 @@ define Package/dae/install
$(INSTALL_BIN) $(CURDIR)/files/dae.init $(1)/etc/init.d/dae $(INSTALL_BIN) $(CURDIR)/files/dae.init $(1)/etc/init.d/dae
endef endef
define Package/dae-geoip/install
$(INSTALL_DIR) $(1)/usr/share/dae
$(LN) ../v2ray/geoip.dat $(1)/usr/share/dae/geoip.dat
endef
define Package/dae-geosite/install
$(INSTALL_DIR) $(1)/usr/share/dae
$(LN) ../v2ray/geosite.dat $(1)/usr/share/dae/geosite.dat
endef
$(eval $(call GoBinPackage,dae)) $(eval $(call GoBinPackage,dae))
$(eval $(call BuildPackage,dae)) $(eval $(call BuildPackage,dae))
$(eval $(call BuildPackage,dae-geoip))
$(eval $(call BuildPackage,dae-geosite))
+1
View File
@@ -27,6 +27,7 @@ start_service() {
config_get log_maxsize "config" "log_maxsize" "1" config_get log_maxsize "config" "log_maxsize" "1"
procd_open_instance "$CONF" procd_open_instance "$CONF"
procd_set_param env DAE_LOCATION_ASSET="/usr/share/v2ray"
procd_set_param command "$PROG" run procd_set_param command "$PROG" run
procd_append_param command --config "$config_file" procd_append_param command --config "$config_file"
procd_append_param command --disable-timestamp procd_append_param command --disable-timestamp
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,24 @@
--- a/trace/kern/trace.c
+++ b/trace/kern/trace.c
@@ -228,7 +228,7 @@ KPROBE_SKB_AT(1)
KPROBE_SKB_AT(2)
KPROBE_SKB_AT(3)
KPROBE_SKB_AT(4)
-KPROBE_SKB_AT(5)
+//KPROBE_SKB_AT(5)
SEC("kprobe/skb_lifetime_termination")
int kprobe_skb_lifetime_termination(struct pt_regs *ctx)
--- a/trace/trace.go
+++ b/trace/trace.go
@@ -212,8 +212,8 @@ func attachBpfToTargets(objs *bpfObjects
kp, err = link.Kprobe(fn, objs.KprobeSkb3, nil)
case 4:
kp, err = link.Kprobe(fn, objs.KprobeSkb4, nil)
- case 5:
- kp, err = link.Kprobe(fn, objs.KprobeSkb5, nil)
+ //case 5:
+ // kp, err = link.Kprobe(fn, objs.KprobeSkb5, nil)
}
if err != nil {
logrus.Debugf("failed to attach kprobe to %s: %+v\n", fn, err)
-7
View File
@@ -1,7 +0,0 @@
#!/bin/sh
case "$1" in
"dae")
dae --version | grep "$PKG_VERSION"
;;
esac
+48 -69
View File
@@ -1,31 +1,41 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2023 ImmortalWrt.org
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=daed PKG_NAME:=daed
PKG_VERSION:=1.27.0 PKG_VERSION:=2026.06.08
PKG_RELEASE:=6 PKG_RELEASE:=7
PKG_SOURCE_PROTO:=git PKG_SOURCE:=daed-src-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/daeuniverse/daed.git PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src
PKG_SOURCE_VERSION:=v$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_MIRROR_HASH:=skip PKG_HASH:=skip
PKG_LICENSE:=AGPL-3.0-only MIT PKG_LICENSE:=AGPL-3.0-only MIT
PKG_LICENSE_FILES:=LICENSE wing/LICENSE PKG_LICENSE_FILES:=LICENSE wing/LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> PKG_MAINTAINER:=kenzok8
DAED_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(DAED_BUILD_DIR)/wing
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/wing
PKG_BUILD_DEPENDS:=golang/host bpf-headers PKG_BUILD_DEPENDS:=golang/host bpf-headers
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16 PKG_BUILD_FLAGS:=no-mips16
# armv7 lacks a CO-RE vmlinux.h for the trace eBPF (under wing/dae-core), so
# trace's bpf2go fails there. Apply sbwml/openwrt_helloworld's arm patches
# (add vmlinux-arm.h + drop the kprobe that doesn't work) to build on arm.
ifeq ($(ARCH),arm)
PATCH_DIR:=$(CURDIR)/patches_arm
endif
GO_PKG:=github.com/daeuniverse/dae-wing GO_PKG:=github.com/daeuniverse/dae-wing
GO_PKG_LDFLAGS:= \ GO_PKG_LDFLAGS:= \
-s -w -buildid= \
-linkmode external -extldflags '-static -Wl,-s' \
-X '$(GO_PKG)/db.AppDescription=$(PKG_NAME) is a integration solution of dae, API and UI.' -X '$(GO_PKG)/db.AppDescription=$(PKG_NAME) is a integration solution of dae, API and UI.'
GO_PKG_LDFLAGS_X= \ GO_PKG_LDFLAGS_X:= \
$(GO_PKG)/db.AppName=$(PKG_NAME) \ $(GO_PKG)/db.AppName=$(PKG_NAME) \
$(GO_PKG)/db.AppVersion=$(PKG_VERSION) $(GO_PKG)/db.AppVersion=$(PKG_VERSION)
GO_PKG_TAGS:=embedallowed,trace GO_PKG_TAGS:=embedallowed,trace
@@ -34,7 +44,10 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/bpf.mk include $(INCLUDE_DIR)/bpf.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
TAR_CMD=$(HOST_TAR) -C $(BUILD_DIR)/ $(TAR_OPTIONS) GO_PKG_BUILD_VARS+= GOFLAGS="-trimpath -buildvcs=false -pgo=auto"
GO_PKG_TARGET_VARS+= \
CGO_LDFLAGS="$(TARGET_LDFLAGS) -static -Wl,-s" \
GOEXPERIMENT=newinliner,simd
define Package/daed/Default define Package/daed/Default
SECTION:=net SECTION:=net
@@ -46,24 +59,26 @@ endef
define Package/daed define Package/daed
$(call Package/daed/Default) $(call Package/daed/Default)
TITLE:=A Modern Dashboard For dae TITLE:=A Modern Dashboard For dae
# You need enable KERNEL_DEBUG_INFO_BTF and KERNEL_BPF_EVENTS DEPENDS:=$(GO_ARCH_DEPENDS) \
DEPENDS:=$(GO_ARCH_DEPENDS) $(BPF_DEPENDS) \ +ca-bundle +kmod-sched-core +kmod-sched-bpf \
+ca-bundle +kmod-sched-core +kmod-sched-bpf +kmod-xdp-sockets-diag \ +kmod-veth +v2ray-geoip +v2ray-geosite \
+kmod-veth +@KERNEL_XDP_SOCKETS \
+DAED_USE_VMLINUX_BTF:vmlinux-btf
endef endef
define Package/daed-geoip define Package/daed/config
$(call Package/daed/Default) choice
TITLE:=geoip for daed prompt "BTF source for CO-RE"
DEPENDS:=+daed +v2ray-geoip default DAED_USE_KERNEL_BTF
PKGARCH:=all depends on PACKAGE_daed
endef
define Package/daed-geosite config DAED_USE_KERNEL_BTF
$(call Package/daed/Default) bool "Use kernel BTF (integrated)"
TITLE:=geosite for daed depends on KERNEL_DEBUG_INFO_BTF
DEPENDS:=+daed +v2ray-geosite
PKGARCH:=all config DAED_USE_VMLINUX_BTF
bool "Use vmlinux-btf package"
endchoice
endef endef
define Package/daed/description define Package/daed/description
@@ -76,29 +91,10 @@ define Package/daed/conffiles
/etc/config/daed /etc/config/daed
endef endef
WEB_FILE:=$(PKG_NAME)-web-$(PKG_VERSION).zip
define Download/daed-web
URL:=https://github.com/daeuniverse/daed/releases/download/v$(PKG_VERSION)
URL_FILE:=web.zip
FILE:=$(WEB_FILE)
HASH:=skip
endef
define Build/Prepare define Build/Prepare
$(call Build/Prepare/Default) mkdir -p $(DAED_BUILD_DIR)
$(TAR) --strip-components=1 -C $(DAED_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
( \ $(if $(wildcard $(PATCH_DIR)/*.patch),$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),))
mkdir -p $(PKG_BUILD_DIR)/webrender ; \
unzip -q -d $(PKG_BUILD_DIR)/webrender/ $(DL_DIR)/$(WEB_FILE) ; \
find $(PKG_BUILD_DIR)/webrender/web -type f -size +4k ! -name "*.gz" ! -name "*.woff" ! -name "*.woff2" -exec sh -c '\
gzip -9 -k "{}"; \
if [ "$$$$(stat -c %s "{}")" -lt "$$$$(stat -c %s "{}.gz")" ]; then \
rm "{}.gz"; \
else \
rm "{}"; \
fi' \
";" ; \
)
endef endef
DAE_CFLAGS:= \ DAE_CFLAGS:= \
@@ -107,10 +103,6 @@ DAE_CFLAGS:= \
-I$(BPF_HEADERS_DIR)/tools/lib \ -I$(BPF_HEADERS_DIR)/tools/lib \
-I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic -I$(BPF_HEADERS_DIR)/arch/$(BPF_KARCH)/include/asm/mach-generic
ifneq ($(CONFIG_USE_MUSL),)
TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
endif
define Build/Compile define Build/Compile
( \ ( \
pushd $(PKG_BUILD_DIR) ; \ pushd $(PKG_BUILD_DIR) ; \
@@ -126,11 +118,11 @@ define Build/Compile
BPF_CFLAGS="$(DAE_CFLAGS)" \ BPF_CFLAGS="$(DAE_CFLAGS)" \
BPF_TARGET="bpfel,bpfeb" \ BPF_TARGET="bpfel,bpfeb" \
BPF_TRACE_TARGET="$(GO_ARCH)" ; \ BPF_TRACE_TARGET="$(GO_ARCH)" ; \
go generate control/control.go ; \ go generate ./control/control.go ; \
go generate trace/trace.go ; \ go generate ./trace/trace.go ; \
popd ; \ popd ; \
$(call GoPackage/Build/Compile) ; \
) )
$(call GoPackage/Build/Compile)
endef endef
define Package/daed/install define Package/daed/install
@@ -145,18 +137,5 @@ define Package/daed/install
$(INSTALL_BIN) $(CURDIR)/files/daed.init $(1)/etc/init.d/daed $(INSTALL_BIN) $(CURDIR)/files/daed.init $(1)/etc/init.d/daed
endef endef
define Package/daed-geoip/install
$(INSTALL_DIR) $(1)/usr/share/daed
$(LN) ../v2ray/geoip.dat $(1)/usr/share/daed/geoip.dat
endef
define Package/daed-geosite/install
$(INSTALL_DIR) $(1)/usr/share/daed
$(LN) ../v2ray/geosite.dat $(1)/usr/share/daed/geosite.dat
endef
$(eval $(call Download,daed-web))
$(eval $(call GoBinPackage,daed)) $(eval $(call GoBinPackage,daed))
$(eval $(call BuildPackage,daed)) $(eval $(call BuildPackage,daed))
$(eval $(call BuildPackage,daed-geoip))
$(eval $(call BuildPackage,daed-geosite))
+4
View File
@@ -21,6 +21,7 @@ start_service() {
config_get log_maxsize "config" "log_maxsize" "5" config_get log_maxsize "config" "log_maxsize" "5"
procd_open_instance "$CONF" procd_open_instance "$CONF"
procd_set_param env DAE_LOCATION_ASSET="/usr/share/v2ray"
procd_set_param command "$PROG" run procd_set_param command "$PROG" run
procd_append_param command --config "/etc/daed/" procd_append_param command --config "/etc/daed/"
procd_append_param command --listen "$listen_addr" procd_append_param command --listen "$listen_addr"
@@ -39,6 +40,9 @@ start_service() {
stop_service() { stop_service() {
rm -f "$LOG" rm -f "$LOG"
# daed creates /run/netns/daens on start; a stale entry makes the next
# start fail with "failed to create netns: ... file exists". Clean it here.
ip netns del daens 2>/dev/null || true
} }
service_triggers() { service_triggers() {
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,24 @@
--- a/dae-core/trace/kern/trace.c
+++ b/dae-core/trace/kern/trace.c
@@ -228,7 +228,7 @@ KPROBE_SKB_AT(1)
KPROBE_SKB_AT(2)
KPROBE_SKB_AT(3)
KPROBE_SKB_AT(4)
-KPROBE_SKB_AT(5)
+//KPROBE_SKB_AT(5)
SEC("kprobe/skb_lifetime_termination")
int kprobe_skb_lifetime_termination(struct pt_regs *ctx)
--- a/dae-core/trace/trace.go
+++ b/dae-core/trace/trace.go
@@ -206,8 +206,8 @@ func attachBpfToTargets(objs *bpfObjects
kp, err = link.Kprobe(fn, objs.KprobeSkb3, nil)
case 4:
kp, err = link.Kprobe(fn, objs.KprobeSkb4, nil)
- case 5:
- kp, err = link.Kprobe(fn, objs.KprobeSkb5, nil)
+ //case 5:
+ // kp, err = link.Kprobe(fn, objs.KprobeSkb5, nil)
}
if err != nil {
logrus.Debugf("failed to attach kprobe to %s: %+v\n", fn, err)
-7
View File
@@ -1,7 +0,0 @@
#!/bin/sh
case "$1" in
"daed")
daed --version | grep "$PKG_VERSION"
;;
esac