Compare commits
	
		
			No commits in common. "c8" and "a9-beta" have entirely different histories.
		
	
	
		
	
		
| @ -1,2 +0,0 @@ | ||||
| 061198752d3d8b64d33113b7c8c1e272c973403d SOURCES/dpdk-23.11.tar.xz | ||||
| 3cc45b133677fbff08e89e65a2120be52ebb27a5 SOURCES/pyelftools-0.27.tar.gz | ||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +0,0 @@ | ||||
| SOURCES/dpdk-23.11.tar.xz | ||||
| SOURCES/pyelftools-0.27.tar.gz | ||||
| @ -0,0 +1,135 @@ | ||||
| From 3812e23f6b19d7e1e850094d1a5a04b7403d194f Mon Sep 17 00:00:00 2001 | ||||
| From: David Marchand <david.marchand@redhat.com> | ||||
| Date: Tue, 13 Dec 2022 10:18:37 +0100 | ||||
| Subject: [PATCH] net/i40e: revert link status check on device start | ||||
| 
 | ||||
| [ upstream commit a8ca8edf8c076c765c6d142ab4664a1f61414233 ] | ||||
| 
 | ||||
| The mentioned changes broke existing applications when the link status | ||||
| of i40e ports is down at the time the port is started. | ||||
| Revert those changes, the original issue will need a different fix. | ||||
| 
 | ||||
| Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level") | ||||
| Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level") | ||||
| Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722") | ||||
| 
 | ||||
| Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2173794 | ||||
| Signed-off-by: David Marchand <david.marchand@redhat.com> | ||||
| Acked-by: Simei Su <simei.su@intel.com> | ||||
| ---
 | ||||
|  drivers/net/i40e/i40e_ethdev.c | 50 +++++----------------------------- | ||||
|  1 file changed, 7 insertions(+), 43 deletions(-) | ||||
| 
 | ||||
| diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
 | ||||
| index 7726a89d99..a982e42264 100644
 | ||||
| --- a/drivers/net/i40e/i40e_ethdev.c
 | ||||
| +++ b/drivers/net/i40e/i40e_ethdev.c
 | ||||
| @@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev,
 | ||||
|  				      struct rte_ether_addr *mac_addr); | ||||
|   | ||||
|  static int i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); | ||||
| -static void i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size);
 | ||||
|   | ||||
|  static int i40e_ethertype_filter_convert( | ||||
|  	const struct rte_eth_ethertype_filter *input, | ||||
| @@ -1711,6 +1710,11 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
 | ||||
|  	 */ | ||||
|  	i40e_add_tx_flow_control_drop_filter(pf); | ||||
|   | ||||
| +	/* Set the max frame size to 0x2600 by default,
 | ||||
| +	 * in case other drivers changed the default value.
 | ||||
| +	 */
 | ||||
| +	i40e_aq_set_mac_config(hw, I40E_FRAME_SIZE_MAX, TRUE, false, 0, NULL);
 | ||||
| +
 | ||||
|  	/* initialize RSS rule list */ | ||||
|  	TAILQ_INIT(&pf->rss_config_list); | ||||
|   | ||||
| @@ -2328,7 +2332,6 @@ i40e_dev_start(struct rte_eth_dev *dev)
 | ||||
|  	uint32_t intr_vector = 0; | ||||
|  	struct i40e_vsi *vsi; | ||||
|  	uint16_t nb_rxq, nb_txq; | ||||
| -	uint16_t max_frame_size;
 | ||||
|   | ||||
|  	hw->adapter_stopped = 0; | ||||
|   | ||||
| @@ -2467,9 +2470,6 @@ i40e_dev_start(struct rte_eth_dev *dev)
 | ||||
|  			    "please call hierarchy_commit() " | ||||
|  			    "before starting the port"); | ||||
|   | ||||
| -	max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD;
 | ||||
| -	i40e_set_mac_max_frame(dev, max_frame_size);
 | ||||
| -
 | ||||
|  	return I40E_SUCCESS; | ||||
|   | ||||
|  tx_err: | ||||
| @@ -2809,9 +2809,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
 | ||||
