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
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=4.0.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=4.3.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=http://kernel.org/pub/linux/utils/net/iproute2/
|
||||
PKG_MD5SUM:=3adc263ade4ee76c35032e8f50b54108
|
||||
PKG_MD5SUM:=1a2bbb80cfc7ab3f3e987e18b3207c2f
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
--- a/misc/Makefile
|
||||
+++ b/misc/Makefile
|
||||
@@ -1,7 +1,7 @@
|
||||
SSOBJ=ss.o ssfilter.o
|
||||
LNSTATOBJ=lnstat.o lnstat_util.o
|
||||
|
||||
-TARGETS=ss nstat ifstat rtacct arpd lnstat
|
||||
+TARGETS=ss nstat ifstat rtacct lnstat
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
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
|
||||
+++ b/Makefile
|
||||
@@ -36,7 +36,7 @@ WFLAGS += -Wmissing-declarations -Wold-s
|
||||
CFLAGS = $(WFLAGS) $(CCOPTS) -I../include $(DEFINES)
|
||||
@@ -41,7 +41,7 @@ WFLAGS += -Wmissing-declarations -Wold-s
|
||||
CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
|
||||
YACCFLAGS = -d -t -v
|
||||
|
||||
-SUBDIRS=lib ip tc bridge misc netem genl man
|
||||
+SUBDIRS=lib ip tc bridge misc genl man
|
||||
|
||||
|
||||
-SUBDIRS=lib ip tc bridge misc netem genl tipc man
|
||||
+SUBDIRS=lib ip tc bridge misc genl tipc man
|
||||
|
||||
LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
|
||||
LDLIBS += $(LIBNETLINK)
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -29,7 +29,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o
|
||||
CC = gcc
|
||||
HOSTCC = gcc
|
||||
@@ -34,7 +34,7 @@ ADDLIB+=ipx_ntop.o ipx_pton.o
|
||||
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 $(EXTRA_CCOPTS)
|
||||
WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
|
||||
WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
--- a/lib/namespace.c
|
||||
+++ b/lib/namespace.c
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
#include <limits.h>
|
||||
+#include <sys/param.h>
|
||||
|
||||
|
||||
#include "utils.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 ; \
|
||||
--- a/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);
|
||||
} cmds[] = {
|
||||
{ "address", do_ipaddr },
|
||||
|
@ -44,7 +44,7 @@
|
|||
{ "link", do_iplink },
|
||||
+#ifndef IPROUTE2_TINY
|
||||
{ "l2tp", do_ipl2tp },
|
||||
{ "fou", do_ipfou },
|
||||
{ "fou", do_ipfou },
|
||||
+#endif
|
||||
{ "tunnel", do_iptunnel },
|
||||
{ "tunl", do_iptunnel },
|
||||
|
@ -53,7 +53,7 @@
|
|||
{ "tap", do_iptuntap },
|
||||
{ "token", do_iptoken },
|
||||
{ "tcpmetrics", do_tcp_metrics },
|
||||
{ "tcp_metrics",do_tcp_metrics },
|
||||
{ "tcp_metrics", do_tcp_metrics },
|
||||
+#endif
|
||||
{ "monitor", do_ipmonitor },
|
||||
+#ifndef IPROUTE2_TINY
|
||||
|
@ -70,22 +70,22 @@
|
|||
};
|
||||
--- a/lib/utils.c
|
||||
+++ b/lib/utils.c
|
||||
@@ -642,6 +642,7 @@ const char *rt_addr_n2a(int af, const vo
|
||||
case AF_INET:
|
||||
case AF_INET6:
|
||||
@@ -675,6 +675,7 @@ const char *rt_addr_n2a(int af, int len,
|
||||
return inet_ntop(af, addr, buf, buflen);
|
||||
case AF_MPLS:
|
||||
return mpls_ntop(af, addr, buf, buflen);
|
||||
+#ifndef IPROUTE2_TINY
|
||||
case AF_IPX:
|
||||
return ipx_ntop(af, addr, buf, buflen);
|
||||
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);
|
||||
return dnet_ntop(af, &dna, buf, buflen);
|
||||
}
|
||||
+#endif
|
||||
case AF_PACKET:
|
||||
return ll_addr_n2a(addr, len, ARPHRD_VOID, buf, buflen);
|
||||
default:
|
||||
return "???";
|
||||
}
|
||||
--- a/lib/Makefile
|
||||
+++ b/lib/Makefile
|
||||
@@ -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