diff --git a/.gitignore b/.gitignore
index 7213939..b0528ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/iproute2-5.15.0.tar.xz
+SOURCES/iproute2-5.18.0.tar.xz
diff --git a/.iproute.metadata b/.iproute.metadata
index 8491aea..aa9e569 100644
--- a/.iproute.metadata
+++ b/.iproute.metadata
@@ -1 +1 @@
-6cae5b261051a5f54596fea6647bf76cb87515a0 SOURCES/iproute2-5.15.0.tar.xz
+575ff5bba13c6cb4d9a8e5ecad1d691faecfdee6 SOURCES/iproute2-5.18.0.tar.xz
diff --git a/SOURCES/0001-configure-fix-parsing-issue-on-include_dir-option.patch b/SOURCES/0001-configure-fix-parsing-issue-on-include_dir-option.patch
deleted file mode 100644
index 91b2a60..0000000
--- a/SOURCES/0001-configure-fix-parsing-issue-on-include_dir-option.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From cef782ca658d695c5ca2d174ba1f89cba6bd84e5 Mon Sep 17 00:00:00 2001
-Message-Id: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: fix parsing issue on include_dir option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit 1d819dcc
-
-commit 1d819dcc741e25958190e31f8186c940713fa0a8
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:49 2021 +0200
-
-    configure: fix parsing issue on include_dir option
-
-    configure is stuck in an endless loop if '--include_dir' option is used
-    without a value:
-
-    $ ./configure --include_dir
-    ./configure: line 506: shift: 2: shift count out of range
-    ./configure: line 506: shift: 2: shift count out of range
-    [...]
-
-    Fix it splitting 'shift 2' into two consecutive shifts, and making the
-    second one conditional to the number of remaining arguments.
-
-    A check is also provided after the while loop to verify the include dir
-    exists; this avoid to produce an erroneous configuration.
-
-    Fixes: a9c3d70d902a ("configure: add options ability")
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/configure b/configure
-index 7f4f3bd9..ea9051ab 100755
---- a/configure
-+++ b/configure
-@@ -485,7 +485,7 @@ usage()
- {
- 	cat <<EOF
- Usage: $0 [OPTIONS]
--	--include_dir		Path to iproute2 include dir
-+	--include_dir <dir>	Path to iproute2 include dir
- 	--libbpf_dir		Path to libbpf DESTDIR
- 	--libbpf_force		Enable/disable libbpf by force. Available options:
- 				  on: require link against libbpf, quit config if no libbpf support
-@@ -502,8 +502,9 @@ else
- 	while true; do
- 		case "$1" in
- 			--include_dir)
--				INCLUDE=$2
--				shift 2 ;;
-+				shift
-+				INCLUDE="$1"
-+				[ "$#" -gt 0 ] && shift ;;
- 			--libbpf_dir)
- 				LIBBPF_DIR="$2"
- 				shift 2 ;;
-@@ -523,6 +524,8 @@ else
- 	done
- fi
- 
-+[ -d "$INCLUDE" ] || usage 1
-+
- echo "# Generated config based on" $INCLUDE >$CONFIG
- quiet_config >> $CONFIG
- 
--- 
-2.31.1
-
diff --git a/SOURCES/0002-configure-fix-parsing-issue-on-libbpf_dir-option.patch b/SOURCES/0002-configure-fix-parsing-issue-on-libbpf_dir-option.patch
deleted file mode 100644
index 437af4e..0000000
--- a/SOURCES/0002-configure-fix-parsing-issue-on-libbpf_dir-option.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From c82a4d170e04b84aa0a630ed8142ec4220efaff9 Mon Sep 17 00:00:00 2001
-Message-Id: <c82a4d170e04b84aa0a630ed8142ec4220efaff9.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: fix parsing issue on libbpf_dir option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit 48c379bc
-
-commit 48c379bc2afd43b3246f68ed46475f5318b1218f
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:50 2021 +0200
-
-    configure: fix parsing issue on libbpf_dir option
-
-    configure is stuck in an endless loop if '--libbpf_dir' option is used
-    without a value:
-
-    $ ./configure --libbpf_dir
-    ./configure: line 515: shift: 2: shift count out of range
-    ./configure: line 515: shift: 2: shift count out of range
-    [...]
-
-    Fix it splitting 'shift 2' into two consecutive shifts, and making the
-    second one conditional to the number of remaining arguments.
-
-    A check is also provided after the while loop to verify the libbpf dir
-    exists; also, as LIBBPF_DIR does not have a default value, configure bails
-    out if the user does not specify a value after --libbpf_dir, thus avoiding
-    to produce an erroneous configuration.
-
-    Fixes: 7ae2585b865a ("configure: convert LIBBPF environment variables to command-line options")
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/configure b/configure
-index ea9051ab..0f304206 100755
---- a/configure
-+++ b/configure
-@@ -486,7 +486,7 @@ usage()
- 	cat <<EOF
- Usage: $0 [OPTIONS]
- 	--include_dir <dir>	Path to iproute2 include dir
--	--libbpf_dir		Path to libbpf DESTDIR
-+	--libbpf_dir <dir>	Path to libbpf DESTDIR
- 	--libbpf_force		Enable/disable libbpf by force. Available options:
- 				  on: require link against libbpf, quit config if no libbpf support
- 				  off: disable libbpf probing
-@@ -506,8 +506,9 @@ else
- 				INCLUDE="$1"
- 				[ "$#" -gt 0 ] && shift ;;
- 			--libbpf_dir)
--				LIBBPF_DIR="$2"
--				shift 2 ;;
-+				shift
-+				LIBBPF_DIR="$1"
-+				[ "$#" -gt 0 ] && shift ;;
- 			--libbpf_force)
- 				if [ "$2" != 'on' ] && [ "$2" != 'off' ]; then
- 					usage 1
-@@ -525,6 +526,9 @@ else
- fi
- 
- [ -d "$INCLUDE" ] || usage 1
-+if [ "${LIBBPF_DIR-unused}" != "unused" ]; then
-+	[ -d "$LIBBPF_DIR" ] || usage 1
-+fi
- 
- echo "# Generated config based on" $INCLUDE >$CONFIG
- quiet_config >> $CONFIG
--- 
-2.31.1
-
diff --git a/SOURCES/0003-configure-fix-parsing-issue-with-more-than-one-value.patch b/SOURCES/0003-configure-fix-parsing-issue-with-more-than-one-value.patch
deleted file mode 100644
index 12f293b..0000000
--- a/SOURCES/0003-configure-fix-parsing-issue-with-more-than-one-value.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7d7655d0cc66288959b41f36ee1c52043cd86b79 Mon Sep 17 00:00:00 2001
-Message-Id: <7d7655d0cc66288959b41f36ee1c52043cd86b79.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: fix parsing issue with more than one value per
- option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit c330d097
-
-commit c330d0979440a1dec4a436fd742bb6e28d195526
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:51 2021 +0200
-
-    configure: fix parsing issue with more than one value per option
-
-    With commit a9c3d70d902a ("configure: add options ability") users are no
-    more able to provide wrong command lines like:
-
-    $ ./configure --include_dir foo bar
-
-    The script simply bails out when user provides more than one value for a
-    single option. However, in doing so, it breaks backward compatibility with
-    some packaging system, which expects unknown options to be ignored.
-
-    Commit a3272b93725a ("configure: restore backward compatibility") fix this
-    issue, but makes it possible again for users to provide wrong command lines
-    such as the one above.
-
-    This fixes the issue simply ignoring autoconf-like options such as
-    '--opt=value'.
-
-    Fixes: a3272b93725a ("configure: restore backward compatibility")
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index 0f304206..9ec19a5b 100755
---- a/configure
-+++ b/configure
-@@ -517,10 +517,12 @@ else
- 				shift 2 ;;
- 			-h | --help)
- 				usage 0 ;;
-+			--*)
-+				shift ;;
- 			"")
- 				break ;;
- 			*)
--				shift 1 ;;
-+				usage 1 ;;
- 		esac
- 	done
- fi
--- 
-2.31.1
-
diff --git a/SOURCES/0004-configure-simplify-options-parsing.patch b/SOURCES/0004-configure-simplify-options-parsing.patch
deleted file mode 100644
index 743324e..0000000
--- a/SOURCES/0004-configure-simplify-options-parsing.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 825f5869248638159d30aff05b5d81246dc8a208 Mon Sep 17 00:00:00 2001
-Message-Id: <825f5869248638159d30aff05b5d81246dc8a208.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: simplify options parsing
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit 99245d17
-
-commit 99245d1741a85e4397973782578d4a78673eb348
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:52 2021 +0200
-
-    configure: simplify options parsing
-
-    This commit simplifies options parsing moving all the code not related to
-    parsing out of the case statement.
-
-    - The conditional shift after the assignments is moved right after the
-      case, reducing code duplication.
-    - The semantic checks on the LIBBPF_FORCE value is moved after the loop
-      like we already did for INCLUDE and LIBBPF_DIR.
-    - Finally, the loop condition is changed to check remaining arguments, thus
-      making it possible to get rid of the null string case break.
-
-    As a bonus, now the help message states that on or off should follow
-    --libbpf_force
-
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 37 ++++++++++++++++++-------------------
- 1 file changed, 18 insertions(+), 19 deletions(-)
-
-diff --git a/configure b/configure
-index 9ec19a5b..26e06eb8 100755
---- a/configure
-+++ b/configure
-@@ -485,12 +485,12 @@ usage()
- {
- 	cat <<EOF
- Usage: $0 [OPTIONS]
--	--include_dir <dir>	Path to iproute2 include dir
--	--libbpf_dir <dir>	Path to libbpf DESTDIR
--	--libbpf_force		Enable/disable libbpf by force. Available options:
--				  on: require link against libbpf, quit config if no libbpf support
--				  off: disable libbpf probing
--	-h | --help		Show this usage info
-+	--include_dir <dir>		Path to iproute2 include dir
-+	--libbpf_dir <dir>		Path to libbpf DESTDIR
-+	--libbpf_force <on|off>		Enable/disable libbpf by force. Available options:
-+					  on: require link against libbpf, quit config if no libbpf support
-+					  off: disable libbpf probing
-+	-h | --help			Show this usage info
- EOF
- 	exit $1
- }
-@@ -499,31 +499,25 @@ EOF
- if [ $# -eq 1 ] && [ "$(echo $1 | cut -c 1)" != '-' ]; then
- 	INCLUDE="$1"
- else
--	while true; do
-+	while [ "$#" -gt 0 ]; do
- 		case "$1" in
- 			--include_dir)
- 				shift
--				INCLUDE="$1"
--				[ "$#" -gt 0 ] && shift ;;
-+				INCLUDE="$1" ;;
- 			--libbpf_dir)
- 				shift
--				LIBBPF_DIR="$1"
--				[ "$#" -gt 0 ] && shift ;;
-+				LIBBPF_DIR="$1" ;;
- 			--libbpf_force)
--				if [ "$2" != 'on' ] && [ "$2" != 'off' ]; then
--					usage 1
--				fi
--				LIBBPF_FORCE=$2
--				shift 2 ;;
-+				shift
-+				LIBBPF_FORCE="$1" ;;
- 			-h | --help)
- 				usage 0 ;;
- 			--*)
--				shift ;;
--			"")
--				break ;;
-+				;;
- 			*)
- 				usage 1 ;;
- 		esac
-+		[ "$#" -gt 0 ] && shift
- 	done
- fi
- 
-@@ -531,6 +525,11 @@ fi
- if [ "${LIBBPF_DIR-unused}" != "unused" ]; then
- 	[ -d "$LIBBPF_DIR" ] || usage 1
- fi
-+if [ "${LIBBPF_FORCE-unused}" != "unused" ]; then
-+	if [ "$LIBBPF_FORCE" != 'on' ] && [ "$LIBBPF_FORCE" != 'off' ]; then
-+		usage 1
-+	fi
-+fi
- 
- echo "# Generated config based on" $INCLUDE >$CONFIG
- quiet_config >> $CONFIG
--- 
-2.31.1
-
diff --git a/SOURCES/0005-configure-support-param-value-style.patch b/SOURCES/0005-configure-support-param-value-style.patch
deleted file mode 100644
index b4113dc..0000000
--- a/SOURCES/0005-configure-support-param-value-style.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 03bc25c8afdcb8fb69543ec9a7f5f0d7cb176dd6 Mon Sep 17 00:00:00 2001
-Message-Id: <03bc25c8afdcb8fb69543ec9a7f5f0d7cb176dd6.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: support --param=value style
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit 4b8bca5f
-
-commit 4b8bca5f9e3e6f210b1036166dc98801e76d8ee5
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:53 2021 +0200
-
-    configure: support --param=value style
-
-    This commit makes it possible to specify values for configure params
-    using the common autotools configure syntax '--param=value'.
-
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/configure b/configure
-index 26e06eb8..9a2645d9 100755
---- a/configure
-+++ b/configure
-@@ -504,12 +504,18 @@ else
- 			--include_dir)
- 				shift
- 				INCLUDE="$1" ;;
-+			--include_dir=*)
-+				INCLUDE="${1#*=}" ;;
- 			--libbpf_dir)
- 				shift
- 				LIBBPF_DIR="$1" ;;
-+			--libbpf_dir=*)
-+				LIBBPF_DIR="${1#*=}" ;;
- 			--libbpf_force)
- 				shift
- 				LIBBPF_FORCE="$1" ;;
-+			--libbpf_force=*)
-+				LIBBPF_FORCE="${1#*=}" ;;
- 			-h | --help)
- 				usage 0 ;;
- 			--*)
--- 
-2.31.1
-
diff --git a/SOURCES/0006-configure-add-the-prefix-option.patch b/SOURCES/0006-configure-add-the-prefix-option.patch
deleted file mode 100644
index a5cc2d8..0000000
--- a/SOURCES/0006-configure-add-the-prefix-option.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From a975d2b983bee77423ffbb29803403e0c3cba5bc Mon Sep 17 00:00:00 2001
-Message-Id: <a975d2b983bee77423ffbb29803403e0c3cba5bc.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:08 +0100
-Subject: [PATCH] configure: add the --prefix option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit 0ee1950b
-
-commit 0ee1950b5c38986ea896606810231f5f9d761a00
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:54 2021 +0200
-
-    configure: add the --prefix option
-
-    This commit add the '--prefix' option to the iproute2 configure script.
-
-    This mimics the '--prefix' option that autotools configure provides, and
-    will be used later to allow users or packagers to set the lib directory.
-
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- configure | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/configure b/configure
-index 9a2645d9..05e23eff 100755
---- a/configure
-+++ b/configure
-@@ -3,6 +3,7 @@
- # This is not an autoconf generated configure
- 
- INCLUDE="$PWD/include"
-+PREFIX="/usr"
- 
- # Output file which is input to Makefile
- CONFIG=config.mk
-@@ -490,6 +491,7 @@ Usage: $0 [OPTIONS]
- 	--libbpf_force <on|off>		Enable/disable libbpf by force. Available options:
- 					  on: require link against libbpf, quit config if no libbpf support
- 					  off: disable libbpf probing
-+	--prefix <dir>			Path prefix of the lib files to install
- 	-h | --help			Show this usage info
- EOF
- 	exit $1
-@@ -516,6 +518,11 @@ else
- 				LIBBPF_FORCE="$1" ;;
- 			--libbpf_force=*)
- 				LIBBPF_FORCE="${1#*=}" ;;
-+			--prefix)
-+				shift
-+				PREFIX="$1" ;;
-+			--prefix=*)
-+				PREFIX="${1#*=}" ;;
- 			-h | --help)
- 				usage 0 ;;
- 			--*)
-@@ -536,6 +543,7 @@ if [ "${LIBBPF_FORCE-unused}" != "unused" ]; then
- 		usage 1
- 	fi
- fi
-+[ -z "$PREFIX" ] && usage 1
- 
- echo "# Generated config based on" $INCLUDE >$CONFIG
- quiet_config >> $CONFIG
--- 
-2.31.1
-
diff --git a/SOURCES/0007-configure-add-the-libdir-option.patch b/SOURCES/0007-configure-add-the-libdir-option.patch
deleted file mode 100644
index a2aacc4..0000000
--- a/SOURCES/0007-configure-add-the-libdir-option.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 935d2e39c8341178adbfcf7ae037b9f64dbc2d6e Mon Sep 17 00:00:00 2001
-Message-Id: <935d2e39c8341178adbfcf7ae037b9f64dbc2d6e.1637749821.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1637749821.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Wed, 24 Nov 2021 11:28:09 +0100
-Subject: [PATCH] configure: add the --libdir option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355
-Upstream Status: iproute2.git commit cee0cf84
-
-commit cee0cf84bd32c8d9215f0c155187ad99d52a69b1
-Author: Andrea Claudi <aclaudi@redhat.com>
-Date:   Thu Oct 14 10:50:55 2021 +0200
-
-    configure: add the --libdir option
-
-    This commit allows users/packagers to choose a lib directory to store
-    iproute2 lib files.
-
-    At the moment iproute2 ship lib files in /usr/lib and offers no way to
-    modify this setting. However, according to the FHS, distros may choose
-    "one or more variants of the /lib directory on systems which support
-    more than one binary format" (e.g. /usr/lib64 on Fedora).
-
-    As Luca states in commit a3272b93725a ("configure: restore backward
-    compatibility"), packaging systems may assume that 'configure' is from
-    autotools, and try to pass it some parameters.
-
-    Allowing the '--libdir=/path/to/libdir' syntax, we can use this to our
-    advantage, and let the lib directory to be chosen by the distro
-    packaging system.
-
-    Note that LIBDIR uses "\${prefix}/lib" as default value because autoconf
-    allows this to be expanded to the --prefix value at configure runtime.
-    "\${prefix}" is replaced with the PREFIX value in check_lib_dir().
-
-    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
-    Acked-by: Phil Sutter <phil@nwl.cc>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- Makefile  |  7 ++++---
- configure | 18 ++++++++++++++++++
- 2 files changed, 22 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 5bc11477..45655ca4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,8 @@
- # SPDX-License-Identifier: GPL-2.0
- # Top level Makefile for iproute2
- 
-+-include config.mk
-+
- ifeq ("$(origin V)", "command line")
- VERBOSE = $(V)
- endif
-@@ -13,7 +15,6 @@ MAKEFLAGS += --no-print-directory
- endif
- 
- PREFIX?=/usr
--LIBDIR?=$(PREFIX)/lib
- SBINDIR?=/sbin
- CONFDIR?=/etc/iproute2
- NETNS_RUN_DIR?=/var/run/netns
-@@ -60,7 +61,7 @@ SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma dcb man vdpa
- LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a
- LDLIBS += $(LIBNETLINK)
- 
--all: config
-+all: config.mk
- 	@set -e; \
- 	for i in $(SUBDIRS); \
- 	do echo; echo $$i; $(MAKE) -C $$i; done
-@@ -80,7 +81,7 @@ help:
- 	@echo "Make Arguments:"
- 	@echo " V=[0|1]             - set build verbosity level"
- 
--config:
-+config.mk:
- 	@if [ ! -f config.mk -o configure -nt config.mk ]; then \
- 		sh configure $(KERNEL_INCLUDE); \
- 	fi
-diff --git a/configure b/configure
-index 05e23eff..8ddff43c 100755
---- a/configure
-+++ b/configure
-@@ -4,6 +4,7 @@
- 
- INCLUDE="$PWD/include"
- PREFIX="/usr"
-+LIBDIR="\${prefix}/lib"
- 
- # Output file which is input to Makefile
- CONFIG=config.mk
-@@ -149,6 +150,15 @@ EOF
- 	rm -f $TMPDIR/ipttest.c $TMPDIR/ipttest
- }
- 
-+check_lib_dir()
-+{
-+	LIBDIR=$(echo $LIBDIR | sed "s|\${prefix}|$PREFIX|")
-+
-+	echo -n "lib directory: "
-+	echo "$LIBDIR"
-+	echo "LIBDIR:=$LIBDIR" >> $CONFIG
-+}
-+
- check_ipt()
- {
- 	if ! grep TC_CONFIG_XT $CONFIG > /dev/null; then
-@@ -487,6 +497,7 @@ usage()
- 	cat <<EOF
- Usage: $0 [OPTIONS]
- 	--include_dir <dir>		Path to iproute2 include dir
-+	--libdir <dir>			Path to iproute2 lib dir
- 	--libbpf_dir <dir>		Path to libbpf DESTDIR
- 	--libbpf_force <on|off>		Enable/disable libbpf by force. Available options:
- 					  on: require link against libbpf, quit config if no libbpf support
-@@ -508,6 +519,11 @@ else
- 				INCLUDE="$1" ;;
- 			--include_dir=*)
- 				INCLUDE="${1#*=}" ;;
-+			--libdir)
-+				shift
-+				LIBDIR="$1" ;;
-+			--libdir=*)
-+				LIBDIR="${1#*=}" ;;
- 			--libbpf_dir)
- 				shift
- 				LIBBPF_DIR="$1" ;;
-@@ -544,6 +560,7 @@ if [ "${LIBBPF_FORCE-unused}" != "unused" ]; then
- 	fi
- fi
- [ -z "$PREFIX" ] && usage 1
-+[ -z "$LIBDIR" ] && usage 1
- 
- echo "# Generated config based on" $INCLUDE >$CONFIG
- quiet_config >> $CONFIG
-@@ -568,6 +585,7 @@ if ! grep -q TC_CONFIG_NO_XT $CONFIG; then
- fi
- 
- echo
-+check_lib_dir
- if ! grep -q TC_CONFIG_NO_XT $CONFIG; then
- 	echo -n "iptables modules directory: "
- 	check_ipt_lib_dir
--- 
-2.31.1
-
diff --git a/SOURCES/0008-Update-kernel-headers-and-import-virtio_net.patch b/SOURCES/0008-Update-kernel-headers-and-import-virtio_net.patch
deleted file mode 100644
index afca9c5..0000000
--- a/SOURCES/0008-Update-kernel-headers-and-import-virtio_net.patch
+++ /dev/null
@@ -1,395 +0,0 @@
-From 5c43a928d8eaca78e541029534b87fd7d4ca859b Mon Sep 17 00:00:00 2001
-Message-Id: <5c43a928d8eaca78e541029534b87fd7d4ca859b.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] Update kernel headers and import virtio_net
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 5cb7ec0c
-
-commit 5cb7ec0c8d554a7ea32c2f924d7a2fc66af4544a
-Author: David Ahern <dsahern@kernel.org>
-Date:   Sat Dec 18 14:00:29 2021 -0700
-
-    Update kernel headers and import virtio_net
-
-    Update kernel headers to commit:
-        f85b244ee395 ("xdp: move the if dev statements to the first")
-
-    and import virtio_net.h for vdpa.
-
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- include/uapi/linux/virtio_net.h | 358 ++++++++++++++++++++++++++++++++
- 1 file changed, 358 insertions(+)
- create mode 100644 include/uapi/linux/virtio_net.h
-
-diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
-new file mode 100644
-index 00000000..ab08237f
---- /dev/null
-+++ b/include/uapi/linux/virtio_net.h
-@@ -0,0 +1,358 @@
-+#ifndef _LINUX_VIRTIO_NET_H
-+#define _LINUX_VIRTIO_NET_H
-+/* This header is BSD licensed so anyone can use the definitions to implement
-+ * compatible drivers/servers.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ * 3. Neither the name of IBM nor the names of its contributors
-+ *    may be used to endorse or promote products derived from this software
-+ *    without specific prior written permission.
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+ * SUCH DAMAGE. */
-+#include <linux/types.h>
-+#include <linux/virtio_ids.h>
-+#include <linux/virtio_config.h>
-+#include <linux/virtio_types.h>
-+#include <linux/if_ether.h>
-+
-+/* The feature bitmap for virtio net */
-+#define VIRTIO_NET_F_CSUM	0	/* Host handles pkts w/ partial csum */
-+#define VIRTIO_NET_F_GUEST_CSUM	1	/* Guest handles pkts w/ partial csum */
-+#define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 /* Dynamic offload configuration. */
-+#define VIRTIO_NET_F_MTU	3	/* Initial MTU advice */
-+#define VIRTIO_NET_F_MAC	5	/* Host has given MAC address. */
-+#define VIRTIO_NET_F_GUEST_TSO4	7	/* Guest can handle TSOv4 in. */
-+#define VIRTIO_NET_F_GUEST_TSO6	8	/* Guest can handle TSOv6 in. */
-+#define VIRTIO_NET_F_GUEST_ECN	9	/* Guest can handle TSO[6] w/ ECN in. */
-+#define VIRTIO_NET_F_GUEST_UFO	10	/* Guest can handle UFO in. */
-+#define VIRTIO_NET_F_HOST_TSO4	11	/* Host can handle TSOv4 in. */
-+#define VIRTIO_NET_F_HOST_TSO6	12	/* Host can handle TSOv6 in. */
-+#define VIRTIO_NET_F_HOST_ECN	13	/* Host can handle TSO[6] w/ ECN in. */
-+#define VIRTIO_NET_F_HOST_UFO	14	/* Host can handle UFO in. */
-+#define VIRTIO_NET_F_MRG_RXBUF	15	/* Host can merge receive buffers. */
-+#define VIRTIO_NET_F_STATUS	16	/* virtio_net_config.status available */
-+#define VIRTIO_NET_F_CTRL_VQ	17	/* Control channel available */
-+#define VIRTIO_NET_F_CTRL_RX	18	/* Control channel RX mode support */
-+#define VIRTIO_NET_F_CTRL_VLAN	19	/* Control channel VLAN filtering */
-+#define VIRTIO_NET_F_CTRL_RX_EXTRA 20	/* Extra RX mode control support */
-+#define VIRTIO_NET_F_GUEST_ANNOUNCE 21	/* Guest can announce device on the
-+					 * network */
-+#define VIRTIO_NET_F_MQ	22	/* Device supports Receive Flow
-+					 * Steering */
-+#define VIRTIO_NET_F_CTRL_MAC_ADDR 23	/* Set MAC address */
-+
-+#define VIRTIO_NET_F_HASH_REPORT  57	/* Supports hash report */
-+#define VIRTIO_NET_F_RSS	  60	/* Supports RSS RX steering */
-+#define VIRTIO_NET_F_RSC_EXT	  61	/* extended coalescing info */
-+#define VIRTIO_NET_F_STANDBY	  62	/* Act as standby for another device
-+					 * with the same MAC.
-+					 */
-+#define VIRTIO_NET_F_SPEED_DUPLEX 63	/* Device set linkspeed and duplex */
-+
-+#ifndef VIRTIO_NET_NO_LEGACY
-+#define VIRTIO_NET_F_GSO	6	/* Host handles pkts w/ any GSO type */
-+#endif /* VIRTIO_NET_NO_LEGACY */
-+
-+#define VIRTIO_NET_S_LINK_UP	1	/* Link is up */
-+#define VIRTIO_NET_S_ANNOUNCE	2	/* Announcement is needed */
-+
-+/* supported/enabled hash types */
-+#define VIRTIO_NET_RSS_HASH_TYPE_IPv4          (1 << 0)
-+#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4         (1 << 1)
-+#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4         (1 << 2)
-+#define VIRTIO_NET_RSS_HASH_TYPE_IPv6          (1 << 3)
-+#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6         (1 << 4)
-+#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6         (1 << 5)
-+#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX         (1 << 6)
-+#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX        (1 << 7)
-+#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX        (1 << 8)
-+
-+struct virtio_net_config {
-+	/* The config defining mac address (if VIRTIO_NET_F_MAC) */
-+	__u8 mac[ETH_ALEN];
-+	/* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
-+	__virtio16 status;
-+	/* Maximum number of each of transmit and receive queues;
-+	 * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ.
-+	 * Legal values are between 1 and 0x8000
-+	 */
-+	__virtio16 max_virtqueue_pairs;
-+	/* Default maximum transmit unit advice */
-+	__virtio16 mtu;
-+	/*
-+	 * speed, in units of 1Mb. All values 0 to INT_MAX are legal.
-+	 * Any other value stands for unknown.
-+	 */
-+	__le32 speed;
-+	/*
-+	 * 0x00 - half duplex
-+	 * 0x01 - full duplex
-+	 * Any other value stands for unknown.
-+	 */
-+	__u8 duplex;
-+	/* maximum size of RSS key */
-+	__u8 rss_max_key_size;
-+	/* maximum number of indirection table entries */
-+	__le16 rss_max_indirection_table_length;
-+	/* bitmask of supported VIRTIO_NET_RSS_HASH_ types */
-+	__le32 supported_hash_types;
-+} __attribute__((packed));
-+
-+/*
-+ * This header comes first in the scatter-gather list.  If you don't
-+ * specify GSO or CSUM features, you can simply ignore the header.
-+ *
-+ * This is bitwise-equivalent to the legacy struct virtio_net_hdr_mrg_rxbuf,
-+ * only flattened.
-+ */
-+struct virtio_net_hdr_v1 {
-+#define VIRTIO_NET_HDR_F_NEEDS_CSUM	1	/* Use csum_start, csum_offset */
-+#define VIRTIO_NET_HDR_F_DATA_VALID	2	/* Csum is valid */
-+#define VIRTIO_NET_HDR_F_RSC_INFO	4	/* rsc info in csum_ fields */
-+	__u8 flags;
-+#define VIRTIO_NET_HDR_GSO_NONE		0	/* Not a GSO frame */
-+#define VIRTIO_NET_HDR_GSO_TCPV4	1	/* GSO frame, IPv4 TCP (TSO) */
-+#define VIRTIO_NET_HDR_GSO_UDP		3	/* GSO frame, IPv4 UDP (UFO) */
-+#define VIRTIO_NET_HDR_GSO_TCPV6	4	/* GSO frame, IPv6 TCP */
-+#define VIRTIO_NET_HDR_GSO_ECN		0x80	/* TCP has ECN set */
-+	__u8 gso_type;
-+	__virtio16 hdr_len;	/* Ethernet + IP + tcp/udp hdrs */
-+	__virtio16 gso_size;	/* Bytes to append to hdr_len per frame */
-+	union {
-+		struct {
-+			__virtio16 csum_start;
-+			__virtio16 csum_offset;
-+		};
-+		/* Checksum calculation */
-+		struct {
-+			/* Position to start checksumming from */
-+			__virtio16 start;
-+			/* Offset after that to place checksum */
-+			__virtio16 offset;
-+		} csum;
-+		/* Receive Segment Coalescing */
-+		struct {
-+			/* Number of coalesced segments */
-+			__le16 segments;
-+			/* Number of duplicated acks */
-+			__le16 dup_acks;
-+		} rsc;
-+	};
-+	__virtio16 num_buffers;	/* Number of merged rx buffers */
-+};
-+
-+struct virtio_net_hdr_v1_hash {
-+	struct virtio_net_hdr_v1 hdr;
-+	__le32 hash_value;
-+#define VIRTIO_NET_HASH_REPORT_NONE            0
-+#define VIRTIO_NET_HASH_REPORT_IPv4            1
-+#define VIRTIO_NET_HASH_REPORT_TCPv4           2
-+#define VIRTIO_NET_HASH_REPORT_UDPv4           3
-+#define VIRTIO_NET_HASH_REPORT_IPv6            4
-+#define VIRTIO_NET_HASH_REPORT_TCPv6           5
-+#define VIRTIO_NET_HASH_REPORT_UDPv6           6
-+#define VIRTIO_NET_HASH_REPORT_IPv6_EX         7
-+#define VIRTIO_NET_HASH_REPORT_TCPv6_EX        8
-+#define VIRTIO_NET_HASH_REPORT_UDPv6_EX        9
-+	__le16 hash_report;
-+	__le16 padding;
-+};
-+
-+#ifndef VIRTIO_NET_NO_LEGACY
-+/* This header comes first in the scatter-gather list.
-+ * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
-+ * be the first element of the scatter-gather list.  If you don't
-+ * specify GSO or CSUM features, you can simply ignore the header. */
-+struct virtio_net_hdr {
-+	/* See VIRTIO_NET_HDR_F_* */
-+	__u8 flags;
-+	/* See VIRTIO_NET_HDR_GSO_* */
-+	__u8 gso_type;
-+	__virtio16 hdr_len;		/* Ethernet + IP + tcp/udp hdrs */
-+	__virtio16 gso_size;		/* Bytes to append to hdr_len per frame */
-+	__virtio16 csum_start;	/* Position to start checksumming from */
-+	__virtio16 csum_offset;	/* Offset after that to place checksum */
-+};
-+
-+/* This is the version of the header to use when the MRG_RXBUF
-+ * feature has been negotiated. */
-+struct virtio_net_hdr_mrg_rxbuf {
-+	struct virtio_net_hdr hdr;
-+	__virtio16 num_buffers;	/* Number of merged rx buffers */
-+};
-+#endif /* ...VIRTIO_NET_NO_LEGACY */
-+
-+/*
-+ * Control virtqueue data structures
-+ *
-+ * The control virtqueue expects a header in the first sg entry
-+ * and an ack/status response in the last entry.  Data for the
-+ * command goes in between.
-+ */
-+struct virtio_net_ctrl_hdr {
-+	__u8 class;
-+	__u8 cmd;
-+} __attribute__((packed));
-+
-+typedef __u8 virtio_net_ctrl_ack;
-+
-+#define VIRTIO_NET_OK     0
-+#define VIRTIO_NET_ERR    1
-+
-+/*
-+ * Control the RX mode, ie. promisucous, allmulti, etc...
-+ * All commands require an "out" sg entry containing a 1 byte
-+ * state value, zero = disable, non-zero = enable.  Commands
-+ * 0 and 1 are supported with the VIRTIO_NET_F_CTRL_RX feature.
-+ * Commands 2-5 are added with VIRTIO_NET_F_CTRL_RX_EXTRA.
-+ */
-+#define VIRTIO_NET_CTRL_RX    0
-+ #define VIRTIO_NET_CTRL_RX_PROMISC      0
-+ #define VIRTIO_NET_CTRL_RX_ALLMULTI     1
-+ #define VIRTIO_NET_CTRL_RX_ALLUNI       2
-+ #define VIRTIO_NET_CTRL_RX_NOMULTI      3
-+ #define VIRTIO_NET_CTRL_RX_NOUNI        4
-+ #define VIRTIO_NET_CTRL_RX_NOBCAST      5
-+
-+/*
-+ * Control the MAC
-+ *
-+ * The MAC filter table is managed by the hypervisor, the guest should
-+ * assume the size is infinite.  Filtering should be considered
-+ * non-perfect, ie. based on hypervisor resources, the guest may
-+ * received packets from sources not specified in the filter list.
-+ *
-+ * In addition to the class/cmd header, the TABLE_SET command requires
-+ * two out scatterlists.  Each contains a 4 byte count of entries followed
-+ * by a concatenated byte stream of the ETH_ALEN MAC addresses.  The
-+ * first sg list contains unicast addresses, the second is for multicast.
-+ * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature
-+ * is available.
-+ *
-+ * The ADDR_SET command requests one out scatterlist, it contains a
-+ * 6 bytes MAC address. This functionality is present if the
-+ * VIRTIO_NET_F_CTRL_MAC_ADDR feature is available.
-+ */
-+struct virtio_net_ctrl_mac {
-+	__virtio32 entries;
-+	__u8 macs[][ETH_ALEN];
-+} __attribute__((packed));
-+
-+#define VIRTIO_NET_CTRL_MAC    1
-+ #define VIRTIO_NET_CTRL_MAC_TABLE_SET        0
-+ #define VIRTIO_NET_CTRL_MAC_ADDR_SET         1
-+
-+/*
-+ * Control VLAN filtering
-+ *
-+ * The VLAN filter table is controlled via a simple ADD/DEL interface.
-+ * VLAN IDs not added may be filterd by the hypervisor.  Del is the
-+ * opposite of add.  Both commands expect an out entry containing a 2
-+ * byte VLAN ID.  VLAN filterting is available with the
-+ * VIRTIO_NET_F_CTRL_VLAN feature bit.
-+ */
-+#define VIRTIO_NET_CTRL_VLAN       2
-+ #define VIRTIO_NET_CTRL_VLAN_ADD             0
-+ #define VIRTIO_NET_CTRL_VLAN_DEL             1
-+
-+/*
-+ * Control link announce acknowledgement
-+ *
-+ * The command VIRTIO_NET_CTRL_ANNOUNCE_ACK is used to indicate that
-+ * driver has recevied the notification; device would clear the
-+ * VIRTIO_NET_S_ANNOUNCE bit in the status field after it receives
-+ * this command.
-+ */
-+#define VIRTIO_NET_CTRL_ANNOUNCE       3
-+ #define VIRTIO_NET_CTRL_ANNOUNCE_ACK         0
-+
-+/*
-+ * Control Receive Flow Steering
-+ */
-+#define VIRTIO_NET_CTRL_MQ   4
-+/*
-+ * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
-+ * enables Receive Flow Steering, specifying the number of the transmit and
-+ * receive queues that will be used. After the command is consumed and acked by
-+ * the device, the device will not steer new packets on receive virtqueues
-+ * other than specified nor read from transmit virtqueues other than specified.
-+ * Accordingly, driver should not transmit new packets  on virtqueues other than
-+ * specified.
-+ */
-+struct virtio_net_ctrl_mq {
-+	__virtio16 virtqueue_pairs;
-+};
-+
-+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET        0
-+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN        1
-+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX        0x8000
-+
-+/*
-+ * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as
-+ * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures
-+ * the receive steering to use a hash calculated for incoming packet
-+ * to decide on receive virtqueue to place the packet. The command
-+ * also provides parameters to calculate a hash and receive virtqueue.
-+ */
-+struct virtio_net_rss_config {
-+	__le32 hash_types;
-+	__le16 indirection_table_mask;
-+	__le16 unclassified_queue;
-+	__le16 indirection_table[1/* + indirection_table_mask */];
-+	__le16 max_tx_vq;
-+	__u8 hash_key_length;
-+	__u8 hash_key_data[/* hash_key_length */];
-+};
-+
-+ #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG          1
-+
-+/*
-+ * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device
-+ * to include in the virtio header of the packet the value of the
-+ * calculated hash and the report type of hash. It also provides
-+ * parameters for hash calculation. The command requires feature
-+ * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the
-+ * layout of virtio header as defined in virtio_net_hdr_v1_hash.
-+ */
-+struct virtio_net_hash_config {
-+	__le32 hash_types;
-+	/* for compatibility with virtio_net_rss_config */
-+	__le16 reserved[4];
-+	__u8 hash_key_length;
-+	__u8 hash_key_data[/* hash_key_length */];
-+};
-+
-+ #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG         2
-+
-+/*
-+ * Control network offloads
-+ *
-+ * Reconfigures the network offloads that Guest can handle.
-+ *
-+ * Available with the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature bit.
-+ *
-+ * Command data format matches the feature bit mask exactly.
-+ *
-+ * See VIRTIO_NET_F_GUEST_* for the list of offloads
-+ * that can be enabled/disabled.
-+ */
-+#define VIRTIO_NET_CTRL_GUEST_OFFLOADS   5
-+#define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET        0
-+
-+#endif /* _LINUX_VIRTIO_NET_H */
--- 
-2.35.1
-
diff --git a/SOURCES/0009-vdpa-align-uapi-headers.patch b/SOURCES/0009-vdpa-align-uapi-headers.patch
deleted file mode 100644
index 0aa180a..0000000
--- a/SOURCES/0009-vdpa-align-uapi-headers.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From c8e6e4e8c15d119aa6586cd1d594f69a7025ed0a Mon Sep 17 00:00:00 2001
-Message-Id: <c8e6e4e8c15d119aa6586cd1d594f69a7025ed0a.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] vdpa: align uapi headers
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit fa58de9b
-
-commit fa58de9b0c73e8e02104603d82aa5b92df2a0e0f
-Author: Stephen Hemminger <stephen@networkplumber.org>
-Date:   Thu Nov 18 09:56:57 2021 -0800
-
-    vdpa: align uapi headers
-
-    Update vdpa headers based on 5.16.0-rc1 and remove redundant
-    copy.
-
-    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- include/uapi/linux/vdpa.h            | 40 ----------------------------
- vdpa/include/uapi/linux/vdpa.h       |  7 +++++
- vdpa/include/uapi/linux/virtio_ids.h | 26 ++++++++++++++++++
- 3 files changed, 33 insertions(+), 40 deletions(-)
- delete mode 100644 include/uapi/linux/vdpa.h
-
-diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h
-deleted file mode 100644
-index 37ae26b6..00000000
---- a/include/uapi/linux/vdpa.h
-+++ /dev/null
-@@ -1,40 +0,0 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * vdpa device management interface
-- * Copyright (c) 2020 Mellanox Technologies Ltd. All rights reserved.
-- */
--
--#ifndef _LINUX_VDPA_H_
--#define _LINUX_VDPA_H_
--
--#define VDPA_GENL_NAME "vdpa"
--#define VDPA_GENL_VERSION 0x1
--
--enum vdpa_command {
--	VDPA_CMD_UNSPEC,
--	VDPA_CMD_MGMTDEV_NEW,
--	VDPA_CMD_MGMTDEV_GET,		/* can dump */
--	VDPA_CMD_DEV_NEW,
--	VDPA_CMD_DEV_DEL,
--	VDPA_CMD_DEV_GET,		/* can dump */
--};
--
--enum vdpa_attr {
--	VDPA_ATTR_UNSPEC,
--
--	/* bus name (optional) + dev name together make the parent device handle */
--	VDPA_ATTR_MGMTDEV_BUS_NAME,		/* string */
--	VDPA_ATTR_MGMTDEV_DEV_NAME,		/* string */
--	VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,	/* u64 */
--
--	VDPA_ATTR_DEV_NAME,			/* string */
--	VDPA_ATTR_DEV_ID,			/* u32 */
--	VDPA_ATTR_DEV_VENDOR_ID,		/* u32 */
--	VDPA_ATTR_DEV_MAX_VQS,			/* u32 */
--	VDPA_ATTR_DEV_MAX_VQ_SIZE,		/* u16 */
--
--	/* new attributes must be added above here */
--	VDPA_ATTR_MAX,
--};
--
--#endif
-diff --git a/vdpa/include/uapi/linux/vdpa.h b/vdpa/include/uapi/linux/vdpa.h
-index 37ae26b6..b7eab069 100644
---- a/vdpa/include/uapi/linux/vdpa.h
-+++ b/vdpa/include/uapi/linux/vdpa.h
-@@ -17,6 +17,7 @@ enum vdpa_command {
- 	VDPA_CMD_DEV_NEW,
- 	VDPA_CMD_DEV_DEL,
- 	VDPA_CMD_DEV_GET,		/* can dump */
-+	VDPA_CMD_DEV_CONFIG_GET,	/* can dump */
- };
- 
- enum vdpa_attr {
-@@ -32,6 +33,12 @@ enum vdpa_attr {
- 	VDPA_ATTR_DEV_VENDOR_ID,		/* u32 */
- 	VDPA_ATTR_DEV_MAX_VQS,			/* u32 */
- 	VDPA_ATTR_DEV_MAX_VQ_SIZE,		/* u16 */
-+	VDPA_ATTR_DEV_MIN_VQ_SIZE,		/* u16 */
-+
-+	VDPA_ATTR_DEV_NET_CFG_MACADDR,		/* binary */
-+	VDPA_ATTR_DEV_NET_STATUS,		/* u8 */
-+	VDPA_ATTR_DEV_NET_CFG_MAX_VQP,		/* u16 */
-+	VDPA_ATTR_DEV_NET_CFG_MTU,		/* u16 */
- 
- 	/* new attributes must be added above here */
- 	VDPA_ATTR_MAX,
-diff --git a/vdpa/include/uapi/linux/virtio_ids.h b/vdpa/include/uapi/linux/virtio_ids.h
-index bc1c0621..80d76b75 100644
---- a/vdpa/include/uapi/linux/virtio_ids.h
-+++ b/vdpa/include/uapi/linux/virtio_ids.h
-@@ -51,8 +51,34 @@
- #define VIRTIO_ID_PSTORE		22 /* virtio pstore device */
- #define VIRTIO_ID_IOMMU			23 /* virtio IOMMU */
- #define VIRTIO_ID_MEM			24 /* virtio mem */
-+#define VIRTIO_ID_SOUND			25 /* virtio sound */
- #define VIRTIO_ID_FS			26 /* virtio filesystem */
- #define VIRTIO_ID_PMEM			27 /* virtio pmem */
-+#define VIRTIO_ID_RPMB			28 /* virtio rpmb */
- #define VIRTIO_ID_MAC80211_HWSIM	29 /* virtio mac80211-hwsim */
-+#define VIRTIO_ID_VIDEO_ENCODER		30 /* virtio video encoder */
-+#define VIRTIO_ID_VIDEO_DECODER		31 /* virtio video decoder */
-+#define VIRTIO_ID_SCMI			32 /* virtio SCMI */
-+#define VIRTIO_ID_NITRO_SEC_MOD		33 /* virtio nitro secure module*/
-+#define VIRTIO_ID_I2C_ADAPTER		34 /* virtio i2c adapter */
-+#define VIRTIO_ID_WATCHDOG		35 /* virtio watchdog */
-+#define VIRTIO_ID_CAN			36 /* virtio can */
-+#define VIRTIO_ID_DMABUF		37 /* virtio dmabuf */
-+#define VIRTIO_ID_PARAM_SERV		38 /* virtio parameter server */
-+#define VIRTIO_ID_AUDIO_POLICY		39 /* virtio audio policy */
-+#define VIRTIO_ID_BT			40 /* virtio bluetooth */
-+#define VIRTIO_ID_GPIO			41 /* virtio gpio */
-+
-+/*
-+ * Virtio Transitional IDs
-+ */
-+
-+#define VIRTIO_TRANS_ID_NET		1000 /* transitional virtio net */
-+#define VIRTIO_TRANS_ID_BLOCK		1001 /* transitional virtio block */
-+#define VIRTIO_TRANS_ID_BALLOON		1002 /* transitional virtio balloon */
-+#define VIRTIO_TRANS_ID_CONSOLE		1003 /* transitional virtio console */
-+#define VIRTIO_TRANS_ID_SCSI		1004 /* transitional virtio SCSI */
-+#define VIRTIO_TRANS_ID_RNG		1005 /* transitional virtio rng */
-+#define VIRTIO_TRANS_ID_9P		1009 /* transitional virtio 9p console */
- 
- #endif /* _LINUX_VIRTIO_IDS_H */
--- 
-2.35.1
-
diff --git a/SOURCES/0010-uapi-update-vdpa.h.patch b/SOURCES/0010-uapi-update-vdpa.h.patch
deleted file mode 100644
index 83e783c..0000000
--- a/SOURCES/0010-uapi-update-vdpa.h.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3d3a7ee1f5328bcc416b6a9a22f39359fc53b656 Mon Sep 17 00:00:00 2001
-Message-Id: <3d3a7ee1f5328bcc416b6a9a22f39359fc53b656.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] uapi: update vdpa.h
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 885e281e
-
-commit 885e281eadc238e30f7c3a42ad366ea123c03a83
-Author: Stephen Hemminger <stephen@networkplumber.org>
-Date:   Fri Mar 11 19:16:25 2022 -0800
-
-    uapi: update vdpa.h
-
-    Update header from upstream.
-
-    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
----
- vdpa/include/uapi/linux/vdpa.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/vdpa/include/uapi/linux/vdpa.h b/vdpa/include/uapi/linux/vdpa.h
-index b7eab069..cc575a82 100644
---- a/vdpa/include/uapi/linux/vdpa.h
-+++ b/vdpa/include/uapi/linux/vdpa.h
-@@ -23,6 +23,9 @@ enum vdpa_command {
- enum vdpa_attr {
- 	VDPA_ATTR_UNSPEC,
- 
-+	/* Pad attribute for 64b alignment */
-+	VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
-+
- 	/* bus name (optional) + dev name together make the parent device handle */
- 	VDPA_ATTR_MGMTDEV_BUS_NAME,		/* string */
- 	VDPA_ATTR_MGMTDEV_DEV_NAME,		/* string */
-@@ -40,6 +43,9 @@ enum vdpa_attr {
- 	VDPA_ATTR_DEV_NET_CFG_MAX_VQP,		/* u16 */
- 	VDPA_ATTR_DEV_NET_CFG_MTU,		/* u16 */
- 
-+	VDPA_ATTR_DEV_NEGOTIATED_FEATURES,	/* u64 */
-+	VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,		/* u32 */
-+	VDPA_ATTR_DEV_SUPPORTED_FEATURES,	/* u64 */
- 	/* new attributes must be added above here */
- 	VDPA_ATTR_MAX,
- };
--- 
-2.35.1
-
diff --git a/SOURCES/0011-vdpa-Enable-user-to-query-vdpa-device-config-layout.patch b/SOURCES/0011-vdpa-Enable-user-to-query-vdpa-device-config-layout.patch
deleted file mode 100644
index 9a8320e..0000000
--- a/SOURCES/0011-vdpa-Enable-user-to-query-vdpa-device-config-layout.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-From 492d698656851b27349dc64a8f0c2f66057eea52 Mon Sep 17 00:00:00 2001
-Message-Id: <492d698656851b27349dc64a8f0c2f66057eea52.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] vdpa: Enable user to query vdpa device config layout
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit a311f0c4
-
-commit a311f0c43a67be939dfafda563453a3f9bf30e42
-Author: Parav Pandit <parav@nvidia.com>
-Date:   Fri Dec 17 10:08:25 2021 +0200
-
-    vdpa: Enable user to query vdpa device config layout
-
-    Query the device configuration layout whenever kernel supports it.
-
-    An example of configuration layout of vdpa device of type network:
-
-    $ vdpa dev add name bar mgmtdev vdpasim_net
-
-    $ vdpa dev config show
-    bar: mac 00:35:09:19:48:05 link up link_announce false mtu 1500
-
-    $ vdpa dev config show -jp
-    {
-        "config": {
-            "bar": {
-                "mac": "00:35:09:19:48:05",
-                "link ": "up",
-                "link_announce ": false,
-                "mtu": 1500,
-            }
-        }
-    }
-
-    Signed-off-by: Parav Pandit <parav@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- man/man8/vdpa-dev.8 |  21 +++++++++
- vdpa/vdpa.c         | 110 ++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 131 insertions(+)
-
-diff --git a/man/man8/vdpa-dev.8 b/man/man8/vdpa-dev.8
-index 36433519..5d3a3f26 100644
---- a/man/man8/vdpa-dev.8
-+++ b/man/man8/vdpa-dev.8
-@@ -36,6 +36,10 @@ vdpa-dev \- vdpa device configuration
- .B vdpa dev del
- .I DEV
- 
-+.ti -8
-+.B vdpa dev config show
-+.RI "[ " DEV " ]"
-+
- .SH "DESCRIPTION"
- .SS vdpa dev show - display vdpa device attributes
- 
-@@ -65,6 +69,18 @@ Name of the management device to use for device addition.
- .I "DEV"
- - specifies the vdpa device to delete.
- 
-+.SS vdpa dev config show - Show configuration of specific device or all devices.
-+
-+.PP
-+.I "DEV"
-+- specifies the vdpa device to show its configuration.
-+If this argument is omitted all devices configuration is listed.
-+
-+.in +4
-+Format is:
-+.in +2
-+VDPA_DEVICE_NAME
-+
- .SH "EXAMPLES"
- .PP
- vdpa dev show
-@@ -86,6 +102,11 @@ vdpa dev del foo
- .RS 4
- Delete the vdpa device named foo which was previously created.
- .RE
-+.PP
-+vdpa dev config show foo
-+.RS 4
-+Shows the vdpa device configuration of device named foo.
-+.RE
- 
- .SH SEE ALSO
- .BR vdpa (8),
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index 7fdb36b9..ba704254 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -6,9 +6,11 @@
- #include <linux/genetlink.h>
- #include <linux/vdpa.h>
- #include <linux/virtio_ids.h>
-+#include <linux/virtio_net.h>
- #include <linux/netlink.h>
- #include <libmnl/libmnl.h>
- #include "mnl_utils.h"
-+#include <rt_names.h>
- 
- #include "version.h"
- #include "json_print.h"
-@@ -413,6 +415,7 @@ static void cmd_dev_help(void)
- 	fprintf(stderr, "Usage: vdpa dev show [ DEV ]\n");
- 	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV\n");
- 	fprintf(stderr, "       vdpa dev del DEV\n");
-+	fprintf(stderr, "Usage: vdpa dev config COMMAND [ OPTIONS ]\n");
- }
- 
- static const char *device_type_name(uint32_t type)
-@@ -520,6 +523,111 @@ static int cmd_dev_del(struct vdpa *vdpa,  int argc, char **argv)
- 	return mnlu_gen_socket_sndrcv(&vdpa->nlg, nlh, NULL, NULL);
- }
- 
-+static void pr_out_dev_net_config(struct nlattr **tb)
-+{
-+	SPRINT_BUF(macaddr);
-+	uint16_t val_u16;
-+
-+	if (tb[VDPA_ATTR_DEV_NET_CFG_MACADDR]) {
-+		const unsigned char *data;
-+		uint16_t len;
-+
-+		len = mnl_attr_get_payload_len(tb[VDPA_ATTR_DEV_NET_CFG_MACADDR]);
-+		data = mnl_attr_get_payload(tb[VDPA_ATTR_DEV_NET_CFG_MACADDR]);
-+
-+		print_string(PRINT_ANY, "mac", "mac %s ",
-+			     ll_addr_n2a(data, len, 0, macaddr, sizeof(macaddr)));
-+	}
-+	if (tb[VDPA_ATTR_DEV_NET_STATUS]) {
-+		val_u16 = mnl_attr_get_u16(tb[VDPA_ATTR_DEV_NET_STATUS]);
-+		print_string(PRINT_ANY, "link ", "link %s ",
-+			     (val_u16 & VIRTIO_NET_S_LINK_UP) ? "up" : "down");
-+		print_bool(PRINT_ANY, "link_announce ", "link_announce %s ",
-+			     (val_u16 & VIRTIO_NET_S_ANNOUNCE) ? true : false);
-+	}
-+	if (tb[VDPA_ATTR_DEV_NET_CFG_MAX_VQP]) {
-+		val_u16 = mnl_attr_get_u16(tb[VDPA_ATTR_DEV_NET_CFG_MAX_VQP]);
-+		print_uint(PRINT_ANY, "max_vq_pairs", "max_vq_pairs %d ",
-+			     val_u16);
-+	}
-+	if (tb[VDPA_ATTR_DEV_NET_CFG_MTU]) {
-+		val_u16 = mnl_attr_get_u16(tb[VDPA_ATTR_DEV_NET_CFG_MTU]);
-+		print_uint(PRINT_ANY, "mtu", "mtu %d ", val_u16);
-+	}
-+}
-+
-+static void pr_out_dev_config(struct vdpa *vdpa, struct nlattr **tb)
-+{
-+	uint32_t device_id = mnl_attr_get_u32(tb[VDPA_ATTR_DEV_ID]);
-+
-+	pr_out_vdev_handle_start(vdpa, tb);
-+	switch (device_id) {
-+	case VIRTIO_ID_NET:
-+		pr_out_dev_net_config(tb);
-+		break;
-+	default:
-+		break;
-+	}
-+	pr_out_vdev_handle_end(vdpa);
-+}
-+
-+static int cmd_dev_config_show_cb(const struct nlmsghdr *nlh, void *data)
-+{
-+	struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
-+	struct nlattr *tb[VDPA_ATTR_MAX + 1] = {};
-+	struct vdpa *vdpa = data;
-+
-+	mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-+	if (!tb[VDPA_ATTR_DEV_NAME] || !tb[VDPA_ATTR_DEV_ID])
-+		return MNL_CB_ERROR;
-+	pr_out_dev_config(vdpa, tb);
-+	return MNL_CB_OK;
-+}
-+
-+static int cmd_dev_config_show(struct vdpa *vdpa, int argc, char **argv)
-+{
-+	uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
-+	struct nlmsghdr *nlh;
-+	int err;
-+
-+	if (argc <= 0)
-+		flags |= NLM_F_DUMP;
-+
-+	nlh = mnlu_gen_socket_cmd_prepare(&vdpa->nlg, VDPA_CMD_DEV_CONFIG_GET,
-+					  flags);
-+	if (argc > 0) {
-+		err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
-+					  VDPA_OPT_VDEV_HANDLE);
-+		if (err)
-+			return err;
-+	}
-+
-+	pr_out_section_start(vdpa, "config");
-+	err = mnlu_gen_socket_sndrcv(&vdpa->nlg, nlh, cmd_dev_config_show_cb, vdpa);
-+	pr_out_section_end(vdpa);
-+	return err;
-+}
-+
-+static void cmd_dev_config_help(void)
-+{
-+	fprintf(stderr, "Usage: vdpa dev config show [ DEV ]\n");
-+}
-+
-+static int cmd_dev_config(struct vdpa *vdpa, int argc, char **argv)
-+{
-+	if (!argc)
-+		return cmd_dev_config_show(vdpa, argc - 1, argv + 1);
-+
-+	if (matches(*argv, "help") == 0) {
-+		cmd_dev_config_help();
-+		return 0;
-+	} else if (matches(*argv, "show") == 0) {
-+		return cmd_dev_config_show(vdpa, argc - 1, argv + 1);
-+	}
-+	fprintf(stderr, "Command \"%s\" not found\n", *argv);
-+	return -ENOENT;
-+}
-+
- static int cmd_dev(struct vdpa *vdpa, int argc, char **argv)
- {
- 	if (!argc)
-@@ -535,6 +643,8 @@ static int cmd_dev(struct vdpa *vdpa, int argc, char **argv)
- 		return cmd_dev_add(vdpa, argc - 1, argv + 1);
- 	} else if (matches(*argv, "del") == 0) {
- 		return cmd_dev_del(vdpa, argc - 1, argv + 1);
-+	} else if (matches(*argv, "config") == 0) {
-+		return cmd_dev_config(vdpa, argc - 1, argv + 1);
- 	}
- 	fprintf(stderr, "Command \"%s\" not found\n", *argv);
- 	return -ENOENT;
--- 
-2.35.1
-
diff --git a/SOURCES/0012-vdpa-Enable-user-to-set-mac-address-of-vdpa-device.patch b/SOURCES/0012-vdpa-Enable-user-to-set-mac-address-of-vdpa-device.patch
deleted file mode 100644
index 37b80ef..0000000
--- a/SOURCES/0012-vdpa-Enable-user-to-set-mac-address-of-vdpa-device.patch
+++ /dev/null
@@ -1,233 +0,0 @@
-From f5af49ce12667a6331d1a866d52e67fc27308f5d Mon Sep 17 00:00:00 2001
-Message-Id: <f5af49ce12667a6331d1a866d52e67fc27308f5d.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] vdpa: Enable user to set mac address of vdpa device
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 384938f9
-
-commit 384938f9b00f2d203603e0919f23ae6857a14d96
-Author: Parav Pandit <parav@nvidia.com>
-Date:   Fri Dec 17 10:08:26 2021 +0200
-
-    vdpa: Enable user to set mac address of vdpa device
-
-    vdpa: Enable user to set mtu of the vdpa device
-
-    Implement mtu setting for vdpa device.
-
-    $ vdpa mgmtdev show
-    vdpasim_net:
-      supported_classes net
-
-    Add the device with specified mac address:
-    $ vdpa dev add name bar mgmtdev vdpasim_net mac 00:11:22:33:44:55
-
-    View the config after setting:
-    $ vdpa dev config show
-    bar: mac 00:11:22:33:44:55 link up link_announce false mtu 1500
-
-    Signed-off-by: Parav Pandit <parav@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- man/man8/vdpa-dev.8 | 11 ++++++++++
- vdpa/vdpa.c         | 52 ++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 53 insertions(+), 10 deletions(-)
-
-diff --git a/man/man8/vdpa-dev.8 b/man/man8/vdpa-dev.8
-index 5d3a3f26..5c5ac469 100644
---- a/man/man8/vdpa-dev.8
-+++ b/man/man8/vdpa-dev.8
-@@ -31,6 +31,7 @@ vdpa-dev \- vdpa device configuration
- .I NAME
- .B mgmtdev
- .I MGMTDEV
-+.RI "[ mac " MACADDR " ]"
- 
- .ti -8
- .B vdpa dev del
-@@ -63,6 +64,11 @@ Name of the new vdpa device to add.
- .BI mgmtdev " MGMTDEV"
- Name of the management device to use for device addition.
- 
-+.PP
-+.BI mac " MACADDR"
-+- specifies the mac address for the new vdpa device.
-+This is applicable only for the network type of vdpa device. This is optional.
-+
- .SS vdpa dev del - Delete the vdpa device.
- 
- .PP
-@@ -98,6 +104,11 @@ vdpa dev add name foo mgmtdev vdpa_sim_net
- Add the vdpa device named foo on the management device vdpa_sim_net.
- .RE
- .PP
-+vdpa dev add name foo mgmtdev vdpa_sim_net mac 00:11:22:33:44:55
-+.RS 4
-+Add the vdpa device named foo on the management device vdpa_sim_net with mac address of 00:11:22:33:44:55.
-+.RE
-+.PP
- vdpa dev del foo
- .RS 4
- Delete the vdpa device named foo which was previously created.
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index ba704254..63d464d1 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -4,6 +4,7 @@
- #include <getopt.h>
- #include <errno.h>
- #include <linux/genetlink.h>
-+#include <linux/if_ether.h>
- #include <linux/vdpa.h>
- #include <linux/virtio_ids.h>
- #include <linux/virtio_net.h>
-@@ -20,6 +21,7 @@
- #define VDPA_OPT_VDEV_MGMTDEV_HANDLE	BIT(1)
- #define VDPA_OPT_VDEV_NAME		BIT(2)
- #define VDPA_OPT_VDEV_HANDLE		BIT(3)
-+#define VDPA_OPT_VDEV_MAC		BIT(4)
- 
- struct vdpa_opts {
- 	uint64_t present; /* flags of present items */
-@@ -27,6 +29,7 @@ struct vdpa_opts {
- 	char *mdev_name;
- 	const char *vdev_name;
- 	unsigned int device_id;
-+	char mac[ETH_ALEN];
- };
- 
- struct vdpa {
-@@ -136,6 +139,21 @@ static int vdpa_argv_str(struct vdpa *vdpa, int argc, char **argv,
- 	return 0;
- }
- 
-+static int vdpa_argv_mac(struct vdpa *vdpa, int argc, char **argv, char *mac)
-+{
-+	int alen;
-+
-+	if (argc <= 0 || *argv == NULL) {
-+		fprintf(stderr, "String parameter expected\n");
-+		return -EINVAL;
-+	}
-+
-+	alen = ll_addr_a2n(mac, ETH_ALEN, *argv);
-+	if (alen < 0)
-+		return -EINVAL;
-+	return 0;
-+}
-+
- struct vdpa_args_metadata {
- 	uint64_t o_flag;
- 	const char *err_msg;
-@@ -183,13 +201,16 @@ static void vdpa_opts_put(struct nlmsghdr *nlh, struct vdpa *vdpa)
- 	if ((opts->present & VDPA_OPT_VDEV_NAME) ||
- 	    (opts->present & VDPA_OPT_VDEV_HANDLE))
- 		mnl_attr_put_strz(nlh, VDPA_ATTR_DEV_NAME, opts->vdev_name);
-+	if (opts->present & VDPA_OPT_VDEV_MAC)
-+		mnl_attr_put(nlh, VDPA_ATTR_DEV_NET_CFG_MACADDR,
-+			     sizeof(opts->mac), opts->mac);
- }
- 
- static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
--			   uint64_t o_required)
-+			   uint64_t o_required, uint64_t o_optional)
- {
-+	uint64_t o_all = o_required | o_optional;
- 	struct vdpa_opts *opts = &vdpa->opts;
--	uint64_t o_all = o_required;
- 	uint64_t o_found = 0;
- 	int err;
- 
-@@ -233,6 +254,15 @@ static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
- 
- 			NEXT_ARG_FWD();
- 			o_found |= VDPA_OPT_VDEV_MGMTDEV_HANDLE;
-+		} else if ((strcmp(*argv, "mac") == 0) &&
-+			   (o_all & VDPA_OPT_VDEV_MAC)) {
-+			NEXT_ARG_FWD();
-+			err = vdpa_argv_mac(vdpa, argc, argv, opts->mac);
-+			if (err)
-+				return err;
-+
-+			NEXT_ARG_FWD();
-+			o_found |= VDPA_OPT_VDEV_MAC;
- 		} else {
- 			fprintf(stderr, "Unknown option \"%s\"\n", *argv);
- 			return -EINVAL;
-@@ -246,11 +276,11 @@ static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
- 
- static int vdpa_argv_parse_put(struct nlmsghdr *nlh, struct vdpa *vdpa,
- 			       int argc, char **argv,
--			       uint64_t o_required)
-+			       uint64_t o_required, uint64_t o_optional)
- {
- 	int err;
- 
--	err = vdpa_argv_parse(vdpa, argc, argv, o_required);
-+	err = vdpa_argv_parse(vdpa, argc, argv, o_required, o_optional);
- 	if (err)
- 		return err;
- 	vdpa_opts_put(nlh, vdpa);
-@@ -386,7 +416,7 @@ static int cmd_mgmtdev_show(struct vdpa *vdpa, int argc, char **argv)
- 					  flags);
- 	if (argc > 0) {
- 		err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
--					  VDPA_OPT_MGMTDEV_HANDLE);
-+					  VDPA_OPT_MGMTDEV_HANDLE, 0);
- 		if (err)
- 			return err;
- 	}
-@@ -413,7 +443,7 @@ static int cmd_mgmtdev(struct vdpa *vdpa, int argc, char **argv)
- static void cmd_dev_help(void)
- {
- 	fprintf(stderr, "Usage: vdpa dev show [ DEV ]\n");
--	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV\n");
-+	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV [ mac MACADDR ]\n");
- 	fprintf(stderr, "       vdpa dev del DEV\n");
- 	fprintf(stderr, "Usage: vdpa dev config COMMAND [ OPTIONS ]\n");
- }
-@@ -483,7 +513,7 @@ static int cmd_dev_show(struct vdpa *vdpa, int argc, char **argv)
- 	nlh = mnlu_gen_socket_cmd_prepare(&vdpa->nlg, VDPA_CMD_DEV_GET, flags);
- 	if (argc > 0) {
- 		err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
--					  VDPA_OPT_VDEV_HANDLE);
-+					  VDPA_OPT_VDEV_HANDLE, 0);
- 		if (err)
- 			return err;
- 	}
-@@ -502,7 +532,8 @@ static int cmd_dev_add(struct vdpa *vdpa, int argc, char **argv)
- 	nlh = mnlu_gen_socket_cmd_prepare(&vdpa->nlg, VDPA_CMD_DEV_NEW,
- 					  NLM_F_REQUEST | NLM_F_ACK);
- 	err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
--				  VDPA_OPT_VDEV_MGMTDEV_HANDLE | VDPA_OPT_VDEV_NAME);
-+				  VDPA_OPT_VDEV_MGMTDEV_HANDLE | VDPA_OPT_VDEV_NAME,
-+				  VDPA_OPT_VDEV_MAC);
- 	if (err)
- 		return err;
- 
-@@ -516,7 +547,8 @@ static int cmd_dev_del(struct vdpa *vdpa,  int argc, char **argv)
- 
- 	nlh = mnlu_gen_socket_cmd_prepare(&vdpa->nlg, VDPA_CMD_DEV_DEL,
- 					  NLM_F_REQUEST | NLM_F_ACK);
--	err = vdpa_argv_parse_put(nlh, vdpa, argc, argv, VDPA_OPT_VDEV_HANDLE);
-+	err = vdpa_argv_parse_put(nlh, vdpa, argc, argv, VDPA_OPT_VDEV_HANDLE,
-+				  0);
- 	if (err)
- 		return err;
- 
-@@ -597,7 +629,7 @@ static int cmd_dev_config_show(struct vdpa *vdpa, int argc, char **argv)
- 					  flags);
- 	if (argc > 0) {
- 		err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
--					  VDPA_OPT_VDEV_HANDLE);
-+					  VDPA_OPT_VDEV_HANDLE, 0);
- 		if (err)
- 			return err;
- 	}
--- 
-2.35.1
-
diff --git a/SOURCES/0013-vdpa-Enable-user-to-set-mtu-of-the-vdpa-device.patch b/SOURCES/0013-vdpa-Enable-user-to-set-mtu-of-the-vdpa-device.patch
deleted file mode 100644
index ee657fb..0000000
--- a/SOURCES/0013-vdpa-Enable-user-to-set-mtu-of-the-vdpa-device.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 2cd2172758cf8ba4c8f6148897a8968e62b73d31 Mon Sep 17 00:00:00 2001
-Message-Id: <2cd2172758cf8ba4c8f6148897a8968e62b73d31.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:15 +0100
-Subject: [PATCH] vdpa: Enable user to set mtu of the vdpa device
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 167e33f3
-
-commit 167e33f3be88c0fbe206df25145b850ddf3897a2
-Author: Parav Pandit <parav@nvidia.com>
-Date:   Fri Dec 17 10:08:27 2021 +0200
-
-    vdpa: Enable user to set mtu of the vdpa device
-
-    Implement mtu setting for vdpa device.
-
-    $ vdpa mgmtdev show
-    vdpasim_net:
-      supported_classes net
-
-    Add the device with mac address and mtu:
-    $ vdpa dev add name bar mgmtdev vdpasim_net mac 00:11:22:33:44:55 mtu 9000
-
-    In above command only mac address or only mtu can also be set.
-
-    View the config after setting:
-    $ vdpa dev config show
-    bar: mac 00:11:22:33:44:55 link up link_announce false mtu 9000
-
-    Signed-off-by: Parav Pandit <parav@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- man/man8/vdpa-dev.8 | 10 ++++++++++
- vdpa/vdpa.c         | 28 ++++++++++++++++++++++++++--
- 2 files changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/man/man8/vdpa-dev.8 b/man/man8/vdpa-dev.8
-index 5c5ac469..aa21ae3a 100644
---- a/man/man8/vdpa-dev.8
-+++ b/man/man8/vdpa-dev.8
-@@ -32,6 +32,7 @@ vdpa-dev \- vdpa device configuration
- .B mgmtdev
- .I MGMTDEV
- .RI "[ mac " MACADDR " ]"
-+.RI "[ mtu " MTU " ]"
- 
- .ti -8
- .B vdpa dev del
-@@ -69,6 +70,10 @@ Name of the management device to use for device addition.
- - specifies the mac address for the new vdpa device.
- This is applicable only for the network type of vdpa device. This is optional.
- 
-+.BI mtu " MTU"
-+- specifies the mtu for the new vdpa device.
-+This is applicable only for the network type of vdpa device. This is optional.
-+
- .SS vdpa dev del - Delete the vdpa device.
- 
- .PP
-@@ -109,6 +114,11 @@ vdpa dev add name foo mgmtdev vdpa_sim_net mac 00:11:22:33:44:55
- Add the vdpa device named foo on the management device vdpa_sim_net with mac address of 00:11:22:33:44:55.
- .RE
- .PP
-+vdpa dev add name foo mgmtdev vdpa_sim_net mac 00:11:22:33:44:55 mtu 9000
-+.RS 4
-+Add the vdpa device named foo on the management device vdpa_sim_net with mac address of 00:11:22:33:44:55 and mtu of 9000 bytes.
-+.RE
-+.PP
- vdpa dev del foo
- .RS 4
- Delete the vdpa device named foo which was previously created.
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index 63d464d1..f048e470 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -22,6 +22,7 @@
- #define VDPA_OPT_VDEV_NAME		BIT(2)
- #define VDPA_OPT_VDEV_HANDLE		BIT(3)
- #define VDPA_OPT_VDEV_MAC		BIT(4)
-+#define VDPA_OPT_VDEV_MTU		BIT(5)
- 
- struct vdpa_opts {
- 	uint64_t present; /* flags of present items */
-@@ -30,6 +31,7 @@ struct vdpa_opts {
- 	const char *vdev_name;
- 	unsigned int device_id;
- 	char mac[ETH_ALEN];
-+	uint16_t mtu;
- };
- 
- struct vdpa {
-@@ -154,6 +156,17 @@ static int vdpa_argv_mac(struct vdpa *vdpa, int argc, char **argv, char *mac)
- 	return 0;
- }
- 
-+static int vdpa_argv_u16(struct vdpa *vdpa, int argc, char **argv,
-+			 uint16_t *result)
-+{
-+	if (argc <= 0 || *argv == NULL) {
-+		fprintf(stderr, "number expected\n");
-+		return -EINVAL;
-+	}
-+
-+	return get_u16(result, *argv, 10);
-+}
-+
- struct vdpa_args_metadata {
- 	uint64_t o_flag;
- 	const char *err_msg;
-@@ -204,6 +217,8 @@ static void vdpa_opts_put(struct nlmsghdr *nlh, struct vdpa *vdpa)
- 	if (opts->present & VDPA_OPT_VDEV_MAC)
- 		mnl_attr_put(nlh, VDPA_ATTR_DEV_NET_CFG_MACADDR,
- 			     sizeof(opts->mac), opts->mac);
-+	if (opts->present & VDPA_OPT_VDEV_MTU)
-+		mnl_attr_put_u16(nlh, VDPA_ATTR_DEV_NET_CFG_MTU, opts->mtu);
- }
- 
- static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
-@@ -263,6 +278,15 @@ static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
- 
- 			NEXT_ARG_FWD();
- 			o_found |= VDPA_OPT_VDEV_MAC;
-+		} else if ((strcmp(*argv, "mtu") == 0) &&
-+			   (o_all & VDPA_OPT_VDEV_MTU)) {
-+			NEXT_ARG_FWD();
-+			err = vdpa_argv_u16(vdpa, argc, argv, &opts->mtu);
-+			if (err)
-+				return err;
-+
-+			NEXT_ARG_FWD();
-+			o_found |= VDPA_OPT_VDEV_MTU;
- 		} else {
- 			fprintf(stderr, "Unknown option \"%s\"\n", *argv);
- 			return -EINVAL;
-@@ -443,7 +467,7 @@ static int cmd_mgmtdev(struct vdpa *vdpa, int argc, char **argv)
- static void cmd_dev_help(void)
- {
- 	fprintf(stderr, "Usage: vdpa dev show [ DEV ]\n");
--	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV [ mac MACADDR ]\n");
-+	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV [ mac MACADDR ] [ mtu MTU ]\n");
- 	fprintf(stderr, "       vdpa dev del DEV\n");
- 	fprintf(stderr, "Usage: vdpa dev config COMMAND [ OPTIONS ]\n");
- }
-@@ -533,7 +557,7 @@ static int cmd_dev_add(struct vdpa *vdpa, int argc, char **argv)
- 					  NLM_F_REQUEST | NLM_F_ACK);
- 	err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
- 				  VDPA_OPT_VDEV_MGMTDEV_HANDLE | VDPA_OPT_VDEV_NAME,
--				  VDPA_OPT_VDEV_MAC);
-+				  VDPA_OPT_VDEV_MAC | VDPA_OPT_VDEV_MTU);
- 	if (err)
- 		return err;
- 
--- 
-2.35.1
-
diff --git a/SOURCES/0014-vdpa-Remove-unsupported-command-line-option.patch b/SOURCES/0014-vdpa-Remove-unsupported-command-line-option.patch
deleted file mode 100644
index f9880b1..0000000
--- a/SOURCES/0014-vdpa-Remove-unsupported-command-line-option.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From d6ac4610e3da73d4a9591720ee18e6df9ac6575b Mon Sep 17 00:00:00 2001
-Message-Id: <d6ac4610e3da73d4a9591720ee18e6df9ac6575b.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:16 +0100
-Subject: [PATCH] vdpa: Remove unsupported command line option
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 2d1954c8
-
-commit 2d1954c8a54b61ec271ab5b36976c4efdcf30066
-Author: Eli Cohen <elic@nvidia.com>
-Date:   Sun Mar 13 19:12:16 2022 +0200
-
-    vdpa: Remove unsupported command line option
-
-    "-v[erbose]" option is not supported.
-    Remove it.
-
-    Reviewed-by: Parav Pandit <parav@nvidia.com>
-    Reviewed-by: Jianbo Liu <jianbol@mellanox.com>
-    Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com>
-    Acked-by: Jason Wang <jasowang@redhat.com>
-    Signed-off-by: Eli Cohen <elic@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- vdpa/vdpa.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index f048e470..4ccb5648 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -711,7 +711,7 @@ static void help(void)
- 	fprintf(stderr,
- 		"Usage: vdpa [ OPTIONS ] OBJECT { COMMAND | help }\n"
- 		"where  OBJECT := { mgmtdev | dev }\n"
--		"       OPTIONS := { -V[ersion] | -n[o-nice-names] | -j[son] | -p[retty] | -v[erbose] }\n");
-+		"       OPTIONS := { -V[ersion] | -n[o-nice-names] | -j[son] | -p[retty] }\n");
- }
- 
- static int vdpa_cmd(struct vdpa *vdpa, int argc, char **argv)
--- 
-2.35.1
-
diff --git a/SOURCES/0015-vdpa-Allow-for-printing-negotiated-features-of-a-dev.patch b/SOURCES/0015-vdpa-Allow-for-printing-negotiated-features-of-a-dev.patch
deleted file mode 100644
index be9e550..0000000
--- a/SOURCES/0015-vdpa-Allow-for-printing-negotiated-features-of-a-dev.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-From 5a42cc6a5ec79fd0f93904f19b8954c772d931eb Mon Sep 17 00:00:00 2001
-Message-Id: <5a42cc6a5ec79fd0f93904f19b8954c772d931eb.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:16 +0100
-Subject: [PATCH] vdpa: Allow for printing negotiated features of a device
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit bd91c764
-
-commit bd91c764718997adaa1d86eee5c585e67ca85356
-Author: Eli Cohen <elic@nvidia.com>
-Date:   Sun Mar 13 19:12:17 2022 +0200
-
-    vdpa: Allow for printing negotiated features of a device
-
-    When reading the configuration of a vdpa device, check if the
-    VDPA_ATTR_DEV_NEGOTIATED_FEATURES is available. If it is, parse the
-    feature bits and print a string representation of each of the feature
-    bits.
-
-    We keep the strings in two different arrays. One for net device related
-    devices and one for generic feature bits.
-
-    In this patch we parse only net device specific features. Support for
-    other devices can be added later. If the device queried is not a net
-    device, we print its bit number only.
-
-    Examples:
-    1. Standard presentation
-    $ vdpa dev config show vdpa-a
-    vdpa-a: mac 00:00:00:00:88:88 link up link_announce false max_vq_pairs 2 mtu 9000
-      negotiated_features CSUM GUEST_CSUM MTU MAC HOST_TSO4 HOST_TSO6 STATUS \
-    CTRL_VQ MQ CTRL_MAC_ADDR VERSION_1 ACCESS_PLATFORM
-
-    2. json output
-    $ vdpa -j dev config show vdpa-a
-    {"config":{"vdpa-a":{"mac":"00:00:00:00:88:88","link":"up","link_announce":false,\
-    "max_vq_pairs":2,"mtu":9000,"negotiated_features":["CSUM","GUEST_CSUM",\
-    "MTU","MAC","HOST_TSO4","HOST_TSO6","STATUS","CTRL_VQ","MQ","CTRL_MAC_ADDR",\
-    "VERSION_1","ACCESS_PLATFORM"]}}}
-
-    3. Pretty json
-    $ vdpa -jp dev config show vdpa-a
-    {
-        "config": {
-            "vdpa-a": {
-                "mac": "00:00:00:00:88:88",
-                "link ": "up",
-                "link_announce ": false,
-                "max_vq_pairs": 2,
-                "mtu": 9000,
-                "negotiated_features": [
-    "CSUM","GUEST_CSUM","MTU","MAC","HOST_TSO4","HOST_TSO6","STATUS","CTRL_VQ",\
-    "MQ","CTRL_MAC_ADDR","VERSION_1","ACCESS_PLATFORM" ]
-            }
-        }
-    }
-
-    Reviewed-by: Si-Wei Liu<si-wei.liu@oracle.com>
-    Acked-by: Jason Wang <jasowang@redhat.com>
-    Signed-off-by: Eli Cohen <elic@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- vdpa/vdpa.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 103 insertions(+), 2 deletions(-)
-
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index 4ccb5648..40078b1c 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -10,6 +10,8 @@
- #include <linux/virtio_net.h>
- #include <linux/netlink.h>
- #include <libmnl/libmnl.h>
-+#include <linux/virtio_ring.h>
-+#include <linux/virtio_config.h>
- #include "mnl_utils.h"
- #include <rt_names.h>
- 
-@@ -78,6 +80,7 @@ static const enum mnl_attr_data_type vdpa_policy[VDPA_ATTR_MAX + 1] = {
- 	[VDPA_ATTR_DEV_VENDOR_ID] = MNL_TYPE_U32,
- 	[VDPA_ATTR_DEV_MAX_VQS] = MNL_TYPE_U32,
- 	[VDPA_ATTR_DEV_MAX_VQ_SIZE] = MNL_TYPE_U16,
-+	[VDPA_ATTR_DEV_NEGOTIATED_FEATURES] = MNL_TYPE_U64,
- };
- 
- static int attr_cb(const struct nlattr *attr, void *data)
-@@ -385,6 +388,94 @@ static const char *parse_class(int num)
- 	return class ? class : "< unknown class >";
- }
- 
-+static const char * const net_feature_strs[64] = {
-+	[VIRTIO_NET_F_CSUM] = "CSUM",
-+	[VIRTIO_NET_F_GUEST_CSUM] = "GUEST_CSUM",
-+	[VIRTIO_NET_F_CTRL_GUEST_OFFLOADS] = "CTRL_GUEST_OFFLOADS",
-+	[VIRTIO_NET_F_MTU] = "MTU",
-+	[VIRTIO_NET_F_MAC] = "MAC",
-+	[VIRTIO_NET_F_GUEST_TSO4] = "GUEST_TSO4",
-+	[VIRTIO_NET_F_GUEST_TSO6] = "GUEST_TSO6",
-+	[VIRTIO_NET_F_GUEST_ECN] = "GUEST_ECN",
-+	[VIRTIO_NET_F_GUEST_UFO] = "GUEST_UFO",
-+	[VIRTIO_NET_F_HOST_TSO4] = "HOST_TSO4",
-+	[VIRTIO_NET_F_HOST_TSO6] = "HOST_TSO6",
-+	[VIRTIO_NET_F_HOST_ECN] = "HOST_ECN",
-+	[VIRTIO_NET_F_HOST_UFO] = "HOST_UFO",
-+	[VIRTIO_NET_F_MRG_RXBUF] = "MRG_RXBUF",
-+	[VIRTIO_NET_F_STATUS] = "STATUS",
-+	[VIRTIO_NET_F_CTRL_VQ] = "CTRL_VQ",
-+	[VIRTIO_NET_F_CTRL_RX] = "CTRL_RX",
-+	[VIRTIO_NET_F_CTRL_VLAN] = "CTRL_VLAN",
-+	[VIRTIO_NET_F_CTRL_RX_EXTRA] = "CTRL_RX_EXTRA",
-+	[VIRTIO_NET_F_GUEST_ANNOUNCE] = "GUEST_ANNOUNCE",
-+	[VIRTIO_NET_F_MQ] = "MQ",
-+	[VIRTIO_F_NOTIFY_ON_EMPTY] = "NOTIFY_ON_EMPTY",
-+	[VIRTIO_NET_F_CTRL_MAC_ADDR] = "CTRL_MAC_ADDR",
-+	[VIRTIO_F_ANY_LAYOUT] = "ANY_LAYOUT",
-+	[VIRTIO_NET_F_RSC_EXT] = "RSC_EXT",
-+	[VIRTIO_NET_F_HASH_REPORT] = "HASH_REPORT",
-+	[VIRTIO_NET_F_RSS] = "RSS",
-+	[VIRTIO_NET_F_STANDBY] = "STANDBY",
-+	[VIRTIO_NET_F_SPEED_DUPLEX] = "SPEED_DUPLEX",
-+};
-+
-+#define VIRTIO_F_IN_ORDER 35
-+#define VIRTIO_F_NOTIFICATION_DATA 38
-+#define VDPA_EXT_FEATURES_SZ (VIRTIO_TRANSPORT_F_END - \
-+			      VIRTIO_TRANSPORT_F_START + 1)
-+
-+static const char * const ext_feature_strs[VDPA_EXT_FEATURES_SZ] = {
-+	[VIRTIO_RING_F_INDIRECT_DESC - VIRTIO_TRANSPORT_F_START] = "RING_INDIRECT_DESC",
-+	[VIRTIO_RING_F_EVENT_IDX - VIRTIO_TRANSPORT_F_START] = "RING_EVENT_IDX",
-+	[VIRTIO_F_VERSION_1 - VIRTIO_TRANSPORT_F_START] = "VERSION_1",
-+	[VIRTIO_F_ACCESS_PLATFORM - VIRTIO_TRANSPORT_F_START] = "ACCESS_PLATFORM",
-+	[VIRTIO_F_RING_PACKED - VIRTIO_TRANSPORT_F_START] = "RING_PACKED",
-+	[VIRTIO_F_IN_ORDER - VIRTIO_TRANSPORT_F_START] = "IN_ORDER",
-+	[VIRTIO_F_ORDER_PLATFORM - VIRTIO_TRANSPORT_F_START] = "ORDER_PLATFORM",
-+	[VIRTIO_F_SR_IOV - VIRTIO_TRANSPORT_F_START] = "SR_IOV",
-+	[VIRTIO_F_NOTIFICATION_DATA - VIRTIO_TRANSPORT_F_START] = "NOTIFICATION_DATA",
-+};
-+
-+static const char * const *dev_to_feature_str[] = {
-+	[VIRTIO_ID_NET] = net_feature_strs,
-+};
-+
-+#define NUM_FEATURE_BITS 64
-+
-+static void print_features(struct vdpa *vdpa, uint64_t features, bool mgmtdevf,
-+			   uint16_t dev_id)
-+{
-+	const char * const *feature_strs = NULL;
-+	const char *s;
-+	int i;
-+
-+	if (dev_id < ARRAY_SIZE(dev_to_feature_str))
-+		feature_strs = dev_to_feature_str[dev_id];
-+
-+	if (mgmtdevf)
-+		pr_out_array_start(vdpa, "dev_features");
-+	else
-+		pr_out_array_start(vdpa, "negotiated_features");
-+
-+	for (i = 0; i < NUM_FEATURE_BITS; i++) {
-+		if (!(features & (1ULL << i)))
-+			continue;
-+
-+		if (i < VIRTIO_TRANSPORT_F_START || i > VIRTIO_TRANSPORT_F_END)
-+			s = feature_strs ? feature_strs[i] : NULL;
-+		else
-+			s = ext_feature_strs[i - VIRTIO_TRANSPORT_F_START];
-+
-+		if (!s)
-+			print_uint(PRINT_ANY, NULL, " bit_%d", i);
-+		else
-+			print_string(PRINT_ANY, NULL, " %s", s);
-+	}
-+
-+	pr_out_array_end(vdpa);
-+}
-+
- static void pr_out_mgmtdev_show(struct vdpa *vdpa, const struct nlmsghdr *nlh,
- 				struct nlattr **tb)
- {
-@@ -579,9 +670,10 @@ static int cmd_dev_del(struct vdpa *vdpa,  int argc, char **argv)
- 	return mnlu_gen_socket_sndrcv(&vdpa->nlg, nlh, NULL, NULL);
- }
- 
--static void pr_out_dev_net_config(struct nlattr **tb)
-+static void pr_out_dev_net_config(struct vdpa *vdpa, struct nlattr **tb)
- {
- 	SPRINT_BUF(macaddr);
-+	uint64_t val_u64;
- 	uint16_t val_u16;
- 
- 	if (tb[VDPA_ATTR_DEV_NET_CFG_MACADDR]) {
-@@ -610,6 +702,15 @@ static void pr_out_dev_net_config(struct nlattr **tb)
- 		val_u16 = mnl_attr_get_u16(tb[VDPA_ATTR_DEV_NET_CFG_MTU]);
- 		print_uint(PRINT_ANY, "mtu", "mtu %d ", val_u16);
- 	}
-+	if (tb[VDPA_ATTR_DEV_NEGOTIATED_FEATURES]) {
-+		uint16_t dev_id = 0;
-+
-+		if (tb[VDPA_ATTR_DEV_ID])
-+			dev_id = mnl_attr_get_u32(tb[VDPA_ATTR_DEV_ID]);
-+
-+		val_u64 = mnl_attr_get_u64(tb[VDPA_ATTR_DEV_NEGOTIATED_FEATURES]);
-+		print_features(vdpa, val_u64, false, dev_id);
-+	}
- }
- 
- static void pr_out_dev_config(struct vdpa *vdpa, struct nlattr **tb)
-@@ -619,7 +720,7 @@ static void pr_out_dev_config(struct vdpa *vdpa, struct nlattr **tb)
- 	pr_out_vdev_handle_start(vdpa, tb);
- 	switch (device_id) {
- 	case VIRTIO_ID_NET:
--		pr_out_dev_net_config(tb);
-+		pr_out_dev_net_config(vdpa, tb);
- 		break;
- 	default:
- 		break;
--- 
-2.35.1
-
diff --git a/SOURCES/0016-vdpa-Support-for-configuring-max-VQ-pairs-for-a-devi.patch b/SOURCES/0016-vdpa-Support-for-configuring-max-VQ-pairs-for-a-devi.patch
deleted file mode 100644
index 037fb2e..0000000
--- a/SOURCES/0016-vdpa-Support-for-configuring-max-VQ-pairs-for-a-devi.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 23f80a84bf306e32fe02b78c2d02555c5d35ffb4 Mon Sep 17 00:00:00 2001
-Message-Id: <23f80a84bf306e32fe02b78c2d02555c5d35ffb4.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:16 +0100
-Subject: [PATCH] vdpa: Support for configuring max VQ pairs for a device
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 16482fd4
-
-commit 16482fd4df1132749575c49797c8d167c316d3f7
-Author: Eli Cohen <elic@nvidia.com>
-Date:   Sun Mar 13 19:12:18 2022 +0200
-
-    vdpa: Support for configuring max VQ pairs for a device
-
-    Use VDPA_ATTR_DEV_MGMTDEV_MAX_VQS to specify max number of virtqueue
-    pairs to configure for a vdpa device when adding a device.
-
-    Examples:
-    1. Create a device with 3 virtqueue pairs:
-    $ vdpa dev add name vdpa-a mgmtdev auxiliary/mlx5_core.sf.1 max_vqp 3
-
-    2. Read the configuration of a vdpa device
-    $ vdpa dev config show vdpa-a
-      vdpa-a: mac 00:00:00:00:88:88 link up link_announce false max_vq_pairs 3 \
-              mtu 1500
-      negotiated_features CSUM GUEST_CSUM MTU MAC HOST_TSO4 HOST_TSO6 STATUS \
-                          CTRL_VQ MQ CTRL_MAC_ADDR VERSION_1 ACCESS_PLATFORM
-
-    Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com>
-    Acked-by: Jason Wang <jasowang@redhat.com>
-    Signed-off-by: Eli Cohen <elic@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- vdpa/vdpa.c | 25 ++++++++++++++++++++++++-
- 1 file changed, 24 insertions(+), 1 deletion(-)
-
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index 40078b1c..9985b6ca 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -25,6 +25,7 @@
- #define VDPA_OPT_VDEV_HANDLE		BIT(3)
- #define VDPA_OPT_VDEV_MAC		BIT(4)
- #define VDPA_OPT_VDEV_MTU		BIT(5)
-+#define VDPA_OPT_MAX_VQP		BIT(6)
- 
- struct vdpa_opts {
- 	uint64_t present; /* flags of present items */
-@@ -34,6 +35,7 @@ struct vdpa_opts {
- 	unsigned int device_id;
- 	char mac[ETH_ALEN];
- 	uint16_t mtu;
-+	uint16_t max_vqp;
- };
- 
- struct vdpa {
-@@ -81,6 +83,7 @@ static const enum mnl_attr_data_type vdpa_policy[VDPA_ATTR_MAX + 1] = {
- 	[VDPA_ATTR_DEV_MAX_VQS] = MNL_TYPE_U32,
- 	[VDPA_ATTR_DEV_MAX_VQ_SIZE] = MNL_TYPE_U16,
- 	[VDPA_ATTR_DEV_NEGOTIATED_FEATURES] = MNL_TYPE_U64,
-+	[VDPA_ATTR_DEV_MGMTDEV_MAX_VQS] = MNL_TYPE_U32,
- };
- 
- static int attr_cb(const struct nlattr *attr, void *data)
-@@ -222,6 +225,8 @@ static void vdpa_opts_put(struct nlmsghdr *nlh, struct vdpa *vdpa)
- 			     sizeof(opts->mac), opts->mac);
- 	if (opts->present & VDPA_OPT_VDEV_MTU)
- 		mnl_attr_put_u16(nlh, VDPA_ATTR_DEV_NET_CFG_MTU, opts->mtu);
-+	if (opts->present & VDPA_OPT_MAX_VQP)
-+		mnl_attr_put_u16(nlh, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, opts->max_vqp);
- }
- 
- static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
-@@ -290,6 +295,14 @@ static int vdpa_argv_parse(struct vdpa *vdpa, int argc, char **argv,
- 
- 			NEXT_ARG_FWD();
- 			o_found |= VDPA_OPT_VDEV_MTU;
-+		} else if ((matches(*argv, "max_vqp")  == 0) && (o_optional & VDPA_OPT_MAX_VQP)) {
-+			NEXT_ARG_FWD();
-+			err = vdpa_argv_u16(vdpa, argc, argv, &opts->max_vqp);
-+			if (err)
-+				return err;
-+
-+			NEXT_ARG_FWD();
-+			o_found |= VDPA_OPT_MAX_VQP;
- 		} else {
- 			fprintf(stderr, "Unknown option \"%s\"\n", *argv);
- 			return -EINVAL;
-@@ -499,6 +512,14 @@ static void pr_out_mgmtdev_show(struct vdpa *vdpa, const struct nlmsghdr *nlh,
- 		pr_out_array_end(vdpa);
- 	}
- 
-+	if (tb[VDPA_ATTR_DEV_MGMTDEV_MAX_VQS]) {
-+		uint32_t num_vqs;
-+
-+		print_nl();
-+		num_vqs = mnl_attr_get_u32(tb[VDPA_ATTR_DEV_MGMTDEV_MAX_VQS]);
-+		print_uint(PRINT_ANY, "max_supported_vqs", "  max_supported_vqs %d", num_vqs);
-+	}
-+
- 	pr_out_handle_end(vdpa);
- }
- 
-@@ -559,6 +580,7 @@ static void cmd_dev_help(void)
- {
- 	fprintf(stderr, "Usage: vdpa dev show [ DEV ]\n");
- 	fprintf(stderr, "       vdpa dev add name NAME mgmtdev MANAGEMENTDEV [ mac MACADDR ] [ mtu MTU ]\n");
-+	fprintf(stderr, "                                                    [ max_vqp MAX_VQ_PAIRS ]\n");
- 	fprintf(stderr, "       vdpa dev del DEV\n");
- 	fprintf(stderr, "Usage: vdpa dev config COMMAND [ OPTIONS ]\n");
- }
-@@ -648,7 +670,8 @@ static int cmd_dev_add(struct vdpa *vdpa, int argc, char **argv)
- 					  NLM_F_REQUEST | NLM_F_ACK);
- 	err = vdpa_argv_parse_put(nlh, vdpa, argc, argv,
- 				  VDPA_OPT_VDEV_MGMTDEV_HANDLE | VDPA_OPT_VDEV_NAME,
--				  VDPA_OPT_VDEV_MAC | VDPA_OPT_VDEV_MTU);
-+				  VDPA_OPT_VDEV_MAC | VDPA_OPT_VDEV_MTU |
-+				  VDPA_OPT_MAX_VQP);
- 	if (err)
- 		return err;
- 
--- 
-2.35.1
-
diff --git a/SOURCES/0017-vdpa-Support-reading-device-features.patch b/SOURCES/0017-vdpa-Support-reading-device-features.patch
deleted file mode 100644
index 66ee427..0000000
--- a/SOURCES/0017-vdpa-Support-reading-device-features.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 03beee452fb8b857906d8cb4bcfd8e3db6a9fdd1 Mon Sep 17 00:00:00 2001
-Message-Id: <03beee452fb8b857906d8cb4bcfd8e3db6a9fdd1.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:16 +0100
-Subject: [PATCH] vdpa: Support reading device features
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 56eb8bf4
-
-commit 56eb8bf45aa3d509eb119201341d0323ea81ef84
-Author: Eli Cohen <elic@nvidia.com>
-Date:   Sun Mar 13 19:12:19 2022 +0200
-
-    vdpa: Support reading device features
-
-    When showing the available management devices, check if
-    VDPA_ATTR_DEV_SUPPORTED_FEATURES feature is available and print the
-    supported features for a management device.
-
-    Examples:
-    $ vdpa mgmtdev show
-    auxiliary/mlx5_core.sf.1:
-      supported_classes net
-      max_supported_vqs 257
-      dev_features CSUM GUEST_CSUM MTU HOST_TSO4 HOST_TSO6 STATUS CTRL_VQ MQ \
-                   CTRL_MAC_ADDR VERSION_1 ACCESS_PLATFORM
-
-    $ vdpa -jp mgmtdev show
-    {
-        "mgmtdev": {
-            "auxiliary/mlx5_core.sf.1": {
-                "supported_classes": [ "net" ],
-                "max_supported_vqs": 257,
-                "dev_features": [
-    "CSUM","GUEST_CSUM","MTU","HOST_TSO4","HOST_TSO6","STATUS","CTRL_VQ","MQ",\
-    "CTRL_MAC_ADDR","VERSION_1","ACCESS_PLATFORM" ]
-            }
-        }
-    }
-
-    Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com>
-    Acked-by: Jason Wang <jasowang@redhat.com>
-    Signed-off-by: Eli Cohen <elic@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- vdpa/vdpa.c | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/vdpa/vdpa.c b/vdpa/vdpa.c
-index 9985b6ca..3ae1b78f 100644
---- a/vdpa/vdpa.c
-+++ b/vdpa/vdpa.c
-@@ -84,6 +84,7 @@ static const enum mnl_attr_data_type vdpa_policy[VDPA_ATTR_MAX + 1] = {
- 	[VDPA_ATTR_DEV_MAX_VQ_SIZE] = MNL_TYPE_U16,
- 	[VDPA_ATTR_DEV_NEGOTIATED_FEATURES] = MNL_TYPE_U64,
- 	[VDPA_ATTR_DEV_MGMTDEV_MAX_VQS] = MNL_TYPE_U32,
-+	[VDPA_ATTR_DEV_SUPPORTED_FEATURES] = MNL_TYPE_U64,
- };
- 
- static int attr_cb(const struct nlattr *attr, void *data)
-@@ -492,14 +493,14 @@ static void print_features(struct vdpa *vdpa, uint64_t features, bool mgmtdevf,
- static void pr_out_mgmtdev_show(struct vdpa *vdpa, const struct nlmsghdr *nlh,
- 				struct nlattr **tb)
- {
-+	uint64_t classes = 0;
- 	const char *class;
- 	unsigned int i;
- 
- 	pr_out_handle_start(vdpa, tb);
- 
- 	if (tb[VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES]) {
--		uint64_t classes = mnl_attr_get_u64(tb[VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES]);
--
-+		classes = mnl_attr_get_u64(tb[VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES]);
- 		pr_out_array_start(vdpa, "supported_classes");
- 
- 		for (i = 1; i < 64; i++) {
-@@ -520,6 +521,16 @@ static void pr_out_mgmtdev_show(struct vdpa *vdpa, const struct nlmsghdr *nlh,
- 		print_uint(PRINT_ANY, "max_supported_vqs", "  max_supported_vqs %d", num_vqs);
- 	}
- 
-+	if (tb[VDPA_ATTR_DEV_SUPPORTED_FEATURES]) {
-+		uint64_t features;
-+
-+		features  = mnl_attr_get_u64(tb[VDPA_ATTR_DEV_SUPPORTED_FEATURES]);
-+		if (classes & BIT(VIRTIO_ID_NET))
-+			print_features(vdpa, features, true, VIRTIO_ID_NET);
-+		else
-+			print_features(vdpa, features, true, 0);
-+	}
-+
- 	pr_out_handle_end(vdpa);
- }
- 
--- 
-2.35.1
-
diff --git a/SOURCES/0018-vdpa-Update-man-page-with-added-support-to-configure.patch b/SOURCES/0018-vdpa-Update-man-page-with-added-support-to-configure.patch
deleted file mode 100644
index b9a225a..0000000
--- a/SOURCES/0018-vdpa-Update-man-page-with-added-support-to-configure.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 132573d6641577577e6abc2c6808936239ba253e Mon Sep 17 00:00:00 2001
-Message-Id: <132573d6641577577e6abc2c6808936239ba253e.1647984433.git.aclaudi@redhat.com>
-In-Reply-To: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-References: <cef782ca658d695c5ca2d174ba1f89cba6bd84e5.1647984433.git.aclaudi@redhat.com>
-From: Andrea Claudi <aclaudi@redhat.com>
-Date: Mon, 21 Mar 2022 16:35:16 +0100
-Subject: [PATCH] vdpa: Update man page with added support to configure max vq
- pair
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2059427
-Upstream Status: iproute2-next.git commit 8130653d
-
-commit 8130653dabe6726b46b7b19c31d85e33a67175e3
-Author: Eli Cohen <elic@nvidia.com>
-Date:   Tue Mar 15 15:13:58 2022 +0200
-
-    vdpa: Update man page with added support to configure max vq pair
-
-    Update man page to include information how to configure the max
-    virtqueue pairs for a vdpa device when creating one.
-
-    Signed-off-by: Eli Cohen <elic@nvidia.com>
-    Signed-off-by: David Ahern <dsahern@kernel.org>
----
- man/man8/vdpa-dev.8 | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/man/man8/vdpa-dev.8 b/man/man8/vdpa-dev.8
-index aa21ae3a..432867c6 100644
---- a/man/man8/vdpa-dev.8
-+++ b/man/man8/vdpa-dev.8
-@@ -33,6 +33,7 @@ vdpa-dev \- vdpa device configuration
- .I MGMTDEV
- .RI "[ mac " MACADDR " ]"
- .RI "[ mtu " MTU " ]"
-+.RI "[ max_vqp " MAX_VQ_PAIRS " ]"
- 
- .ti -8
- .B vdpa dev del
-@@ -119,6 +120,11 @@ vdpa dev add name foo mgmtdev vdpa_sim_net mac 00:11:22:33:44:55 mtu 9000
- Add the vdpa device named foo on the management device vdpa_sim_net with mac address of 00:11:22:33:44:55 and mtu of 9000 bytes.
- .RE
- .PP
-+vdpa dev add name foo mgmtdev auxiliary/mlx5_core.sf.1 mac 00:11:22:33:44:55 max_vqp 8
-+.RS 4
-+Add the vdpa device named foo on the management device auxiliary/mlx5_core.sf.1 with mac address of 00:11:22:33:44:55 and max 8 virtqueue pairs
-+.RE
-+.PP
- vdpa dev del foo
- .RS 4
- Delete the vdpa device named foo which was previously created.
--- 
-2.35.1
-
diff --git a/SPECS/iproute.spec b/SPECS/iproute.spec
index be6bce4..1d53687 100644
--- a/SPECS/iproute.spec
+++ b/SPECS/iproute.spec
@@ -1,31 +1,13 @@
 Summary:            Advanced IP routing and network device configuration tools
 Name:               iproute
-Version:            5.15.0
-Release:            2.2%{?dist}%{?buildid}
+Version:            5.18.0
+Release:            1%{?dist}%{?buildid}
 %if 0%{?rhel}
 Group:              Applications/System
 %endif
 URL:                https://kernel.org/pub/linux/utils/net/%{name}2/
 Source0:            https://kernel.org/pub/linux/utils/net/%{name}2/%{name}2-%{version}.tar.xz
 Source1:            rt_dsfield.deprecated
-Patch0:             0001-configure-fix-parsing-issue-on-include_dir-option.patch
-Patch1:             0002-configure-fix-parsing-issue-on-libbpf_dir-option.patch
-Patch2:             0003-configure-fix-parsing-issue-with-more-than-one-value.patch
-Patch3:             0004-configure-simplify-options-parsing.patch
-Patch4:             0005-configure-support-param-value-style.patch
-Patch5:             0006-configure-add-the-prefix-option.patch
-Patch6:             0007-configure-add-the-libdir-option.patch
-Patch7:             0008-Update-kernel-headers-and-import-virtio_net.patch
-Patch8:             0009-vdpa-align-uapi-headers.patch
-Patch9:             0010-uapi-update-vdpa.h.patch
-Patch10:            0011-vdpa-Enable-user-to-query-vdpa-device-config-layout.patch
-Patch11:            0012-vdpa-Enable-user-to-set-mac-address-of-vdpa-device.patch
-Patch12:            0013-vdpa-Enable-user-to-set-mtu-of-the-vdpa-device.patch
-Patch13:            0014-vdpa-Remove-unsupported-command-line-option.patch
-Patch14:            0015-vdpa-Allow-for-printing-negotiated-features-of-a-dev.patch
-Patch15:            0016-vdpa-Support-for-configuring-max-VQ-pairs-for-a-devi.patch
-Patch16:            0017-vdpa-Support-reading-device-features.patch
-Patch17:            0018-vdpa-Update-man-page-with-added-support-to-configure.patch
 
 License:            GPLv2+ and Public Domain
 BuildRequires:      bison
@@ -131,6 +113,7 @@ cat %{SOURCE1} >>%{buildroot}%{_sysconfdir}/iproute2/rt_dsfield
 %attr(644,root,root) %config(noreplace) %{_sysconfdir}/iproute2/*
 %{_sbindir}/*
 %exclude %{_sbindir}/tc
+%exclude %{_sbindir}/routel
 %{_datadir}/bash-completion/completions/devlink
 
 %files tc
@@ -157,21 +140,8 @@ cat %{SOURCE1} >>%{buildroot}%{_sysconfdir}/iproute2/rt_dsfield
 %{_includedir}/iproute2/bpf_elf.h
 
 %changelog
-* Tue Mar 22 2022 Andrea Claudi <aclaudi@redhat.com> - 5.15.0-2.2.el9
-- Fix changelog
-
-* Tue Mar 22 2022 Andrea Claudi <aclaudi@redhat.com> - 5.15.0-2.1.el9
-- vdpa: Update man page with added support to configure max vq pair (Andrea Claudi) [2059427]
-- vdpa: Support reading device features (Andrea Claudi) [2059427]
-- vdpa: Support for configuring max VQ pairs for a device (Andrea Claudi) [2059427]
-- vdpa: Allow for printing negotiated features of a device (Andrea Claudi) [2059427]
-- vdpa: Remove unsupported command line option (Andrea Claudi) [2059427]
-- vdpa: Enable user to set mtu of the vdpa device (Andrea Claudi) [2059427]
-- vdpa: Enable user to set mac address of vdpa device (Andrea Claudi) [2059427]
-- vdpa: Enable user to query vdpa device config layout (Andrea Claudi) [2059427]
-- uapi: update vdpa.h (Andrea Claudi) [2059427]
-- vdpa: align uapi headers (Andrea Claudi) [2059427]
-- Update kernel headers and import virtio_net (Andrea Claudi) [2059427]
+* Wed Jun 15 2022 Andrea Claudi <aclaudi@redhat.com> - 5.18.0-1.el9
+- New version 5.18.0 [2074608]
 
 * Thu Nov 25 2021 Andrea Claudi <aclaudi@redhat.com> - 5.15.0-2.el9
 - Fix gating.yaml [2009355]