diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index 56294430be39..90f8b59a0220 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iproute2
-PKG_VERSION:=5.7.0
-PKG_RELEASE:=2
+PKG_VERSION:=5.8.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
-PKG_HASH:=725dc7ba94aae54c6f8d4223ca055d9fb4fe89d6994b1c03bfb4411c4dd10f21
+PKG_HASH:=cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=iptables
 PKG_LICENSE:=GPL-2.0
diff --git a/package/network/utils/iproute2/patches/001-devlink-update-include-files.patch b/package/network/utils/iproute2/patches/001-devlink-update-include-files.patch
deleted file mode 100644
index ab43fb770079..000000000000
--- a/package/network/utils/iproute2/patches/001-devlink-update-include-files.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 12fafa27c7b306e6c397e858f4d5a8159500f659 Mon Sep 17 00:00:00 2001
-From: Stephen Hemminger <stephen@networkplumber.org>
-Date: Thu, 11 Jun 2020 09:46:46 -0700
-Subject: [PATCH] devlink: update include files
-
-Use the tool iwyu to get more complete list of includes for
-all the bits used by devlink.
-
-This should also fix build with musl libc.
-
-Fixes: c4dfddccef4e ("fix JSON output of mon command")
-Reported-off-by: Dan Robertson <dan@dlrobertson.com>
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- devlink/devlink.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/devlink/devlink.c
-+++ b/devlink/devlink.c
-@@ -19,18 +19,25 @@
- #include <limits.h>
- #include <errno.h>
- #include <inttypes.h>
-+#include <signal.h>
-+#include <time.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
- #include <sys/sysinfo.h>
- #define _LINUX_SYSINFO_H /* avoid collision with musl header */
- #include <linux/genetlink.h>
- #include <linux/devlink.h>
-+#include <linux/netlink.h>
- #include <libmnl/libmnl.h>
- #include <netinet/ether.h>
-+#include <sys/select.h>
-+#include <sys/socket.h>
- #include <sys/types.h>
- 
- #include "SNAPSHOT.h"
- #include "list.h"
- #include "mnlg.h"
--#include "json_writer.h"
-+#include "json_print.h"
- #include "utils.h"
- #include "namespace.h"
- 
diff --git a/package/network/utils/iproute2/patches/002-configure-support-ipset-v7.patch b/package/network/utils/iproute2/patches/002-configure-support-ipset-v7.patch
deleted file mode 100644
index cd0c52954419..000000000000
--- a/package/network/utils/iproute2/patches/002-configure-support-ipset-v7.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 650591a7a70cd79d826fcdc579a20c168c987cf2 Mon Sep 17 00:00:00 2001
-From: Tony Ambardar <tony.ambardar@gmail.com>
-Date: Tue, 7 Jul 2020 00:58:33 -0700
-Subject: [PATCH] configure: support ipset version 7 with kernel version 5
-
-The configure script checks for ipset v6 availability but doesn't test
-for v7, which is backward compatible and used on kernel v5.x systems.
-Update the script to test for both ipset versions. Without this change,
-the tc ematch function em_ipset will be disabled.
-
-Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
-Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index f415bf49..307912aa 100755
---- a/configure
-+++ b/configure
-@@ -208,7 +208,7 @@ typedef unsigned short ip_set_id_t;
- #include <linux/netfilter/xt_set.h>
- 
- struct xt_set_info info;
--#if IPSET_PROTOCOL == 6
-+#if IPSET_PROTOCOL == 6 || IPSET_PROTOCOL == 7
- int main(void)
- {
- 	return IPSET_MAXNAMELEN;
--- 
-2.17.1
-
diff --git a/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch b/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch
index 1b6e7441c811..03df7809f7f0 100644
--- a/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch
+++ b/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch
@@ -1,6 +1,6 @@
 --- a/tc/Makefile
 +++ b/tc/Makefile
-@@ -126,6 +126,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
+@@ -127,6 +127,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
  ifneq ($(IPT_LIB_DIR),)
  	CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
  endif
diff --git a/package/network/utils/iproute2/patches/170-ip_tiny.patch b/package/network/utils/iproute2/patches/170-ip_tiny.patch
index 7129d4f19e8b..c9b28dfe7727 100644
--- a/package/network/utils/iproute2/patches/170-ip_tiny.patch
+++ b/package/network/utils/iproute2/patches/170-ip_tiny.patch
@@ -33,7 +33,7 @@
  		"where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |\n"
  		"                   tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |\n"
  		"                   netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |\n"
- 		"                   vrf | sr | nexthop }\n"
+ 		"                   vrf | sr | nexthop | mptcp }\n"
 +#else
 +		"where  OBJECT := { link | address | route | rule | neigh | tunnel | maddress |\n"
 +		"                   mroute | mrule | monitor | netns | macsec | token | ila |\n"
@@ -42,7 +42,7 @@
  		"       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
  		"                    -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
  		"                    -f[amily] { inet | inet6 | mpls | bridge | link } |\n"
-@@ -74,35 +80,49 @@ static const struct cmd {
+@@ -74,36 +80,50 @@ static const struct cmd {
  	int (*func)(int argc, char **argv);
  } cmds[] = {
  	{ "address",	do_ipaddr },
@@ -88,6 +88,7 @@
  	{ "sr",		do_seg6 },
 +#ifndef IPROUTE2_TINY
  	{ "nexthop",	do_ipnh },
+ 	{ "mptcp",	do_mptcp },
 +#endif
  	{ "help",	do_help },
  	{ 0 }
@@ -104,4 +105,4 @@
 +
  UTILOBJ = utils.o rt_names.o ll_map.o ll_types.o ll_proto.o ll_addr.o \
  	inet_proto.o namespace.o json_writer.o json_print.o \
- 	names.o color.o bpf.o exec.o fs.o
+ 	names.o color.o bpf.o exec.o fs.o cg_map.o
diff --git a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
index dbb516f02ebb..e5d5492a35ff 100644
--- a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
+++ b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch
@@ -1,6 +1,6 @@
 --- a/tc/Makefile
 +++ b/tc/Makefile
-@@ -113,7 +113,7 @@ LDLIBS += -L. -lm
+@@ -114,7 +114,7 @@ LDLIBS += -L. -lm
  
  ifeq ($(SHARED_LIBS),y)
  LDLIBS += -ldl
@@ -9,7 +9,7 @@
  endif
  
  TCLIB := tc_core.o
-@@ -142,7 +142,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
+@@ -143,7 +143,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
  all: tc $(TCSO)
  
  tc: $(TCOBJ) $(LIBNETLINK) libtc.a
@@ -18,7 +18,7 @@
  
  libtc.a: $(TCLIB)
  	$(QUIET_AR)$(AR) rcs $@ $^
-@@ -164,6 +164,7 @@ install: all
+@@ -165,6 +165,7 @@ install: all
  clean:
  	rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.tab.h; \
  	rm -f emp_ematch.tab.*
@@ -26,7 +26,7 @@
  
  q_atm.so: q_atm.c
  	$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
-@@ -203,4 +204,15 @@ static-syms.h: $(wildcard *.c)
+@@ -204,4 +205,15 @@ static-syms.h: $(wildcard *.c)
  		sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
  	done > $@
  
