diff --git a/bcm27xx-eeprom/Makefile b/bcm27xx-eeprom/Makefile index 2d2fac5c4a..ee8fe7b59d 100644 --- a/bcm27xx-eeprom/Makefile +++ b/bcm27xx-eeprom/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bcm27xx-eeprom -PKG_VERSION:=v.2024.01.05-2712 -PKG_RELEASE:=2 +PKG_VERSION:=v2024.04.20-2712 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/rpi-eeprom/tar.gz/$(PKG_VERSION)? -PKG_HASH:=ae1d9f10e4383ee39b291b4b3be1be583f6f32f806f65a1431da65ca4ccffe39 +PKG_HASH:=83ea92e64d9a620376ef081d69f3cdde5a8b376b4a56aeb685f8a56dd10e7b14 PKG_LICENSE:=BSD-3-Clause Custom PKG_LICENSE_FILES:=LICENSE @@ -74,21 +74,20 @@ endef define Package/bcm2711-eeprom/install $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711 $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/default - $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/latest $(CP) $(PKG_BUILD_DIR)/firmware-2711/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2711 - $(CP) $(PKG_BUILD_DIR)/firmware-2711/default $(1)/lib/firmware/raspberrypi/bootloader-2711 - $(CP) $(PKG_BUILD_DIR)/firmware-2711/latest $(1)/lib/firmware/raspberrypi/bootloader-2711 + $(CP) $(PKG_BUILD_DIR)/firmware-2711/default/pieeprom-2024-04-15.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/default + $(CP) $(PKG_BUILD_DIR)/firmware-2711/default/recovery.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/default + $(CP) $(PKG_BUILD_DIR)/firmware-2711/default/vl805-000138c0.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/default endef define Package/bcm2712-eeprom/install $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712 $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712/default - $(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712/latest $(CP) $(PKG_BUILD_DIR)/firmware-2712/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2712 - $(CP) $(PKG_BUILD_DIR)/firmware-2712/default $(1)/lib/firmware/raspberrypi/bootloader-2712 - $(CP) $(PKG_BUILD_DIR)/firmware-2712/latest $(1)/lib/firmware/raspberrypi/bootloader-2712 + $(CP) $(PKG_BUILD_DIR)/firmware-2712/default/pieeprom-2024-04-20.bin $(1)/lib/firmware/raspberrypi/bootloader-2712/default + $(CP) $(PKG_BUILD_DIR)/firmware-2712/default/recovery.bin $(1)/lib/firmware/raspberrypi/bootloader-2712/default endef $(eval $(call BuildPackage,bcm27xx-eeprom)) diff --git a/iperf3/Makefile b/iperf3/Makefile index f9dea85ebc..e165cae703 100644 --- a/iperf3/Makefile +++ b/iperf3/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iperf -PKG_VERSION:=3.14 -PKG_RELEASE:=10 +PKG_VERSION:=3.17.1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/esnet/iperf/archive/refs/tags/ -PKG_HASH:=bbafa2c9687f0f7fe00947dc779b83c91663911e22460005c0ad4623797b3dbd +PKG_HASH:=105b4fe7fbce31c9b94a3fec10c46e3b4b298adc076e1e3af52b990e1faf2db9 PKG_MAINTAINER:=Yannick Chabanois PKG_LICENSE:=BSD-3-Clause diff --git a/iperf3/patches/add-MPTCP-support.patch b/iperf3/patches/add-MPTCP-support.patch index 7dd0246576..e6251d38bb 100644 --- a/iperf3/patches/add-MPTCP-support.patch +++ b/iperf3/patches/add-MPTCP-support.patch @@ -1,67 +1,86 @@ -From 26b066b9d4e92442d55950689dbd9fd101b429a7 Mon Sep 17 00:00:00 2001 -From: Paolo Abeni -Date: Mon, 14 Jun 2021 16:13:02 +0200 -Subject: [PATCH] Add MPTCP support with the --multipath flag +From 5f71968be8e8809e4e7b876ff04b4ef3f22eb141 Mon Sep 17 00:00:00 2001 +From: Geliang Tang +Date: Wed, 6 Mar 2024 11:23:33 +0800 +Subject: [PATCH] add MPTCPv1 support -Also available with the short option '-m'. -The MPTCP protocol is really a TCP variant, so this change -does not implement a new 'struct protocol'. Instead it just -extend the TCP support to optionally enable multipath. +The Multipath TCP (MPTCP) protocol (v1 / RFC 8684) has been added in +the upstream Linux kernel since v5.6. -The only required dependency is IPPROTO_MPTCP definition, -which should be provided by the netinet/in.h header. -To keep things simple, just conditionally provide the required -protocol, if the system header does not have it yet +MPTCP is strongly tied to TCP, and the kernel APIs are almost the same. +The only required dependency is the 'IPPROTO_MPTCP' protocol number +definition, which should be provided by the netinet/in.h header if it +is recent enough. + +This patch adds a new flag '-m' or '--mptcp' to support MPTCPv1. It can +be used like this: + + > iperf3 -m -s + > iperf3 -m -c 127.0.0.1 + +There is no need to check for IPPROTO_MPTCP support in configure.ac +at build time, it is at runtime we will see if the kernel being use +supports or not MPTCP. + +If IPPROTO_MPTCP is not supported by the kernel being tested, it is +normal to fail because the feature is not available and the user +explicitly asked to use MPTCP. + +Closes: https://github.com/esnet/iperf/pull/1659 +Co-developed-by: Paolo Abeni +Signed-off-by: Geliang Tang --- src/iperf.h | 1 + src/iperf3.1 | 4 ++++ - src/iperf_api.c | 11 ++++++++++- - src/iperf_locale.c | 1 + - src/iperf_tcp.c | 18 +++++++++++++++--- - 5 files changed, 31 insertions(+), 4 deletions(-) + src/iperf_api.c | 19 ++++++++++++++++++- + src/iperf_locale.c | 3 +++ + src/iperf_tcp.c | 22 +++++++++++++++++++--- + src/net.c | 10 +++++----- + src/net.h | 2 +- + 7 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/iperf.h b/src/iperf.h -index 3fc91d0c0..e753df944 100644 +index dc3c0d1df..cb821e1f7 100644 --- a/src/iperf.h +++ b/src/iperf.h -@@ -315,6 +315,7 @@ struct iperf_test - int udp_counters_64bit; /* --use-64-bit-udp-counters */ - int forceflush; /* --forceflush - flushing output at every interval */ - int multisend; -+ int multipath; /* -m option - multi-path variant */ +@@ -342,6 +342,7 @@ struct iperf_test int repeating_payload; /* --repeating-payload */ int timestamps; /* --timestamps */ char *timestamp_format; ++ int mptcp; /* -m, --mptcp */ + + char *json_output_string; /* rendered JSON output if json_output is set */ + /* Select related parameters */ diff --git a/src/iperf3.1 b/src/iperf3.1 -index f5eef6eb3..205a8337e 100644 +index 2efd53dea..ebc603408 100644 --- a/src/iperf3.1 +++ b/src/iperf3.1 -@@ -228,6 +228,10 @@ run in client mode, connecting to the specified server. - By default, a test consists of sending data from the client to the - server, unless the \-R flag is specified. +@@ -193,6 +193,10 @@ parameter is specified in ms, and defaults to the system settings. + This functionality depends on the TCP_USER_TIMEOUT socket option, and + will not work on systems that do not support it. .TP -+.BR -m ", " --multipath " " -+use multipath variant for the current protocol. This only applies to ++.BR -m ", " --mptcp " " ++use mptcp variant for the current protocol. This only applies to +TCP and enables MPTCP usage. +.TP - .BR --sctp - use SCTP rather than TCP (FreeBSD and Linux) - .TP + .BR -d ", " --debug " " + emit debugging output. + Primarily (perhaps exclusively) of use to developers. diff --git a/src/iperf_api.c b/src/iperf_api.c -index f8f2321ec..bea53e397 100644 +index 1dcfaabf5..f7f1fbfb8 100644 --- a/src/iperf_api.c +++ b/src/iperf_api.c -@@ -1007,7 +1007,8 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) - {"connect-timeout", required_argument, NULL, OPT_CONNECT_TIMEOUT}, +@@ -1144,6 +1144,9 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) {"idle-timeout", required_argument, NULL, OPT_IDLE_TIMEOUT}, {"rcv-timeout", required_argument, NULL, OPT_RCV_TIMEOUT}, {"snd-timeout", required_argument, NULL, OPT_SND_TIMEOUT}, -+ {"multipath", no_argument, NULL, 'm'}, ++#if defined(linux) ++ {"mptcp", no_argument, NULL, 'm'}, ++#endif {"debug", optional_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, {NULL, 0, NULL, 0} -@@ -1030,7 +1031,7 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) - char *client_username = NULL, *client_rsa_public_key = NULL, *server_rsa_private_key = NULL; +@@ -1169,7 +1172,7 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) + FILE *ptr_file; #endif /* HAVE_SSL */ - while ((flag = getopt_long(argc, argv, "p:f:i:D1VJvsc:ub:t:n:k:l:P:Rw:B:M:N46S:L:ZO:F:A:T:C:dI:hX:", longopts, NULL)) != -1) { @@ -69,49 +88,59 @@ index f8f2321ec..bea53e397 100644 switch (flag) { case 'p': portno = atoi(optarg); -@@ -1103,6 +1104,10 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) - iperf_set_test_role(test, 'c'); - iperf_set_test_server_hostname(test, optarg); - break; -+ case 'm': -+ set_protocol(test, Ptcp); -+ test->multipath = 1; -+ break; - case 'u': - set_protocol(test, Pudp); +@@ -1639,6 +1642,12 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv) + test->settings->connect_timeout = unit_atoi(optarg); client_flag = 1; -@@ -2000,6 +2005,8 @@ send_parameters(struct iperf_test *test) + break; ++#if defined(linux) ++ case 'm': ++ set_protocol(test, Ptcp); ++ test->mptcp = 1; ++ break; ++#endif + case 'h': + usage_long(stdout); + exit(0); +@@ -2216,6 +2225,10 @@ send_parameters(struct iperf_test *test) cJSON_AddTrueToObject(j, "reverse"); if (test->bidirectional) cJSON_AddTrueToObject(j, "bidirectional"); -+ if (test->multipath) -+ cJSON_AddTrueToObject(j, "multipath"); ++#if defined(linux) ++ if (test->mptcp) ++ cJSON_AddTrueToObject(j, "mptcp"); ++#endif if (test->settings->socket_bufsize) cJSON_AddNumberToObject(j, "window", test->settings->socket_bufsize); if (test->settings->blksize) -@@ -2112,6 +2119,8 @@ get_parameters(struct iperf_test *test) +@@ -2332,6 +2345,10 @@ get_parameters(struct iperf_test *test) iperf_set_test_reverse(test, 1); if ((j_p = cJSON_GetObjectItem(j, "bidirectional")) != NULL) iperf_set_test_bidirectional(test, 1); -+ if ((j_p = cJSON_GetObjectItem(j, "multipath")) != NULL) -+ test->multipath = 1; ++#if defined(linux) ++ if ((j_p = cJSON_GetObjectItem(j, "mptcp")) != NULL) ++ test->mptcp = 1; ++#endif if ((j_p = cJSON_GetObjectItem(j, "window")) != NULL) test->settings->socket_bufsize = j_p->valueint; if ((j_p = cJSON_GetObjectItem(j, "len")) != NULL) diff --git a/src/iperf_locale.c b/src/iperf_locale.c -index e1e9dc5b6..a70bd73b9 100644 +index ae0f63a41..d454af4f0 100644 --- a/src/iperf_locale.c +++ b/src/iperf_locale.c -@@ -146,6 +146,7 @@ const char usage_longstr[] = "Usage: iperf3 [-s|-c host] [options]\n" - " --nstreams # number of SCTP streams\n" - #endif /* HAVE_SCTP_H */ - " -u, --udp use UDP rather than TCP\n" -+ " -m, --multipath use MPTCP rather than plain TCP\n" - " --connect-timeout # timeout for control connection setup (ms)\n" - " -b, --bitrate #[KMG][/#] target bitrate in bits/sec (0 for unlimited)\n" - " (default %d Mbit/sec for UDP, unlimited for TCP)\n" ---- a/src/iperf_tcp.c 2023-07-07 23:47:41.000000000 +0200 -+++ b/src/iperf_tcp.c 2023-08-01 14:53:57.832072168 +0200 +@@ -128,6 +128,9 @@ const char usage_longstr[] = "Usage: iperf3 [-s|-c host] [options]\n" + " --snd-timeout # timeout for unacknowledged TCP data\n" + " (in ms, default is system settings)\n" + #endif /* HAVE_TCP_USER_TIMEOUT */ ++#if defined(linux) ++ " -m, --mptcp use MPTCP rather than plain TCP\n" ++#endif + " -d, --debug[=#] emit debugging output\n" + " (optional optional \"=\" and debug level: 1-4. Default is 4 - all messages)\n" + " -v, --version show version information and quit\n" +diff --git a/src/iperf_tcp.c b/src/iperf_tcp.c +index 184a1955e..a10322b75 100644 +--- a/src/iperf_tcp.c ++++ b/src/iperf_tcp.c @@ -44,6 +44,10 @@ #include "net.h" #include "cjson.h" @@ -123,86 +152,106 @@ index e1e9dc5b6..a70bd73b9 100644 #if defined(HAVE_FLOWLABEL) #include "flowlabel.h" #endif /* HAVE_FLOWLABEL */ -@@ -154,6 +158,7 @@ - socklen_t optlen; - int saved_errno; - int rcvbuf_actual, sndbuf_actual; -+ int protocol = 0; - - s = test->listener; - -@@ -166,7 +171,7 @@ +@@ -182,9 +186,10 @@ iperf_tcp_listen(struct iperf_test *test) * * It's not clear whether this is a requirement or a convenience. */ - if (test->no_delay || test->settings->mss || test->settings->socket_bufsize) { -+ if (test->multipath || test->no_delay || test->settings->mss || test->settings->socket_bufsize) { ++ if (test->no_delay || test->mptcp || test->settings->mss || test->settings->socket_bufsize) { struct addrinfo hints, *res; char portstr[6]; ++ int proto = 0; -@@ -194,7 +199,10 @@ + FD_CLR(s, &test->read_set); + close(s); +@@ -210,7 +215,12 @@ iperf_tcp_listen(struct iperf_test *test) return -1; } - if ((s = socket(res->ai_family, SOCK_STREAM, 0)) < 0) { -+ if (test->multipath) -+ protocol = IPPROTO_MPTCP; ++#if defined(linux) ++ if (test->mptcp) ++ proto = IPPROTO_MPTCP; ++#endif + -+ if ((s = socket(res->ai_family, SOCK_STREAM, protocol)) < 0) { ++ if ((s = socket(res->ai_family, SOCK_STREAM, proto)) < 0) { freeaddrinfo(res); i_errno = IESTREAMLISTEN; return -1; -@@ -374,8 +382,12 @@ +@@ -375,8 +385,14 @@ iperf_tcp_connect(struct iperf_test *test) socklen_t optlen; int saved_errno; int rcvbuf_actual, sndbuf_actual; -+ int protocol = 0; ++ int proto = 0; + -+ if (test->multipath) -+ protocol = IPPROTO_MPTCP; ++#if defined(linux) ++ if (test->mptcp) ++ proto = IPPROTO_MPTCP; ++#endif - s = create_socket(test->settings->domain, SOCK_STREAM, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res); -+ s = create_socket(test->settings->domain, SOCK_STREAM, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res, protocol); ++ s = create_socket(test->settings->domain, SOCK_STREAM, proto, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res); if (s < 0) { i_errno = IESTREAMCONNECT; return -1; ---- a/src/net.c 2023-08-01 14:54:14.175802546 +0200 -+++ b/src/net.c 2023-08-01 14:54:40.831362812 +0200 -@@ -121,7 +121,7 @@ +diff --git a/src/net.c b/src/net.c +index c82caff1b..849e919f2 100644 +--- a/src/net.c ++++ b/src/net.c +@@ -124,7 +124,7 @@ timeout_connect(int s, const struct sockaddr *name, socklen_t namelen, /* create a socket */ int -create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out) -+create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out, int protocol) ++create_socket(int domain, int type, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out) { struct addrinfo hints, *local_res = NULL, *server_res = NULL; int s, saved_errno; -@@ -145,7 +145,7 @@ +@@ -133,14 +133,14 @@ create_socket(int domain, int proto, const char *local, const char *bind_dev, in + if (local) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = domain; +- hints.ai_socktype = proto; ++ hints.ai_socktype = type; + if ((gerror = getaddrinfo(local, NULL, &hints, &local_res)) != 0) + return -1; + } + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = domain; +- hints.ai_socktype = proto; ++ hints.ai_socktype = type; + snprintf(portstr, sizeof(portstr), "%d", port); + if ((gerror = getaddrinfo(server, portstr, &hints, &server_res)) != 0) { + if (local) +@@ -148,7 +148,7 @@ create_socket(int domain, int proto, const char *local, const char *bind_dev, in return -1; } - s = socket(server_res->ai_family, proto, 0); -+ s = socket(server_res->ai_family, proto, protocol); ++ s = socket(server_res->ai_family, type, proto); if (s < 0) { if (local) freeaddrinfo(local_res); -@@ -235,7 +235,7 @@ +@@ -238,7 +238,7 @@ netdial(int domain, int proto, const char *local, const char *bind_dev, int loca struct addrinfo *server_res = NULL; int s, saved_errno; - s = create_socket(domain, proto, local, bind_dev, local_port, server, port, &server_res); -+ s = create_socket(domain, proto, local, bind_dev, local_port, server, port, &server_res, 0); ++ s = create_socket(domain, proto, 0, local, bind_dev, local_port, server, port, &server_res); if (s < 0) { return -1; } ---- a/src/net.h 2023-08-01 15:01:58.208159540 +0200 -+++ b/src/net.h 2023-08-01 15:00:46.521337885 +0200 +diff --git a/src/net.h b/src/net.h +index f0e1b4f98..1f5cc4d34 100644 +--- a/src/net.h ++++ b/src/net.h @@ -28,7 +28,7 @@ #define __NET_H int timeout_connect(int s, const struct sockaddr *name, socklen_t namelen, int timeout); -int create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out); -+int create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out, int protocol); ++int create_socket(int domain, int type, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out); int netdial(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, int timeout); int netannounce(int domain, int proto, const char *local, const char *bind_dev, int port); int Nread(int fd, char *buf, size_t count, int prot); diff --git a/iproute2/Makefile b/iproute2/Makefile index 2f9d2f2bc9..a39551ace9 100644 --- a/iproute2/Makefile +++ b/iproute2/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 -PKG_VERSION:=6.7.0 +PKG_VERSION:=6.9.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 -PKG_HASH:=ff942dd9828d7d1f867f61fe72ce433078c31e5d8e4a78e20f02cb5892e8841d +PKG_HASH:=2f643d09ea11a4a2a043c92e2b469b5f73228cbf241ae806760296ed0ec413d0 PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=iptables PKG_LICENSE:=GPL-2.0 diff --git a/iproute2/patches/170-ip_tiny.patch b/iproute2/patches/170-ip_tiny.patch deleted file mode 100644 index 71081c36bc..0000000000 --- a/iproute2/patches/170-ip_tiny.patch +++ /dev/null @@ -1,108 +0,0 @@ ---- a/ip/Makefile -+++ b/ip/Makefile -@@ -19,6 +19,13 @@ RTMONOBJ=rtmon.o - - include ../config.mk - -+STATIC_SYM_FILTER:= -+ifeq ($(IP_CONFIG_TINY),y) -+ STATIC_SYM_FILTER:=iplink_can.c iplink_ipoib.c iplink_vxlan.c -+ CFLAGS += -DIPROUTE2_TINY -+endif -+STATIC_SYM_SOURCES:=$(filter-out $(STATIC_SYM_FILTER),$(wildcard *.c)) -+ - ALLOBJ=$(IPOBJ) $(RTMONOBJ) - SCRIPTS=routel - TARGETS=ip rtmon -@@ -48,7 +55,7 @@ else - - ip: static-syms.o - static-syms.o: static-syms.h --static-syms.h: $(wildcard *.c) -+static-syms.h: $(STATIC_SYM_SOURCES) - files="$^" ; \ - for s in `grep -B 3 '\'; - } else if (mArray.openmptcprouter.wan_addr6 == '') + } else if (mArray.openmptcprouter.wan_addr6 == '' && mArray.openmptcprouter.dns_filter_aaaa == false) { statusMessage += '<%:No IPv6 access%>' + '
'; } diff --git a/net-tools/Makefile b/net-tools/Makefile index 6336c57e59..f45bb466e6 100644 --- a/net-tools/Makefile +++ b/net-tools/Makefile @@ -10,13 +10,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=net-tools -PKG_SOURCE_DATE:=2018-11-03 -PKG_SOURCE_VERSION:=0eebece8c964e3cfa8a018f42b2e7e751a7009a0 +PKG_SOURCE_DATE:=2023-06-29 +PKG_SOURCE_VERSION:=20a78e06a69bd9b6b4e15468201d5d3aa9c395db PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.code.sf.net/p/net-tools/code -PKG_MIRROR_HASH:=9d978b9f8ccae4af623a299155c62d9b3d31213182c785f925bf8704d48a04c9 PKG_MAINTAINER:=Yannick Chabanois PKG_LICENSE:=GPL-2.0-or-later diff --git a/omr-6in4/files/etc/init.d/omr-6in4 b/omr-6in4/files/etc/init.d/omr-6in4 index 533c06f172..42641f7b0c 100755 --- a/omr-6in4/files/etc/init.d/omr-6in4 +++ b/omr-6in4/files/etc/init.d/omr-6in4 @@ -13,6 +13,9 @@ set_shadowsocks_address() { uci -q set shadowsocks-libev.$1.local_address="$2" } +set_shadowsocks_rust_address() { + uci -q set shadowsocks-rust.$1.local_address="$2" +} set_ipv6_state() { local disable_ipv6="$(uci -q get openmptcprouter.settings.disable_ipv6)" @@ -39,8 +42,11 @@ set_ipv6_state() { EOF config_load shadowsocks-libev config_foreach set_shadowsocks_address ss_redir "0.0.0.0" + config_load shadowsocks-rust + config_foreach set_shadowsocks_rust_address ss_redir "0.0.0.0" uci -q batch <<-EOF >/dev/null commit shadowsocks-libev + commit shadowsocks-rust EOF [ ! -f /etc/wgetrc ] && cp /etc/wgetrc4 /etc/wgetrc else @@ -62,12 +68,16 @@ set_ipv6_state() { config_load shadowsocks-libev config_foreach set_shadowsocks_address ss_redir "::" + config_load shadowsocks-rust + config_foreach set_shadowsocks_rust_address ss_redir "::" uci -q batch <<-EOF >/dev/null commit network commit dhcp commit shadowsocks-libev + commit shadowsocks-rust EOF /etc/init.d/shadowsocks-libev restart + /etc/init.d/shadowsocks-rust restart if [ "$(uci -q get v2ray.main.inbounds | grep omr6)" = "" ]; then uci -q batch <<-EOF >/dev/null add_list v2ray.main.inbounds="omr6" diff --git a/omr-schedule/files/usr/share/omr/schedule.d/010-services b/omr-schedule/files/usr/share/omr/schedule.d/010-services index 80ef3c5ed9..4ca4e88bbd 100755 --- a/omr-schedule/files/usr/share/omr/schedule.d/010-services +++ b/omr-schedule/files/usr/share/omr/schedule.d/010-services @@ -101,6 +101,10 @@ if [ -z "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$( _log "Can't find ModemManager, restart it..." /etc/init.d/modemmanager restart 2>&1 >/dev/null sleep 5 +elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ -z "$(timeout 2 mmcli -L)" ]; then + _log "ModemManager doesn't answer, restart it..." + /etc/init.d/modemmanager restart 2>&1 >/dev/null + sleep 5 #elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -z "$(uci -q show network | grep modemmanager)" ]; then # _log "ModemManager not used, stop it..." # /etc/init.d/modemmanager stop 2>&1 >/dev/null diff --git a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter index 8adc4c99bf..b56e88dc97 100755 --- a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter +++ b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter @@ -793,6 +793,12 @@ function interfaces_status() if net then ipaddr = net:ipaddr() end + if ipaddr == "" then + net = ntm:get_network("LAN") + if net then + ipaddr = net:ipaddr() + end + end mArray.openmptcprouter["local_addr"] = ipaddr --mArray.openmptcprouter["local_addr"] = uci:get("network", "lan", "ipaddr") mArray.openmptcprouter["hostname"] = "OpenMPTCProuter" @@ -813,6 +819,12 @@ function interfaces_status() if dns_test == "" then mArray.openmptcprouter["dns"] = true end + if uci:get("dhcp","dnsmasq1","filter_aaa") == "1" then + mArray.openmptcprouter["dns_filter_aaa"] = true + end + if uci:get("dhcp","dnsmasq1","filter_a") == "1" then + mArray.openmptcprouter["dns_filter_a"] = true + end mArray.openmptcprouter["ipv6"] = "disabled" if uci:get("openmptcprouter","settings","disable_ipv6") ~= "1" then diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 56eb267288..6175eb9c4a 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -88,7 +88,7 @@ MY_DEPENDS := \ shadowsocks-rust-sslocal shadowsocks-rust-ssservice LINUX_5_4:shadowsocks-rust-config !LINUX_5_4:shadowsocks-rust-config-nft luci-app-shadowsocks-rust \ luci-proto-external omr-schedule jq luci-app-ddns \ LINUX_6_6:mptcp-bpf-burst LINUX_6_6:mptcp-bpf-first LINUX_6_6:mptcp-bpf-red LINUX_6_6:mptcp-bpf-rr LINUX_6_6:bpftool-full \ - mbim-utils + mbim-utils (TARGET_x86||TARGET_x86_64):kmod-r8169 # !TARGET_ipq40xx:kmod-rt2800-usb (TARGET_x86||TARGET_x86_64):kmod-iwlwifi (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl1000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl100 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl105 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl135 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2030 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3160 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3168 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5150 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2a (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2b (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6050 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7260 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265d (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8260c (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8265 \ # !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu !TARGET_ipq40xx:kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct (TARGET_x86||TARGET_x86_64):kmod-r8169 (TARGET_x86||TARGET_x86_64):kmod-8139too (TARGET_x86||TARGET_x86_64):kmod-r8125 !TARGET_ipq40xx:kmod-rtl8187 kmod-rtl8xxxu (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware diff --git a/openmptcprouter/files/bin/omr-iperf b/openmptcprouter/files/bin/omr-iperf index dcacabcaeb..6ab6113284 100755 --- a/openmptcprouter/files/bin/omr-iperf +++ b/openmptcprouter/files/bin/omr-iperf @@ -10,7 +10,7 @@ PORTS=$(uci -q get iperf.$SERVER.ports | sed 's/,/ /g') PORT="${PORTS%% *}" echo $KEY | base64 -d > /tmp/iperf.pem if [ -n "$PASSWORD" ] && [ -n "$USER" ] && [ -n "$KEY" ]; then - IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT ${@} + IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem --use-pkcs1-padding -c $HOST -p $PORT ${@} else iperf3 -c $HOST -p $PORT ${@} fi diff --git a/openmptcprouter/files/etc/uci-defaults/1990-omr-tracker b/openmptcprouter/files/etc/uci-defaults/1990-omr-tracker index 8db468f60c..92dba297c4 100755 --- a/openmptcprouter/files/etc/uci-defaults/1990-omr-tracker +++ b/openmptcprouter/files/etc/uci-defaults/1990-omr-tracker @@ -6,7 +6,7 @@ if [ "$(uci -q get omr-tracker.omrvpn)" = "" ]; then set omr-tracker.omrvpn=interface set omr-tracker.omrvpn.type="none" set omr-tracker.omrvpn.timeout=10 - set omr-tracker.omrvpn.tries=3 + set omr-tracker.omrvpn.tries=2 set omr-tracker.omrvpn.interval=5 set omr-tracker.omrvpn.mail_alert=0 set omr-tracker.omrvpn.enabled=1 @@ -20,7 +20,7 @@ if [ "$(uci -q get omr-tracker.omrvpn)" = "" ]; then set omr-tracker.omrvpn.reliability='1' set omr-tracker.omrvpn.count='1' set omr-tracker.omrvpn.failure_interval='3' - set omr-tracker.omrvpn.tries_up='3 + set omr-tracker.omrvpn.tries_up='1' commit omr-tracker EOF fi diff --git a/xray-core/Makefile b/xray-core/Makefile index fe391a1181..68b48c34fe 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray -PKG_VERSION:=1.8.11 +PKG_VERSION:=1.8.13 PKG_RELEASE:=1 PKG_LICENSE:=MPLv2 @@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Yannick Chabanois PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/XTLS/Xray-core.git -PKG_SOURCE_VERSION:=b98d060ee0d709b069251c64543029020c87159b +PKG_SOURCE_VERSION:=3120ca41210312c5c8b1795eaf3dbf54531e437e PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1