|  	return i40e_phy_conf_link(hw, abilities, speed, false); | ||||
|  } | ||||
|   | ||||
| -#define CHECK_INTERVAL             100  /* 100ms */
 | ||||
| -#define MAX_REPEAT_TIME            10  /* 1s (10 * 100ms) in total */
 | ||||
| -
 | ||||
|  static __rte_always_inline void | ||||
|  update_link_reg(struct i40e_hw *hw, struct rte_eth_link *link) | ||||
|  { | ||||
| @@ -2878,6 +2875,8 @@ static __rte_always_inline void
 | ||||
|  update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link, | ||||
|  	bool enable_lse, int wait_to_complete) | ||||
|  { | ||||
| +#define CHECK_INTERVAL             100  /* 100ms */
 | ||||
| +#define MAX_REPEAT_TIME            10  /* 1s (10 * 100ms) in total */
 | ||||
|  	uint32_t rep_cnt = MAX_REPEAT_TIME; | ||||
|  	struct i40e_link_status link_status; | ||||
|  	int status; | ||||
| @@ -6738,7 +6737,6 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev)
 | ||||
|  			if (!ret) | ||||
|  				rte_eth_dev_callback_process(dev, | ||||
|  					RTE_ETH_EVENT_INTR_LSC, NULL); | ||||
| -
 | ||||
|  			break; | ||||
|  		default: | ||||
|  			PMD_DRV_LOG(DEBUG, "Request %u is not supported yet", | ||||
| @@ -12123,40 +12121,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf)
 | ||||
|  	return ret; | ||||
|  } | ||||
|   | ||||
| -static void
 | ||||
| -i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size)
 | ||||
| -{
 | ||||
| -	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 | ||||
| -	uint32_t rep_cnt = MAX_REPEAT_TIME;
 | ||||
| -	struct rte_eth_link link;
 | ||||
| -	enum i40e_status_code status;
 | ||||
| -	bool can_be_set = true;
 | ||||
| -
 | ||||
| -	/*
 | ||||
| -	 * I40E_MEDIA_TYPE_BASET link up can be ignored
 | ||||
| -	 * I40E_MEDIA_TYPE_BASET link down that hw->phy.media_type
 | ||||
| -	 * is I40E_MEDIA_TYPE_UNKNOWN
 | ||||
| -	 */
 | ||||
| -	if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET &&
 | ||||
| -	    hw->phy.media_type != I40E_MEDIA_TYPE_UNKNOWN) {
 | ||||
| -		do {
 | ||||
| -			update_link_reg(hw, &link);
 | ||||
| -			if (link.link_status)
 | ||||
| -				break;
 | ||||
| -			rte_delay_ms(CHECK_INTERVAL);
 | ||||
| -		} while (--rep_cnt);
 | ||||
| -		can_be_set = !!link.link_status;
 | ||||
| -	}
 | ||||
| -
 | ||||
| -	if (can_be_set) {
 | ||||
| -		status = i40e_aq_set_mac_config(hw, size, TRUE, 0, false, NULL);
 | ||||
| -		if (status != I40E_SUCCESS)
 | ||||
| -			PMD_DRV_LOG(ERR, "Failed to set max frame size at port level");
 | ||||
| -	} else {
 | ||||
| -		PMD_DRV_LOG(ERR, "Set max frame size at port level not applicable on link down");
 | ||||
| -	}
 | ||||
| -}
 | ||||
| -
 | ||||
|  RTE_LOG_REGISTER_SUFFIX(i40e_logtype_init, init, NOTICE); | ||||
|  RTE_LOG_REGISTER_SUFFIX(i40e_logtype_driver, driver, NOTICE); | ||||
|  #ifdef RTE_ETHDEV_DEBUG_RX | ||||
| -- 
 | ||||
| 2.39.2 | ||||
| 
 | ||||
| @ -1,37 +0,0 @@ | ||||
| From 606fd08b1bfce6d81c9532a9ecbbbe88aa266793 Mon Sep 17 00:00:00 2001 | ||||
| From: Olivier Matz <olivier.matz@6wind.com> | ||||
| Date: Thu, 28 Nov 2024 12:09:56 +0100 | ||||
| Subject: [PATCH] net/virtio: fix Rx checksum calculation | ||||
| 
 | ||||
