iproute2: update to 4.3.0
iproute2-4.0 had connmark support added by nbd. This does not work with 4.x kernels. iproute2-4.3 is the latest version and has his changes mainlined. This patch updates the package to iproute2-4.3 and fixes the patches so that it compiles. This should resolve ticket #21374. Signed-off-by: Rob Mosher <nyt-openwrt@countercultured.net> SVN-Revision: 48098
This commit is contained in:
parent
f49dadb0bd
commit
8e9eed3442
8 changed files with 68 additions and 120 deletions
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iproute2
|
PKG_NAME:=iproute2
|
||||||
PKG_VERSION:=4.0.0
|
PKG_VERSION:=4.3.0
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=http://kernel.org/pub/linux/utils/net/iproute2/
|
PKG_SOURCE_URL:=http://kernel.org/pub/linux/utils/net/iproute2/
|
||||||
PKG_MD5SUM:=3adc263ade4ee76c35032e8f50b54108
|
PKG_MD5SUM:=1a2bbb80cfc7ab3f3e987e18b3207c2f
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
--- a/misc/Makefile
|
--- a/misc/Makefile
|
||||||
+++ b/misc/Makefile
|
+++ b/misc/Makefile
|
||||||
@@ -1,7 +1,7 @@
|
@@ -5,9 +5,9 @@
|
||||||
SSOBJ=ss.o ssfilter.o
|
|
||||||
LNSTATOBJ=lnstat.o lnstat_util.o
|
|
||||||
|
|
||||||
-TARGETS=ss nstat ifstat rtacct arpd lnstat
|
|
||||||
+TARGETS=ss nstat ifstat rtacct lnstat
|
|
||||||
|
|
||||||
include ../Config
|
include ../Config
|
||||||
|
|
||||||
|
-ifeq ($(HAVE_BERKELEY_DB),y)
|
||||||
|
- TARGETS += arpd
|
||||||
|
-endif
|
||||||
|
+#ifeq ($(HAVE_BERKELEY_DB),y)
|
||||||
|
+# TARGETS += arpd
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
ifeq ($(HAVE_SELINUX),y)
|
||||||
|
LDLIBS += $(shell pkg-config --libs libselinux)
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -36,7 +36,7 @@ WFLAGS += -Wmissing-declarations -Wold-s
|
@@ -41,7 +41,7 @@ WFLAGS += -Wmissing-declarations -Wold-s
|
||||||
CFLAGS = $(WFLAGS) $(CCOPTS) -I../include $(DEFINES)
|
CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
|
||||||
YACCFLAGS = -d -t -v
|
YACCFLAGS = -d -t -v
|
||||||
|
|
||||||
-SUBDIRS=lib ip tc bridge misc netem genl man
|
-SUBDIRS=lib ip tc bridge misc netem genl tipc man
|
||||||
+SUBDIRS=lib ip tc bridge misc genl man
|
+SUBDIRS=lib ip tc bridge misc genl tipc man
|
||||||
|
|
||||||
LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
|
LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
|
||||||
LDLIBS += $(LIBNETLINK)
|
LDLIBS += $(LIBNETLINK)
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -29,7 +29,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o
|
@@ -34,7 +34,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o
|
||||||
CC = gcc
|
|
||||||
HOSTCC = gcc
|
|
||||||
DEFINES += -D_GNU_SOURCE
|
DEFINES += -D_GNU_SOURCE
|
||||||
|
# Turn on transparent support for LFS
|
||||||
|
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
|
||||||
-CCOPTS = -O2
|
-CCOPTS = -O2
|
||||||
+CCOPTS = -O2 $(EXTRA_CCOPTS)
|
+CCOPTS = -O2 $(EXTRA_CCOPTS)
|
||||||
WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
|
WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
|
||||||
WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
|
WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
--- a/lib/namespace.c
|
--- a/lib/namespace.c
|
||||||
+++ b/lib/namespace.c
|
+++ b/lib/namespace.c
|
||||||
@@ -9,6 +9,7 @@
|
@@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
#include <limits.h>
|
||||||
+#include <sys/param.h>
|
+#include <sys/param.h>
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "namespace.h"
|
#include "namespace.h"
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
--- a/tc/Makefile
|
|
||||||
+++ b/tc/Makefile
|
|
||||||
@@ -44,6 +44,7 @@ TCMODULES += m_mirred.o
|
|
||||||
TCMODULES += m_nat.o
|
|
||||||
TCMODULES += m_pedit.o
|
|
||||||
TCMODULES += m_skbedit.o
|
|
||||||
+TCMODULES += m_connmark.o
|
|
||||||
TCMODULES += m_csum.o
|
|
||||||
TCMODULES += m_simple.o
|
|
||||||
TCMODULES += m_vlan.o
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tc/m_connmark.c
|
|
||||||
@@ -0,0 +1,74 @@
|
|
||||||
+/*
|
|
||||||
+ * m_connmark.c Connection tracking marking import
|
|
||||||
+ *
|
|
||||||
+ * Copyright (c) 2011 Felix Fietkau <nbd@openwrt.org>
|
|
||||||
+ *
|
|
||||||
+ * This program is free software; you can redistribute it and/or modify it
|
|
||||||
+ * under the terms and conditions of the GNU General Public License,
|
|
||||||
+ * version 2, as published by the Free Software Foundation.
|
|
||||||
+ *
|
|
||||||
+ * This program is distributed in the hope 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, write to the Free Software Foundation, Inc., 59 Temple
|
|
||||||
+ * Place - Suite 330, Boston, MA 02111-1307 USA.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include "utils.h"
|
|
||||||
+#include "tc_util.h"
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+explain(void)
|
|
||||||
+{
|
|
||||||
+ fprintf(stderr, "Usage: ... connmark\n");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+usage(void)
|
|
||||||
+{
|
|
||||||
+ explain();
|
|
||||||
+ exit(-1);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
|
||||||
+ struct nlmsghdr *n)
|
|
||||||
+{
|
|
||||||
+ int argc = *argc_p;
|
|
||||||
+ char **argv = *argv_p;
|
|
||||||
+
|
|
||||||
+ if (matches(*argv, "connmark") != 0)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ NEXT_ARG();
|
|
||||||
+
|
|
||||||
+ if (matches(*argv, "help") == 0)
|
|
||||||
+ usage();
|
|
||||||
+
|
|
||||||
+ *argc_p = argc;
|
|
||||||
+ *argv_p = argv;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int print_connmark(struct action_util *au, FILE *f, struct rtattr *arg)
|
|
||||||
+{
|
|
||||||
+ if (arg == NULL)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ fprintf(f, " connmark");
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct action_util connmark_action_util = {
|
|
||||||
+ .id = "connmark",
|
|
||||||
+ .parse_aopt = parse_connmark,
|
|
||||||
+ .print_aopt = print_connmark,
|
|
||||||
+};
|
|
|
@ -25,7 +25,7 @@
|
||||||
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
||||||
--- a/ip/ip.c
|
--- a/ip/ip.c
|
||||||
+++ b/ip/ip.c
|
+++ b/ip/ip.c
|
||||||
@@ -71,30 +71,42 @@ static const struct cmd {
|
@@ -73,30 +73,42 @@ static const struct cmd {
|
||||||
int (*func)(int argc, char **argv);
|
int (*func)(int argc, char **argv);
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
{ "address", do_ipaddr },
|
{ "address", do_ipaddr },
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
{ "link", do_iplink },
|
{ "link", do_iplink },
|
||||||
+#ifndef IPROUTE2_TINY
|
+#ifndef IPROUTE2_TINY
|
||||||
{ "l2tp", do_ipl2tp },
|
{ "l2tp", do_ipl2tp },
|
||||||
{ "fou", do_ipfou },
|
{ "fou", do_ipfou },
|
||||||
+#endif
|
+#endif
|
||||||
{ "tunnel", do_iptunnel },
|
{ "tunnel", do_iptunnel },
|
||||||
{ "tunl", do_iptunnel },
|
{ "tunl", do_iptunnel },
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
{ "tap", do_iptuntap },
|
{ "tap", do_iptuntap },
|
||||||
{ "token", do_iptoken },
|
{ "token", do_iptoken },
|
||||||
{ "tcpmetrics", do_tcp_metrics },
|
{ "tcpmetrics", do_tcp_metrics },
|
||||||
{ "tcp_metrics",do_tcp_metrics },
|
{ "tcp_metrics", do_tcp_metrics },
|
||||||
+#endif
|
+#endif
|
||||||
{ "monitor", do_ipmonitor },
|
{ "monitor", do_ipmonitor },
|
||||||
+#ifndef IPROUTE2_TINY
|
+#ifndef IPROUTE2_TINY
|
||||||
|
@ -70,22 +70,22 @@
|
||||||
};
|
};
|
||||||
--- a/lib/utils.c
|
--- a/lib/utils.c
|
||||||
+++ b/lib/utils.c
|
+++ b/lib/utils.c
|
||||||
@@ -642,6 +642,7 @@ const char *rt_addr_n2a(int af, const vo
|
@@ -675,6 +675,7 @@ const char *rt_addr_n2a(int af, int len,
|
||||||
case AF_INET:
|
|
||||||
case AF_INET6:
|
|
||||||
return inet_ntop(af, addr, buf, buflen);
|
return inet_ntop(af, addr, buf, buflen);
|
||||||
|
case AF_MPLS:
|
||||||
|
return mpls_ntop(af, addr, buf, buflen);
|
||||||
+#ifndef IPROUTE2_TINY
|
+#ifndef IPROUTE2_TINY
|
||||||
case AF_IPX:
|
case AF_IPX:
|
||||||
return ipx_ntop(af, addr, buf, buflen);
|
return ipx_ntop(af, addr, buf, buflen);
|
||||||
case AF_DECnet:
|
case AF_DECnet:
|
||||||
@@ -650,6 +651,7 @@ const char *rt_addr_n2a(int af, const vo
|
@@ -683,6 +684,7 @@ const char *rt_addr_n2a(int af, int len,
|
||||||
memcpy(dna.a_addr, addr, 2);
|
memcpy(dna.a_addr, addr, 2);
|
||||||
return dnet_ntop(af, &dna, buf, buflen);
|
return dnet_ntop(af, &dna, buf, buflen);
|
||||||
}
|
}
|
||||||
+#endif
|
+#endif
|
||||||
|
case AF_PACKET:
|
||||||
|
return ll_addr_n2a(addr, len, ARPHRD_VOID, buf, buflen);
|
||||||
default:
|
default:
|
||||||
return "???";
|
|
||||||
}
|
|
||||||
--- a/lib/Makefile
|
--- a/lib/Makefile
|
||||||
+++ b/lib/Makefile
|
+++ b/lib/Makefile
|
||||||
@@ -4,6 +4,10 @@ ifeq ($(IP_CONFIG_SETNS),y)
|
@@ -4,6 +4,10 @@ ifeq ($(IP_CONFIG_SETNS),y)
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
--- a/include/linux/in.h
|
||||||
|
+++ b/include/linux/in.h
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
* as published by the Free Software Foundation; either version
|
||||||
|
* 2 of the License, or (at your option) any later version.
|
||||||
|
*/
|
||||||
|
+#ifndef _NETINET_IN_H
|
||||||
|
#ifndef _LINUX_IN_H
|
||||||
|
#define _LINUX_IN_H
|
||||||
|
|
||||||
|
@@ -297,3 +298,4 @@ struct sockaddr_in {
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _LINUX_IN_H */
|
||||||
|
+#endif /* _NETINET_IN_H */
|
||||||
|
--- a/include/linux/in6.h
|
||||||
|
+++ b/include/linux/in6.h
|
||||||
|
@@ -18,6 +18,7 @@
|
||||||
|
* 2 of the License, or (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#ifndef _NETINET_IN_H
|
||||||
|
#ifndef _LINUX_IN6_H
|
||||||
|
#define _LINUX_IN6_H
|
||||||
|
|
||||||
|
@@ -291,3 +292,4 @@ struct in6_flowlabel_req {
|
||||||
|
* MRT6_MAX
|
||||||
|
*/
|
||||||
|
#endif /* _LINUX_IN6_H */
|
||||||
|
+#endif /* _NETINET_IN_H */
|
Loading…
Reference in a new issue