include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
-PKG_VERSION:=4.11.0
+PKG_VERSION:=4.13.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
-PKG_HASH:=72671028bda696d0cb8f48ec8e702581c3a501caeed33eec3a81d7041cbc8026
+PKG_HASH:=9cfb81edf8c8509e03daa77cf62aead01c4a827132f6c506578f94cc19415c50
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0
URL:=http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
SUBMENU:=Routing and Redirection
MAINTAINER:=Russell Senior <russell@personaltelco.net>
- DEPENDS:= +libnl-tiny
endef
define Package/ip-tiny
VARIANT:=tiny
PROVIDES:=ip
ALTERNATIVES:=200:/sbin/ip:/sbin/ip-tiny
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ip-full
VARIANT:=full
PROVIDES:=ip
ALTERNATIVES:=300:/sbin/ip:/sbin/ip-full
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc
$(call Package/iproute2/Default)
TITLE:=Traffic control utility
- DEPENDS:=+kmod-sched-core
+ DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/genl
$(call Package/iproute2/Default)
TITLE:=General netlink utility frontend
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ip-bridge
$(call Package/iproute2/Default)
TITLE:=Bridge configuration utility from iproute2
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ss
$(call Package/iproute2/Default)
TITLE:=Socket statistics utility
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/nstat
$(call Package/iproute2/Default)
TITLE:=Network statistics utility
+ DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/devlink
DEPENDS:=+libmnl
endef
+define Package/rdma
+$(call Package/iproute2/Default)
+ TITLE:=Network rdma utility
+ DEPENDS:=+libmnl
+endef
+
ifeq ($(BUILD_VARIANT),tiny)
IP_CONFIG_TINY:=y
endif
+ifdef CONFIG_PACKAGE_devlink
+ HAVE_MNL:=y
+endif
+
+ifdef CONFIG_PACKAGE_rdma
+ HAVE_MNL:=y
+endif
+
define Build/Configure
$(SED) "s,-I/usr/include/db3,," $(PKG_BUILD_DIR)/Makefile
$(SED) "s,^KERNEL_INCLUDE.*,KERNEL_INCLUDE=$(LINUX_DIR)/include," \
SHARED_LIBS="" \
LDFLAGS="$(TARGET_LDFLAGS) -Wl,--gc-sections" \
IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
+ HAVE_MNL=$(HAVE_MNL) \
IPT_LIB_DIR=/usr/lib/iptables \
FPIC="$(FPIC)"
$(INSTALL_BIN) $(PKG_BUILD_DIR)/devlink/devlink $(1)/usr/sbin/
endef
+define Package/rdma/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/rdma/rdma $(1)/usr/sbin/
+endef
+
$(eval $(call BuildPackage,ip-tiny))
$(eval $(call BuildPackage,ip-full))
$(eval $(call BuildPackage,tc))
$(eval $(call BuildPackage,ss))
$(eval $(call BuildPackage,nstat))
$(eval $(call BuildPackage,devlink))
+$(eval $(call BuildPackage,rdma))
--- /dev/null
+++ b/Config
-@@ -0,0 +1,5 @@
+@@ -0,0 +1,4 @@
+# Fixed config to disable ATM support even if present on host system
+IP_CONFIG_SETNS:=y
+TC_CONFIG_ATM:=n
+TC_CONFIG_XT:=y
-+HAVE_MNL:=y
#define TABLESIZE 16384
--- a/netem/paretonormal.c
+++ b/netem/paretonormal.c
-@@ -15,10 +15,13 @@
+@@ -14,10 +14,13 @@
#include <string.h>
#include <math.h>
#include <limits.h>
--- a/ip/ipxfrm.c
+++ b/ip/ipxfrm.c
-@@ -465,7 +465,6 @@ void xfrm_selector_print(struct xfrm_sel
+@@ -454,7 +454,6 @@ void xfrm_selector_print(struct xfrm_sel
switch (sel->proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
case IPPROTO_DCCP:
default: /* XXX */
if (sel->sport_mask)
-@@ -1321,7 +1320,6 @@ static int xfrm_selector_upspec_parse(st
+@@ -1329,7 +1328,6 @@ static int xfrm_selector_upspec_parse(st
switch (sel->proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
--- a/Makefile
+++ b/Makefile
-@@ -52,7 +52,7 @@ WFLAGS += -Wmissing-declarations -Wold-s
+@@ -49,7 +49,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 tipc devlink man
-+SUBDIRS=lib ip tc bridge misc genl tipc devlink man
+-SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma man
++SUBDIRS=lib ip tc bridge misc genl tipc devlink rdma man
LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
LDLIBS += $(LIBNETLINK)
--- a/Makefile
+++ b/Makefile
-@@ -45,7 +45,7 @@ HOSTCC ?= $(CC)
+@@ -42,7 +42,7 @@ HOSTCC ?= $(CC)
DEFINES += -D_GNU_SOURCE
# Turn on transparent support for LFS
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -4,7 +4,7 @@ ifeq ($(IP_CONFIG_SETNS),y)
- CFLAGS += -DHAVE_SETNS
+@@ -12,7 +12,7 @@ ifeq ($(HAVE_MNL),y)
+ CFLAGS += -DHAVE_LIBMNL $(shell $(PKG_CONFIG) libmnl --cflags)
endif
-CFLAGS += -fPIC
/* Definitions for in.h */
#define __UAPI_DEF_IN_ADDR 1
#define __UAPI_DEF_IN_IPPROTO 1
---- a/ip/iplink_bridge.c
-+++ b/ip/iplink_bridge.c
-@@ -14,8 +14,8 @@
- #include <string.h>
- #include <netinet/in.h>
- #include <linux/if_link.h>
--#include <linux/if_bridge.h>
- #include <netinet/ether.h>
-+#include <linux/if_bridge.h>
- #include <net/if.h>
-
- #include "rt_names.h"
--- a/ip/Makefile
+++ b/ip/Makefile
-@@ -19,6 +19,13 @@ ifeq ($(IP_CONFIG_SETNS),y)
- CFLAGS += -DHAVE_SETNS
+@@ -28,6 +28,13 @@ ifeq ($(HAVE_MNL),y)
+ LDLIBS += $(shell $(PKG_CONFIG) libmnl --libs)
endif
+STATIC_SYM_FILTER:=
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
SCRIPTS=ifcfg rtpr routel routef
TARGETS=ip rtmon
-@@ -48,7 +55,7 @@ else
+@@ -57,7 +64,7 @@ else
ip: static-syms.o
static-syms.o: static-syms.h
{ "netconf", do_ipnetconf },
+#endif
{ "vrf", do_ipvrf},
+ { "sr", do_seg6 },
{ "help", do_help },
- { 0 }
--- a/lib/utils.c
+++ b/lib/utils.c
-@@ -777,6 +777,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -787,6 +787,7 @@ const char *rt_addr_n2a_r(int af, int le
return inet_ntop(af, addr, buf, buflen);
case AF_MPLS:
return mpls_ntop(af, addr, buf, buflen);
case AF_IPX:
return ipx_ntop(af, addr, buf, buflen);
case AF_DECnet:
-@@ -786,6 +787,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -796,6 +797,7 @@ const char *rt_addr_n2a_r(int af, int le
memcpy(dna.a_addr, addr, 2);
return dnet_ntop(af, &dna, buf, buflen);
}
default:
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -4,6 +4,10 @@ ifeq ($(IP_CONFIG_SETNS),y)
- CFLAGS += -DHAVE_SETNS
+@@ -12,6 +12,10 @@ ifeq ($(HAVE_MNL),y)
+ CFLAGS += -DHAVE_LIBMNL $(shell $(PKG_CONFIG) libmnl --cflags)
endif
+ifeq ($(IP_CONFIG_TINY),y)
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
-@@ -215,6 +215,7 @@ enum {
+@@ -220,6 +220,7 @@ enum {
RTN_THROW, /* Not in this table */
RTN_NAT, /* Translate this address */
RTN_XRESOLVE, /* Use external resolver */
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
-@@ -863,4 +863,60 @@ struct tc_pie_xstats {
+@@ -871,4 +871,60 @@ struct tc_pie_xstats {
__u32 maxq; /* maximum queue size */
__u32 ecn_mark; /* packets marked with ecn*/
};
#endif
--- a/tc/Makefile
+++ b/tc/Makefile
-@@ -67,6 +67,7 @@ TCMODULES += q_codel.o
+@@ -69,6 +69,7 @@ TCMODULES += q_codel.o
TCMODULES += q_fq_codel.o
TCMODULES += q_fq.o
TCMODULES += q_pie.o