| If hdr->csum_start is larger than packet length, the len argument passed | ||||
| to rte_raw_cksum_mbuf() overflows and causes a segmentation fault. | ||||
| 
 | ||||
| Ignore checksum computation in this case. | ||||
| 
 | ||||
| CVE-2024-11614 | ||||
| 
 | ||||
| Fixes: ca7036b4af3a ("vhost: fix offload flags in Rx path") | ||||
| Signed-off-by: Maxime Gouin <maxime.gouin@6wind.com> | ||||
| Signed-off-by: Olivier Matz <olivier.matz@6wind.com> | ||||
| Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> | ||||
| ---
 | ||||
|  lib/vhost/virtio_net.c | 3 +++ | ||||
|  1 file changed, 3 insertions(+) | ||||
| 
 | ||||
| diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
 | ||||
| index 6d53ff932d..e42aabf126 100644
 | ||||
| --- a/lib/vhost/virtio_net.c
 | ||||
| +++ b/lib/vhost/virtio_net.c
 | ||||
| @@ -2831,6 +2831,9 @@ vhost_dequeue_offload(struct virtio_net *dev, struct virtio_net_hdr *hdr,
 | ||||
|  			 */ | ||||
|  			uint16_t csum = 0, off; | ||||
|   | ||||
| +			if (hdr->csum_start >= rte_pktmbuf_pkt_len(m))
 | ||||
| +				return;
 | ||||
| +
 | ||||
|  			if (rte_raw_cksum_mbuf(m, hdr->csum_start, | ||||
|  					rte_pktmbuf_pkt_len(m) - hdr->csum_start, &csum) < 0) | ||||
|  				return; | ||||
| -- 
 | ||||
| 2.47.0 | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								SOURCES/dpdk-22.11.tar.xz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SOURCES/dpdk-22.11.tar.xz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								SOURCES/pyelftools-0.27.tar.gz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SOURCES/pyelftools-0.27.tar.gz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										118
									
								
								SPECS/dpdk.spec
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								SPECS/dpdk.spec
									
									
									
									
									
								
							| @ -8,8 +8,8 @@ | ||||
| #% define date 20191128 | ||||
| #% define shortcommit0 %(c=%{commit0}; echo ${c:0:7}) | ||||
| 
 | ||||
| %define ver 23.11 | ||||
| %define rel 2 | ||||
| %define ver 22.11 | ||||
| %define rel 4 | ||||
| 
 | ||||
| %define srcname dpdk%(awk -F. '{ if (NF > 2) print "-stable" }' <<<%{version}) | ||||
| 
 | ||||
| @ -23,16 +23,17 @@ Epoch: 2 | ||||
| %endif | ||||
| URL: http://dpdk.org | ||||
| %if 0%{?commit0:1} | ||||
| Source: https://dpdk.org/browse/dpdk/snapshot/dpdk-%{commit0}.tar.xz | ||||
| Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{commit0}.tar.xz | ||||
| %else | ||||
| Source: https://fast.dpdk.org/rel/dpdk-%{ver}.tar.xz | ||||
| Source: http://fast.dpdk.org/rel/dpdk-%{ver}.tar.xz | ||||
| %endif | ||||
| 
 | ||||
| # Only needed for creating snapshot tarballs, not used in build itself | ||||
| Source100: dpdk-snapshot.sh | ||||
| 
 | ||||
| # CVE-2024-11614 | ||||
| Patch1: 0001-net-virtio-fix-Rx-checksum-calculation.patch | ||||
| # Patches were taken from: | ||||
| # https://gitlab.com/redhat/centos-stream/rpms/dpdk/-/commit/54f868467a9f7c98a6101ce2b796b0ba7710648c | ||||
| Patch1: 0001-net-i40e-revert-link-status-check-on-device-start.patch | ||||
| 
 | ||||
| Summary: Set of libraries and drivers for fast packet processing | ||||
| 
 | ||||
| @ -154,11 +155,11 @@ ENABLED_DRIVERS+=( | ||||
|     bus/vmbus | ||||
|     common/iavf | ||||
|     common/mlx5 | ||||
|     common/nfp | ||||
|     net/bnxt | ||||
|     net/enic | ||||
|     net/iavf | ||||
|     net/ice | ||||
|     net/mlx4 | ||||
|     net/mlx5 | ||||
|     net/netvsc | ||||
|     net/nfp | ||||
| @ -178,40 +179,48 @@ for driver in "${ENABLED_DRIVERS[@]}"; do | ||||
|     enable_drivers="${enable_drivers:+$enable_drivers,}"$driver | ||||
| done | ||||
| 
 | ||||
| # As of 22.11, following libraries can be disabled: | ||||
| # optional_libs = [ | ||||
| #         'bitratestats', | ||||
| #         'cfgfile', | ||||
| #         'flow_classify', | ||||
| #         'gpudev', | ||||
| #         'gro', | ||||
| #         'gso', | ||||
| #         'kni', | ||||
| #         'jobstats', | ||||
| #         'latencystats', | ||||
| #         'metrics', | ||||
| #         'node', | ||||
| #         'pdump', | ||||
| #         'pipeline', | ||||
| #         'port', | ||||
| #         'power', | ||||
| #         'table', | ||||
| #         'vhost', | ||||
| # ] | ||||
| # If doing any updates, this must be aligned with: | ||||
| # https://access.redhat.com/articles/3538141 | ||||
| ENABLED_LIBS=( | ||||
|     bbdev | ||||
|     bitratestats | ||||
|     bpf | ||||
|     cmdline | ||||
|     cryptodev | ||||
|     dmadev | ||||
|     gro | ||||
|     gso | ||||
|     hash | ||||
|     ip_frag | ||||
|     latencystats | ||||
|     member | ||||
|     meter | ||||
|     metrics | ||||
|     pcapng | ||||
|     pdump | ||||
|     security | ||||
|     stack | ||||
|     vhost | ||||
| DISABLED_LIBS=( | ||||
|     cfgfile | ||||
|     flow_classify | ||||
|     gpudev | ||||
|     kni | ||||
|     jobstats | ||||
|     node | ||||
|     pipeline | ||||
|     port | ||||
|     power | ||||
|     table | ||||
| ) | ||||
| 
 | ||||
| for lib in "${ENABLED_LIBS[@]}"; do | ||||
|     enable_libs="${enable_libs:+$enable_libs,}"$lib | ||||
| for lib in "${DISABLED_LIBS[@]}"; do | ||||
|     disable_libs="${disable_libs:+$disable_libs,}"$lib | ||||
| done | ||||
| 
 | ||||
| ln -s /usr/bin/true mandb | ||||
| export PATH=$(pwd):$PATH | ||||
| %meson --includedir=include/dpdk \ | ||||
|        --default-library=shared \ | ||||
|        -Ddeveloper_mode=disabled \ | ||||
|        -Denable_libs="$enable_libs" \ | ||||
|        -Ddisable_libs="$disable_libs" \ | ||||
|        -Ddrivers_install_subdir=dpdk-pmds \ | ||||
|        -Denable_apps="$enable_apps" \ | ||||
|        -Denable_docs=true \ | ||||
| @ -228,10 +237,10 @@ for driver in "${ENABLED_DRIVERS[@]}"; do | ||||
| 	echo "!!! Could not find $driver in rte_build_config.h, please check dependencies. !!!" | ||||
| 	false | ||||
| done | ||||
| for lib in "${ENABLED_LIBS[@]}"; do | ||||
| for lib in "${DISABLED_LIBS[@]}"; do | ||||
| 	config_token="RTE_LIB_$(echo "$lib" | tr [a-z/] [A-Z_])" | ||||
| 	! grep -Fqw "$config_token" */rte_build_config.h || continue | ||||
| 	echo "!!! Could not find $lib in rte_build_config.h, please check dependencies. !!!" | ||||
| 	grep -Fqw "$config_token" */rte_build_config.h || continue | ||||
| 	echo "!!! Found $lib in rte_build_config.h. !!!" | ||||
| 	false | ||||
| done | ||||
| %meson_build | ||||
| @ -241,10 +250,9 @@ done | ||||
| 
 | ||||
| rm -f %{buildroot}%{_libdir}/*.a | ||||
| # Taken from debian/rules | ||||
| rm -f %{buildroot}%{docdir}/html/.buildinfo | ||||
| rm -f %{buildroot}%{docdir}/html/objects.inv | ||||
| rm -rf %{buildroot}%{docdir}/html/.doctrees | ||||
| find %{buildroot}%{_datadir}/man/ -type f -a ! -iname "*rte_*" -exec rm {} \; | ||||
| rm -f %{docdir}/html/.buildinfo | ||||
| rm -f %{docdir}/html/objects.inv | ||||
| rm -rf %{docdir}/html/.doctrees | ||||
| 
 | ||||
| %files | ||||
| # BSD | ||||
| @ -275,7 +283,6 @@ find %{buildroot}%{_datadir}/man/ -type f -a ! -iname "*rte_*" -exec rm {} \; | ||||
| %{pmddir}/*.so | ||||
| %{_libdir}/pkgconfig/libdpdk.pc | ||||
| %{_libdir}/pkgconfig/libdpdk-libs.pc | ||||
| %{_datadir}/man | ||||
| %if %{with examples} | ||||
| %files examples | ||||
| %{_bindir}/dpdk-* | ||||
| @ -288,20 +295,31 @@ find %{buildroot}%{_datadir}/man/ -type f -a ! -iname "*rte_*" -exec rm {} \; | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Dec 17 2024 Kevin Traynor <ktraynor@redhat.com> - 23.11-2 | ||||
| - Backport fixes for CVE-2024-11614 (RHEL-68600) | ||||
| * Wed Oct 04 2023 Eduard Abdullin <eabdullin@almalinux.org> - 22.11-4 | ||||
| - Fix MTU regression for net/i40e | ||||
| 
 | ||||
| * Fri Dec 15 2023 David Marchand <david.marchand@redhat.com> - 23.11-1 | ||||
| - Rebase to 23.11 (RHEL-19584) | ||||
| * Thu Mar 23 2023 Timothy Redaelli <tredaelli@redhat.com> - 22.11-3 | ||||
| - Add support to load compressed firmware (#2179024) | ||||
| 
 | ||||
| * Fri Dec 23 2022 Timothy Redaelli <tredaelli@redhat.com> - 21.11-3 | ||||
| - Version bump just to be sure it's updated from dpdk-21.11-2.el8_7 | ||||
| * Fri Mar 03 2023 Maxime Coquelin <maxime.coquelin@redhat.com> - 22.11-2 | ||||
| - Add ACC100/ACC200 and related test-bbdev application (#2106526, #2138398) | ||||
| 
 | ||||
| * Wed Oct 26 2022 Timothy Redaelli <tredaelli@redhat.com> - 21.11-2 | ||||
| - Backport fixes for CVE-2022-2132 (#2107171) | ||||
| * Mon Jan 23 2023 Timothy Redaelli <tredaelli@redhat.com> - 22.11-1 | ||||
| - Rebase to 22.11 (#2129066) | ||||
| 
 | ||||
| * Mon Sep 12 2022 Timothy Redaelli <tredaelli@redhat.com> - 21.11.2-1 | ||||
| - Rebase to 21.11.2 (#2126159) | ||||
| - Includes fixes for CVE-2022-2132 (#2107173) and CVE-2022-28199 (#2123616) | ||||
| 
 | ||||
| * Wed Jul 13 2022 Timothy Redaelli <tredaelli@redhat.com> - 21.11.1-1 | ||||
| - Rebase to 21.11.1 (#2106856) | ||||
| - Includes fix for CVE-2021-3839 (#2026642) | ||||
| 
 | ||||
| * Tue Nov 23 2021 David Marchand <david.marchand@redhat.com> - 21.11-1 | ||||
| - Rebase to 21.11 (#2029497) | ||||
| - Rebase to 21.11 (#2030616) | ||||
| 
 | ||||
| * Fri Nov 19 2021 Timothy Redaelli <tredaelli@redhat.com> - 20.11.1-1 | ||||
| - Rebase to 20.11.1 (#2024994) | ||||
| 
 | ||||
| * Tue Feb 16 2021 Timothy Redaelli <tredaelli@redhat.com> - 20.11-3 | ||||
| - Fix gating since on DPDK 20.11 testpmd is called dpdk-testpmd | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user