mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-12 10:31:51 +00:00
Update iproute2
This commit is contained in:
parent
d1f504de31
commit
3daacde7bc
12 changed files with 381 additions and 222 deletions
|
@ -8,12 +8,12 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=6.11.0
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=6.12.0
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=1f795398a04aeaacd06a8f6ace2cfd913c33fa5953ca99daae83bb5c534611c3
|
||||
PKG_HASH:=bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
@ -77,14 +77,7 @@ $(call Package/iproute2/Default)
|
|||
VARIANT:=tcfull
|
||||
PROVIDES:=tc
|
||||
ALTERNATIVES:=400:/sbin/tc:/usr/libexec/tc-full
|
||||
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +libxtables +tc-mod-iptables
|
||||
endef
|
||||
|
||||
define Package/tc-mod-iptables
|
||||
$(call Package/iproute2/Default)
|
||||
TITLE:=Traffic control module - iptables action
|
||||
VARIANT:=tcfull
|
||||
DEPENDS:=+libxtables +libbpf
|
||||
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +libxtables
|
||||
endef
|
||||
|
||||
define Package/genl
|
||||
|
@ -102,7 +95,7 @@ endef
|
|||
define Package/ss
|
||||
$(call Package/iproute2/Default)
|
||||
TITLE:=Socket statistics utility
|
||||
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +kmod-netlink-diag
|
||||
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +kmod-netlink-diag
|
||||
endef
|
||||
|
||||
define Package/nstat
|
||||
|
@ -232,11 +225,6 @@ define Package/tc-full/install
|
|||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-full
|
||||
endef
|
||||
|
||||
define Package/tc-mod-iptables/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/tc
|
||||
$(CP) $(PKG_BUILD_DIR)/tc/m_xt.so $(1)/usr/lib/tc
|
||||
endef
|
||||
|
||||
define Package/genl/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/genl/genl $(1)/usr/sbin/
|
||||
|
@ -269,9 +257,6 @@ endef
|
|||
|
||||
$(eval $(call BuildPackage,ip-tiny))
|
||||
$(eval $(call BuildPackage,ip-full))
|
||||
# build tc-mod-iptables before its dependents, to avoid
|
||||
# spurious rebuilds when building multiple variants.
|
||||
$(eval $(call BuildPackage,tc-mod-iptables))
|
||||
$(eval $(call BuildPackage,tc-tiny))
|
||||
$(eval $(call BuildPackage,tc-bpf))
|
||||
$(eval $(call BuildPackage,tc-full))
|
||||
|
|
|
@ -1,68 +0,0 @@
|
|||
From 6a77abab92516e65f07f8657fc4e384c4541ce0e Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Sun, 22 Sep 2024 16:50:10 +0200
|
||||
Subject: bridge: mst: fix a musl build issue
|
||||
|
||||
This patch fixes a compilation error raised by the bump to version 6.11.0
|
||||
in Buildroot using musl as the C library for the cross-compilation
|
||||
toolchain.
|
||||
|
||||
After setting the CFLGAS
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
|
||||
IPROUTE2_CFLAGS += -D__UAPI_DEF_IN6_ADDR=0 -D__UAPI_DEF_SOCKADDR_IN6=0 \
|
||||
-D__UAPI_DEF_IPV6_MREQ=0
|
||||
endif
|
||||
|
||||
to fix the following errors:
|
||||
|
||||
In file included from ../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/arpa/inet.h:9,
|
||||
from ../include/libnetlink.h:14,
|
||||
from mst.c:10:
|
||||
../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: error: redefinition of 'struct in6_addr'
|
||||
23 | struct in6_addr {
|
||||
| ^~~~~~~~
|
||||
In file included from ../include/uapi/linux/if_bridge.h:19,
|
||||
from mst.c:7:
|
||||
../include/uapi/linux/in6.h:33:8: note: originally defined here
|
||||
33 | struct in6_addr {
|
||||
| ^~~~~~~~
|
||||
../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: error: redefinition of 'struct sockaddr_in6'
|
||||
34 | struct sockaddr_in6 {
|
||||
| ^~~~~~~~~~~~
|
||||
../include/uapi/linux/in6.h:50:8: note: originally defined here
|
||||
50 | struct sockaddr_in6 {
|
||||
| ^~~~~~~~~~~~
|
||||
../../../host/mips64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: error: redefinition of 'struct ipv6_mreq'
|
||||
42 | struct ipv6_mreq {
|
||||
| ^~~~~~~~~
|
||||
../include/uapi/linux/in6.h:60:8: note: originally defined here
|
||||
60 | struct ipv6_mreq {
|
||||
|
||||
I got this further errors
|
||||
|
||||
../include/uapi/linux/in6.h:72:25: error: field 'flr_dst' has incomplete type
|
||||
72 | struct in6_addr flr_dst;
|
||||
| ^~~~~~~
|
||||
../include/uapi/linux/if_bridge.h:711:41: error: field 'ip6' has incomplete type
|
||||
711 | struct in6_addr ip6;
|
||||
| ^~~
|
||||
|
||||
fixed by including the netinet/in.h header.
|
||||
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
bridge/mst.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/bridge/mst.c
|
||||
+++ b/bridge/mst.c
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
+#include <netinet/in.h>
|
||||
#include <linux/if_bridge.h>
|
||||
#include <net/if.h>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From 043ef90e2fa94397eb5c85330889ca4146a6d58a Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Sun, 22 Sep 2024 16:50:11 +0200
|
||||
Subject: bridge: mst: fix a further musl build issue
|
||||
|
||||
This patch fixes the following build errors:
|
||||
|
||||
In file included from mst.c:11:
|
||||
../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
|
||||
80 | _PRINT_FUNC(tv, const struct timeval *)
|
||||
| ^~~~~~~
|
||||
../include/json_print.h:50:37: note: in definition of macro '_PRINT_FUNC'
|
||||
50 | type value); \
|
||||
| ^~~~
|
||||
../include/json_print.h:80:30: warning: 'struct timeval' declared inside parameter list will not be visible outside of this definition or declaration
|
||||
80 | _PRINT_FUNC(tv, const struct timeval *)
|
||||
| ^~~~~~~
|
||||
../include/json_print.h:55:45: note: in definition of macro '_PRINT_FUNC'
|
||||
55 | type value) \
|
||||
| ^~~~
|
||||
../include/json_print.h: In function 'print_tv':
|
||||
../include/json_print.h:58:48: error: passing argument 5 of 'print_color_tv' from incompatible pointer type [-Wincompatible-pointer-types]
|
||||
58 | value); \
|
||||
| ^~~~~
|
||||
| |
|
||||
| const struct timeval *
|
||||
../include/json_print.h:80:1: note: in expansion of macro '_PRINT_FUNC'
|
||||
80 | _PRINT_FUNC(tv, const struct timeval *)
|
||||
| ^~~~~~~~~~~
|
||||
../include/json_print.h:50:42: note: expected 'const struct timeval *' but argument is of type 'const struct timeval *'
|
||||
50 | type value); \
|
||||
| ^
|
||||
../include/json_print.h:80:1: note: in expansion of macro '_PRINT_FUNC'
|
||||
80 | _PRINT_FUNC(tv, const struct timeval *)
|
||||
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
bridge/mst.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/bridge/mst.c
|
||||
+++ b/bridge/mst.c
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
+#include <sys/time.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_bridge.h>
|
||||
#include <net/if.h>
|
|
@ -1,28 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Thu, 8 Aug 2024 09:19:01 +0200
|
||||
Subject: libnetlink: fix build with musl and gcc 14
|
||||
|
||||
Fixes compilation error with musl libc and gcc 14:
|
||||
|
||||
../include/libnetlink.h: In function 'rta_getattr_be64':
|
||||
../include/libnetlink.h:280:16: error: implicit declaration of function 'htobe64' [-Wimplicit-function-declaration]
|
||||
280 | return htobe64(rta_getattr_u64(rta));
|
||||
| ^~~~~~~
|
||||
|
||||
Reference: https://man7.org/linux/man-pages/man3/endian.3.html
|
||||
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
|
||||
---
|
||||
include/libnetlink.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/include/libnetlink.h
|
||||
+++ b/include/libnetlink.h
|
||||
@@ -2,6 +2,7 @@
|
||||
#ifndef __LIBNETLINK_H__
|
||||
#define __LIBNETLINK_H__ 1
|
||||
|
||||
+#include <endian.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <asm/types.h>
|
22
iproute2/patches/013-endian.h.patch
Normal file
22
iproute2/patches/013-endian.h.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
From c8b3ecc22ed0edaf0259eaf7d1a5c04f300ad6e4 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:24:18 -0800
|
||||
Subject: [PATCH] libnetlink: add missing endian.h
|
||||
|
||||
Need endian.h to get htobe64 with musl.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
include/libnetlink.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/include/libnetlink.h
|
||||
+++ b/include/libnetlink.h
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
+#include <endian.h>
|
||||
#include <asm/types.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
29
iproute2/patches/014-basename.patch
Normal file
29
iproute2/patches/014-basename.patch
Normal file
|
@ -0,0 +1,29 @@
|
|||
From fa3949b792e275f75d7d6200dc2036ef7fff8816 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:21:56 -0800
|
||||
Subject: [PATCH] rdma: add missing header for basename
|
||||
|
||||
The function basename prototype is in libgen.h
|
||||
Fixes build on musl
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
rdma/rdma.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/rdma/rdma.h
|
||||
+++ b/rdma/rdma.h
|
||||
@@ -10,11 +10,12 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
+#include <time.h>
|
||||
+#include <libgen.h>
|
||||
#include <netinet/in.h>
|
||||
#include <libmnl/libmnl.h>
|
||||
#include <rdma/rdma_netlink.h>
|
||||
#include <rdma/rdma_user_cm.h>
|
||||
-#include <time.h>
|
||||
#include <net/if_arp.h>
|
||||
|
||||
#include "list.h"
|
84
iproute2/patches/015-limits.h.patch
Normal file
84
iproute2/patches/015-limits.h.patch
Normal file
|
@ -0,0 +1,84 @@
|
|||
From 7e23da91fca6e5dedeb32a7d308cf20982e897c3 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Tue, 10 Dec 2024 13:38:08 -0800
|
||||
Subject: [PATCH] ip: rearrange and prune header files
|
||||
|
||||
The recent report of issues with missing limits.h impacting musl
|
||||
suggested looking at what files are and are not included in ip code.
|
||||
|
||||
The standard practice is to put standard headers first, then system,
|
||||
then local headers. Used iwyu to get suggestions about missing
|
||||
and extraneous headers.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
ip/iplink.c | 13 +++++--------
|
||||
ip/ipnetns.c | 19 +++++++++----------
|
||||
2 files changed, 14 insertions(+), 18 deletions(-)
|
||||
|
||||
--- a/ip/iplink.c
|
||||
+++ b/ip/iplink.c
|
||||
@@ -11,17 +11,14 @@
|
||||
#include <fcntl.h>
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
+#include <string.h>
|
||||
+#include <strings.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
#include <sys/socket.h>
|
||||
+#include <arpa/inet.h>
|
||||
#include <linux/if.h>
|
||||
-#include <linux/if_packet.h>
|
||||
#include <linux/if_ether.h>
|
||||
-#include <linux/sockios.h>
|
||||
-#include <netinet/in.h>
|
||||
-#include <arpa/inet.h>
|
||||
-#include <string.h>
|
||||
-#include <sys/ioctl.h>
|
||||
-#include <stdbool.h>
|
||||
-#include <linux/mpls.h>
|
||||
|
||||
#include "rt_names.h"
|
||||
#include "utils.h"
|
||||
--- a/ip/ipnetns.c
|
||||
+++ b/ip/ipnetns.c
|
||||
@@ -1,21 +1,21 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#define _ATFILE_SOURCE
|
||||
-#include <sys/file.h>
|
||||
-#include <sys/types.h>
|
||||
-#include <sys/stat.h>
|
||||
-#include <sys/wait.h>
|
||||
-#include <sys/inotify.h>
|
||||
-#include <sys/mount.h>
|
||||
-#include <sys/syscall.h>
|
||||
+
|
||||
#include <stdio.h>
|
||||
+#include <stdint.h>
|
||||
#include <string.h>
|
||||
-#include <sched.h>
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
-#include <linux/limits.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
+#include <sys/file.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <sys/inotify.h>
|
||||
+#include <sys/mount.h>
|
||||
|
||||
#include <linux/net_namespace.h>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "list.h"
|
||||
#include "ip_common.h"
|
||||
#include "namespace.h"
|
||||
-#include "json_print.h"
|
||||
|
||||
static int usage(void)
|
||||
{
|
26
iproute2/patches/016-limits.h.patch
Normal file
26
iproute2/patches/016-limits.h.patch
Normal file
|
@ -0,0 +1,26 @@
|
|||
From f982f30e166a02e09097de05129449031ba51f76 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:29:44 -0800
|
||||
Subject: [PATCH] cg_map: use limits.h
|
||||
|
||||
Prefer limits.h from system headers over linux/limits.h
|
||||
Fixes build with musl.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
lib/cg_map.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/lib/cg_map.c
|
||||
+++ b/lib/cg_map.c
|
||||
@@ -9,8 +9,9 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
#include <linux/types.h>
|
||||
-#include <linux/limits.h>
|
||||
#include <ftw.h>
|
||||
|
||||
#include "cg_map.h"
|
178
iproute2/patches/017-linux-limits.patch
Normal file
178
iproute2/patches/017-linux-limits.patch
Normal file
|
@ -0,0 +1,178 @@
|
|||
From ac547ad027e3d4e283202ecb487cf54707234491 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 14:15:59 -0800
|
||||
Subject: [PATCH] flower: replace XATTR_SIZE_MAX
|
||||
|
||||
The flower tc parser was using XATTR_SIZE_MAX from linux/limits.h,
|
||||
but this constant is intended to before extended filesystem attributes
|
||||
not for TC. Replace it with a local define.
|
||||
|
||||
This fixes issue on systems with musl and XATTR_SIZE_MAX is not
|
||||
defined in limits.h there.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
tc/f_flower.c | 37 ++++++++++++++++++++-----------------
|
||||
1 file changed, 20 insertions(+), 17 deletions(-)
|
||||
|
||||
--- a/tc/f_flower.c
|
||||
+++ b/tc/f_flower.c
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <net/if.h>
|
||||
-#include <linux/limits.h>
|
||||
+
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/ip.h>
|
||||
@@ -22,6 +22,9 @@
|
||||
#include "tc_util.h"
|
||||
#include "rt_names.h"
|
||||
|
||||
+/* maximum length of options string */
|
||||
+#define FLOWER_OPTS_MAX 4096
|
||||
+
|
||||
#ifndef IPPROTO_L2TP
|
||||
#define IPPROTO_L2TP 115
|
||||
#endif
|
||||
@@ -1252,7 +1255,7 @@ static int flower_check_enc_opt_key(char
|
||||
|
||||
static int flower_parse_enc_opts_geneve(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
int data_len, key_len, mask_len, err;
|
||||
char *token, *slash;
|
||||
struct rtattr *nest;
|
||||
@@ -1265,7 +1268,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
if (slash)
|
||||
*slash = '\0';
|
||||
|
||||
- if ((key_len + strlen(token) > XATTR_SIZE_MAX) ||
|
||||
+ if ((key_len + strlen(token) > FLOWER_OPTS_MAX) ||
|
||||
flower_check_enc_opt_key(token))
|
||||
return -1;
|
||||
|
||||
@@ -1275,7 +1278,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
|
||||
if (!slash) {
|
||||
/* Pad out mask when not provided */
|
||||
- if (mask_len + strlen(token) > XATTR_SIZE_MAX)
|
||||
+ if (mask_len + strlen(token) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
|
||||
data_len = strlen(rindex(token, ':'));
|
||||
@@ -1288,7 +1291,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
continue;
|
||||
}
|
||||
|
||||
- if (mask_len + strlen(slash + 1) > XATTR_SIZE_MAX)
|
||||
+ if (mask_len + strlen(slash + 1) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
|
||||
strcpy(&mask[mask_len], slash + 1);
|
||||
@@ -1318,7 +1321,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
|
||||
static int flower_parse_enc_opts_vxlan(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1326,14 +1329,14 @@ static int flower_parse_enc_opts_vxlan(c
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
strcpy(mask, "0xffffffff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1355,7 +1358,7 @@ static int flower_parse_enc_opts_vxlan(c
|
||||
|
||||
static int flower_parse_enc_opts_erspan(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1364,7 +1367,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
@@ -1376,7 +1379,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
strcpy(mask + index, ":0xffffffff:0xff:0xff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1398,7 +1401,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
|
||||
static int flower_parse_enc_opts_gtp(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1406,13 +1409,13 @@ static int flower_parse_enc_opts_gtp(cha
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else
|
||||
strcpy(mask, "ff:ff");
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1433,7 +1436,7 @@ static int flower_parse_enc_opts_gtp(cha
|
||||
|
||||
static int flower_parse_enc_opts_pfcp(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1442,14 +1445,14 @@ static int flower_parse_enc_opts_pfcp(ch
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
strcpy(mask, "ff:ffffffffffffffff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
37
iproute2/patches/018-linux-limits.patch
Normal file
37
iproute2/patches/018-linux-limits.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
From 458dce5d0431f0589aca1bc841904b5d1db3bbce Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 14:18:35 -0800
|
||||
Subject: [PATCH] uapi: remove no longer used linux/limits.h
|
||||
|
||||
Code is now using limits.h instead.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
include/uapi/linux/limits.h | 21 ---------------------
|
||||
1 file changed, 21 deletions(-)
|
||||
delete mode 100644 include/uapi/linux/limits.h
|
||||
|
||||
--- a/include/uapi/linux/limits.h
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
-#ifndef _LINUX_LIMITS_H
|
||||
-#define _LINUX_LIMITS_H
|
||||
-
|
||||
-#define NR_OPEN 1024
|
||||
-
|
||||
-#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
|
||||
-#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
|
||||
-#define LINK_MAX 127 /* # links a file may have */
|
||||
-#define MAX_CANON 255 /* size of the canonical input queue */
|
||||
-#define MAX_INPUT 255 /* size of the type-ahead buffer */
|
||||
-#define NAME_MAX 255 /* # chars in a file name */
|
||||
-#define PATH_MAX 4096 /* # chars in a path name including nul */
|
||||
-#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
|
||||
-#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
|
||||
-#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
|
||||
-#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
|
||||
-
|
||||
-#define RTSIG_MAX 32
|
||||
-
|
||||
-#endif
|
|
@ -1,45 +0,0 @@
|
|||
--- a/tc/Makefile
|
||||
+++ b/tc/Makefile
|
||||
@@ -114,7 +114,7 @@ LDLIBS += -L. -lm
|
||||
|
||||
ifeq ($(SHARED_LIBS),y)
|
||||
LDLIBS += -ldl
|
||||
-LDFLAGS += -Wl,-export-dynamic
|
||||
+LDFLAGS += -Wl,--dynamic-list=dynsyms.list
|
||||
endif
|
||||
|
||||
TCLIB := tc_core.o
|
||||
@@ -144,7 +144,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
|
||||
all: tc $(TCSO)
|
||||
|
||||
tc: $(TCOBJ) $(LIBNETLINK) libtc.a
|
||||
- $(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
||||
+ $(QUIET_LINK)$(CC) $(filter-out dynsyms.list, $^) $(LDFLAGS) $(LDLIBS) -o $@
|
||||
|
||||
libtc.a: $(TCLIB)
|
||||
$(QUIET_AR)$(AR) rcs $@ $^
|
||||
@@ -166,6 +166,7 @@ install: all
|
||||
clean:
|
||||
rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.tab.h; \
|
||||
rm -f emp_ematch.tab.*
|
||||
+ rm -f dynsyms.list
|
||||
|
||||
q_atm.so: q_atm.c
|
||||
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
|
||||
@@ -205,4 +206,16 @@ static-syms.h: $(wildcard *.c)
|
||||
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
||||
done > $@
|
||||
|
||||
+else
|
||||
+
|
||||
+tc: dynsyms.list
|
||||
+m_xt.so: dynsyms.list
|
||||
+dynsyms.list: $(wildcard *.c)
|
||||
+ files="$(filter-out $(patsubst %.so,%.c,$(TCSO)), $^)" ; \
|
||||
+ echo "{" > $@ ; \
|
||||
+ for s in `grep -B 3 '\<dlsym' $$files | sed -n '/snprintf/{s:.*"\([^"]*\)".*:\1:;s:%s::;p}'` ; do \
|
||||
+ sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:\1;:;p}' $$files ; \
|
||||
+ done >> $@ ; \
|
||||
+ echo "show_stats; print_nl; print_tm; parse_rtattr; parse_rtattr_flags; get_u32; matches; addattr_l; addattr_nest; addattr_nest_end; };" >> $@
|
||||
+
|
||||
endif
|
|
@ -1,10 +0,0 @@
|
|||
--- a/rdma/rdma.h
|
||||
+++ b/rdma/rdma.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <rdma/rdma_user_cm.h>
|
||||
#include <time.h>
|
||||
#include <net/if_arp.h>
|
||||
+#include <libgen.h>
|
||||
|
||||
#include "list.h"
|
||||
#include "utils.h"
|
Loading…
Reference in a new issue