From: Shani Peretz <shperetz@nvidia.com>
To: Dariusz Sosnowski <dsosnowski@nvidia.com>
Cc: Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
dpdk stable <stable@dpdk.org>
Subject: patch 'net/mlx5: fix min and max MTU reporting' has been queued to stable release 23.11.6
Date: Sun, 21 Dec 2025 16:56:09 +0200 [thread overview]
Message-ID: <20251221145746.763179-21-shperetz@nvidia.com> (raw)
In-Reply-To: <20251221145746.763179-1-shperetz@nvidia.com>
Hi,
FYI, your patch has been queued to stable release 23.11.6
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/26/25. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/shanipr/dpdk-stable
This queued commit can be viewed at:
https://github.com/shanipr/dpdk-stable/commit/9400a790b28c55b6ed0d94a8e666bce1fd5cd985
Thanks.
Shani
---
From 9400a790b28c55b6ed0d94a8e666bce1fd5cd985 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Tue, 4 Nov 2025 18:27:15 +0100
Subject: [PATCH] net/mlx5: fix min and max MTU reporting
[ upstream commit 44d657109216a32e8718446f20f91272e10575dd ]
mlx5 PMD used hardcoded and incorrect values when reporting
maximum MTU and maximum Rx packet length through rte_eth_dev_info_get().
This patch adds support for querying OS for minimum and maximum
allowed MTU values. Maximum Rx packet length is then calculated
based on these values.
On Linux, these values are queried through netlink,
using IFLA_MIN_MTU and IFLA_MAX_MTU attributes added in Linux 4.18.
Windows API unfortunately does not expose minimum and maximum
allowed MTU values. In this case, fallback hardcoded values
(working on currently supported HW) will be used.
Bugzilla ID: 1719
Fixes: e60fbd5b24fc ("mlx5: add device configure/start/stop")
Cc: stable@dpdk.org
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
drivers/common/mlx5/linux/mlx5_nl.c | 108 ++++++++++++++++++++++
drivers/common/mlx5/linux/mlx5_nl.h | 3 +
drivers/common/mlx5/version.map | 1 +
drivers/net/mlx5/linux/mlx5_ethdev_os.c | 30 ++++++
drivers/net/mlx5/linux/mlx5_os.c | 2 +
drivers/net/mlx5/mlx5.h | 13 +++
drivers/net/mlx5/mlx5_ethdev.c | 42 ++++++++-
drivers/net/mlx5/windows/mlx5_ethdev_os.c | 28 ++++++
drivers/net/mlx5/windows/mlx5_os.c | 2 +
9 files changed, 228 insertions(+), 1 deletion(-)
diff --git a/drivers/common/mlx5/linux/mlx5_nl.c b/drivers/common/mlx5/linux/mlx5_nl.c
index 28a1f56dba..15304bbfca 100644
--- a/drivers/common/mlx5/linux/mlx5_nl.c
+++ b/drivers/common/mlx5/linux/mlx5_nl.c
@@ -2032,3 +2032,111 @@ mlx5_nl_devlink_esw_multiport_get(int nlsk_fd, int family_id, const char *pci_ad
*enable ? "en" : "dis", pci_addr);
return ret;
}
+
+struct mlx5_mtu {
+ uint32_t min_mtu;
+ bool min_mtu_set;
+ uint32_t max_mtu;
+ bool max_mtu_set;
+};
+
+static int
+mlx5_nl_get_mtu_bounds_cb(struct nlmsghdr *nh, void *arg)
+{
+ size_t off = NLMSG_LENGTH(sizeof(struct ifinfomsg));
+ struct mlx5_mtu *out = arg;
+
+ while (off < nh->nlmsg_len) {
+ struct rtattr *ra = RTE_PTR_ADD(nh, off);
+ uint32_t *payload;
+
+ switch (ra->rta_type) {
+ case IFLA_MIN_MTU:
+ payload = RTA_DATA(ra);
+ out->min_mtu = *payload;
+ out->min_mtu_set = true;
+ break;
+ case IFLA_MAX_MTU:
+ payload = RTA_DATA(ra);
+ out->max_mtu = *payload;
+ out->max_mtu_set = true;
+ break;
+ default:
+ /* Nothing to do for other attributes. */
+ break;
+ }
+ off += RTA_ALIGN(ra->rta_len);
+ }
+
+ return 0;
+}
+
+/**
+ * Query minimum and maximum allowed MTU values for given Linux network interface.
+ *
+ * This function queries the following interface attributes exposed in netlink since Linux 4.18:
+ *
+ * - IFLA_MIN_MTU - minimum allowed MTU
+ * - IFLA_MAX_MTU - maximum allowed MTU
+ *
+ * @param[in] nl
+ * Netlink socket of the ROUTE kind (NETLINK_ROUTE).
+ * @param[in] ifindex
+ * Linux network device index.
+ * @param[out] min_mtu
+ * Pointer to minimum allowed MTU. Populated only if both minimum and maximum MTU was queried.
+ * @param[out] max_mtu
+ * Pointer to maximum allowed MTU. Populated only if both minimum and maximum MTU was queried.
+ *
+ * @return
+ * 0 on success, negative on error and rte_errno is set.
+ *
+ * Known errors:
+ *
+ * - (-EINVAL) - either @p min_mtu or @p max_mtu is NULL.
+ * - (-ENOENT) - either minimum or maximum allowed MTU was not found in interface attributes.
+ */
+int
+mlx5_nl_get_mtu_bounds(int nl, unsigned int ifindex, uint16_t *min_mtu, uint16_t *max_mtu)
+{
+ struct mlx5_mtu out = { 0 };
+ struct {
+ struct nlmsghdr nh;
+ struct ifinfomsg info;
+ } req = {
+ .nh = {
+ .nlmsg_len = NLMSG_LENGTH(sizeof(req.info)),
+ .nlmsg_type = RTM_GETLINK,
+ .nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK,
+ },
+ .info = {
+ .ifi_family = AF_UNSPEC,
+ .ifi_index = ifindex,
+ },
+ };
+ uint32_t sn = MLX5_NL_SN_GENERATE;
+ int ret;
+
+ if (min_mtu == NULL || max_mtu == NULL) {
+ rte_errno = EINVAL;
+ return -rte_errno;
+ }
+
+ ret = mlx5_nl_send(nl, &req.nh, sn);
+ if (ret < 0)
+ return ret;
+
+ ret = mlx5_nl_recv(nl, sn, mlx5_nl_get_mtu_bounds_cb, &out);
+ if (ret < 0)
+ return ret;
+
+ if (!out.min_mtu_set || !out.max_mtu_set) {
+ rte_errno = ENOENT;
+ return -rte_errno;
+ }
+
+ *min_mtu = out.min_mtu;
+ *max_mtu = out.max_mtu;
+
+ return ret;
+}
diff --git a/drivers/common/mlx5/linux/mlx5_nl.h b/drivers/common/mlx5/linux/mlx5_nl.h
index 580de3b769..34306258ec 100644
--- a/drivers/common/mlx5/linux/mlx5_nl.h
+++ b/drivers/common/mlx5/linux/mlx5_nl.h
@@ -87,4 +87,7 @@ __rte_internal
int mlx5_nl_devlink_esw_multiport_get(int nlsk_fd, int family_id,
const char *pci_addr, int *enable);
+__rte_internal
+int mlx5_nl_get_mtu_bounds(int nl, unsigned int ifindex, uint16_t *min_mtu, uint16_t *max_mtu);
+
#endif /* RTE_PMD_MLX5_NL_H_ */
diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map
index 074eed46fd..e43164235e 100644
--- a/drivers/common/mlx5/version.map
+++ b/drivers/common/mlx5/version.map
@@ -142,6 +142,7 @@ INTERNAL {
mlx5_nl_vf_mac_addr_modify; # WINDOWS_NO_EXPORT
mlx5_nl_vlan_vmwa_create; # WINDOWS_NO_EXPORT
mlx5_nl_vlan_vmwa_delete; # WINDOWS_NO_EXPORT
+ mlx5_nl_get_mtu_bounds; # WINDOWS_NO_EXPORT
mlx5_os_umem_dereg;
mlx5_os_umem_reg;
diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
index 1d999ef66b..4d126751a2 100644
--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
@@ -242,6 +242,36 @@ mlx5_ifreq(const struct rte_eth_dev *dev, int req, struct ifreq *ifr)
return mlx5_ifreq_by_ifname(ifname, req, ifr);
}
+/**
+ * Get device minimum and maximum allowed MTU values.
+ *
+ * @param dev
+ * Pointer to Ethernet device.
+ * @param[out] min_mtu
+ * Minimum MTU value output buffer.
+ * @param[out] max_mtu
+ * Maximum MTU value output buffer.
+ *
+ * @return
+ * 0 on success, a negative errno value otherwise and rte_errno is set.
+ */
+int
+mlx5_os_get_mtu_bounds(struct rte_eth_dev *dev, uint16_t *min_mtu, uint16_t *max_mtu)
+{
+ struct mlx5_priv *priv = dev->data->dev_private;
+ int nl_route;
+ int ret;
+
+ nl_route = mlx5_nl_init(NETLINK_ROUTE, 0);
+ if (nl_route < 0)
+ return nl_route;
+
+ ret = mlx5_nl_get_mtu_bounds(nl_route, priv->if_index, min_mtu, max_mtu);
+
+ close(nl_route);
+ return ret;
+}
+
/**
* Get device MTU.
*
diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index c6e5e7b425..d1ccec71e9 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1521,6 +1521,8 @@ err_secondary:
eth_dev->data->mac_addrs = priv->mac;
eth_dev->device = dpdk_dev;
eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+ /* Fetch minimum and maximum allowed MTU from the device. */
+ mlx5_get_mtu_bounds(eth_dev, &priv->min_mtu, &priv->max_mtu);
/* Configure the first MAC address by default. */
if (mlx5_get_mac(eth_dev, &mac.addr_bytes)) {
DRV_LOG(ERR,
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 75b822785b..1b784b109a 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -74,6 +74,15 @@
/* Maximal number of field/field parts to map into sample registers .*/
#define MLX5_FLEX_ITEM_MAPPING_NUM 32
+/* Number of bytes not included in MTU. */
+#define MLX5_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_VLAN_HLEN + RTE_ETHER_CRC_LEN)
+
+/* Minimum allowed MTU to be reported whenever PMD cannot query it from OS. */
+#define MLX5_ETH_MIN_MTU (RTE_ETHER_MIN_MTU)
+
+/* Maximum allowed MTU to be reported whenever PMD cannot query it from OS. */
+#define MLX5_ETH_MAX_MTU (9978)
+
enum mlx5_ipool_index {
#if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
MLX5_IPOOL_DECAP_ENCAP = 0, /* Pool for encap/decap resource. */
@@ -1840,6 +1849,8 @@ struct mlx5_priv {
unsigned int vlan_filter_n; /* Number of configured VLAN filters. */
/* Device properties. */
uint16_t mtu; /* Configured MTU. */
+ uint16_t min_mtu; /* Minimum MTU allowed on the NIC. */
+ uint16_t max_mtu; /* Maximum MTU allowed on the NIC. */
unsigned int isolated:1; /* Whether isolated mode is enabled. */
unsigned int representor:1; /* Device is a port representor. */
unsigned int master:1; /* Device is a E-Switch master. */
@@ -2133,6 +2144,7 @@ eth_rx_burst_t mlx5_select_rx_function(struct rte_eth_dev *dev);
struct mlx5_priv *mlx5_port_to_eswitch_info(uint16_t port, bool valid);
struct mlx5_priv *mlx5_dev_to_eswitch_info(struct rte_eth_dev *dev);
int mlx5_dev_configure_rss_reta(struct rte_eth_dev *dev);
+void mlx5_get_mtu_bounds(struct rte_eth_dev *dev, uint16_t *min_mtu, uint16_t *max_mtu);
/* mlx5_ethdev_os.c */
@@ -2171,6 +2183,7 @@ int mlx5_os_get_stats_n(struct rte_eth_dev *dev, bool bond_master,
uint16_t *n_stats, uint16_t *n_stats_sec);
void mlx5_os_stats_init(struct rte_eth_dev *dev);
int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev);
+int mlx5_os_get_mtu_bounds(struct rte_eth_dev *dev, uint16_t *min_mtu, uint16_t *max_mtu);
/* mlx5_mac.c */
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index dbfd46ce1c..39506680a2 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -352,9 +352,11 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
unsigned int max;
uint16_t max_wqe;
+ info->min_mtu = priv->min_mtu;
+ info->max_mtu = priv->max_mtu;
+ info->max_rx_pktlen = info->max_mtu + MLX5_ETH_OVERHEAD;
/* FIXME: we should ask the device for these values. */
info->min_rx_bufsize = 32;
- info->max_rx_pktlen = 65536;
info->max_lro_pkt_size = MLX5_MAX_LRO_SIZE;
/*
* Since we need one CQ per QP, the limit is the minimum number
@@ -836,3 +838,41 @@ mlx5_hairpin_cap_get(struct rte_eth_dev *dev, struct rte_eth_hairpin_cap *cap)
cap->tx_cap.rte_memory = hca_attr->hairpin_sq_wq_in_host_mem;
return 0;
}
+
+/**
+ * Query minimum and maximum allowed MTU value on the device.
+ *
+ * This functions will always return valid MTU bounds.
+ * In case platform-specific implementation fails or current platform does not support it,
+ * the fallback default values will be used.
+ *
+ * @param[in] dev
+ * Pointer to Ethernet device
+ * @param[out] min_mtu
+ * Minimum MTU value output buffer.
+ * @param[out] max_mtu
+ * Maximum MTU value output buffer.
+ */
+void
+mlx5_get_mtu_bounds(struct rte_eth_dev *dev, uint16_t *min_mtu, uint16_t *max_mtu)
+{
+ int ret;
+
+ MLX5_ASSERT(min_mtu != NULL);
+ MLX5_ASSERT(max_mtu != NULL);
+
+ ret = mlx5_os_get_mtu_bounds(dev, min_mtu, max_mtu);
+ if (ret < 0) {
+ if (ret != -ENOTSUP)
+ DRV_LOG(INFO, "port %u failed to query MTU bounds, using fallback values",
+ dev->data->port_id);
+ *min_mtu = MLX5_ETH_MIN_MTU;
+ *max_mtu = MLX5_ETH_MAX_MTU;
+
+ /* This function does not fail. Clear rte_errno. */
+ rte_errno = 0;
+ }
+
+ DRV_LOG(INFO, "port %u minimum MTU is %u", dev->data->port_id, *min_mtu);
+ DRV_LOG(INFO, "port %u maximum MTU is %u", dev->data->port_id, *max_mtu);
+}
diff --git a/drivers/net/mlx5/windows/mlx5_ethdev_os.c b/drivers/net/mlx5/windows/mlx5_ethdev_os.c
index 49f750be68..4f43b95a09 100644
--- a/drivers/net/mlx5/windows/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/windows/mlx5_ethdev_os.c
@@ -71,6 +71,34 @@ mlx5_get_ifname(const struct rte_eth_dev *dev, char (*ifname)[MLX5_NAMESIZE])
return 0;
}
+/**
+ * Get device minimum and maximum allowed MTU.
+ *
+ * Windows API does not expose minimum and maximum allowed MTU.
+ * In this case, this just returns (-ENOTSUP) to allow platform-independent code
+ * to fallback to default values.
+ *
+ * @param dev
+ * Pointer to Ethernet device.
+ * @param[out] min_mtu
+ * Minimum MTU value output buffer.
+ * @param[out] max_mtu
+ * Maximum MTU value output buffer.
+ *
+ * @return
+ * (-ENOTSUP) - not supported on Windows
+ */
+int
+mlx5_os_get_mtu_bounds(struct rte_eth_dev *dev, uint16_t *min_mtu, uint16_t *max_mtu)
+{
+ RTE_SET_USED(dev);
+ RTE_SET_USED(min_mtu);
+ RTE_SET_USED(max_mtu);
+
+ rte_errno = ENOTSUP;
+ return -rte_errno;
+}
+
/**
* Get device MTU.
*
diff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c
index a9614b125b..4cb9df1d5f 100644
--- a/drivers/net/mlx5/windows/mlx5_os.c
+++ b/drivers/net/mlx5/windows/mlx5_os.c
@@ -475,6 +475,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
eth_dev->data->mac_addrs = priv->mac;
eth_dev->device = dpdk_dev;
eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+ /* Fetch minimum and maximum allowed MTU from the device. */
+ mlx5_get_mtu_bounds(eth_dev, &priv->min_mtu, &priv->max_mtu);
/* Configure the first MAC address by default. */
if (mlx5_get_mac(eth_dev, &mac.addr_bytes)) {
DRV_LOG(ERR,
--
2.43.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-12-21 16:54:18.404105051 +0200
+++ 0021-net-mlx5-fix-min-and-max-MTU-reporting.patch 2025-12-21 16:54:16.776070000 +0200
@@ -1 +1 @@
-From 44d657109216a32e8718446f20f91272e10575dd Mon Sep 17 00:00:00 2001
+From 9400a790b28c55b6ed0d94a8e666bce1fd5cd985 Mon Sep 17 00:00:00 2001
@@ -3 +3 @@
-Date: Wed, 16 Jul 2025 12:25:45 +0200
+Date: Tue, 4 Nov 2025 18:27:15 +0100
@@ -5,0 +6,2 @@
+[ upstream commit 44d657109216a32e8718446f20f91272e10575dd ]
+
@@ -27 +29 @@
- drivers/common/mlx5/linux/mlx5_nl.c | 109 ++++++++++++++++++++++
+ drivers/common/mlx5/linux/mlx5_nl.c | 108 ++++++++++++++++++++++
@@ -28,0 +31 @@
+ drivers/common/mlx5/version.map | 1 +
@@ -35 +38 @@
- 8 files changed, 228 insertions(+), 1 deletion(-)
+ 9 files changed, 228 insertions(+), 1 deletion(-)
@@ -38 +41 @@
-index 86166e92d0..dd69e229e3 100644
+index 28a1f56dba..15304bbfca 100644
@@ -41,3 +44,3 @@
-@@ -2247,3 +2247,112 @@ mlx5_nl_rdma_monitor_cap_get(int nl, uint8_t *cap)
- }
- return 0;
+@@ -2032,3 +2032,111 @@ mlx5_nl_devlink_esw_multiport_get(int nlsk_fd, int family_id, const char *pci_ad
+ *enable ? "en" : "dis", pci_addr);
+ return ret;
@@ -109 +111,0 @@
-+RTE_EXPORT_INTERNAL_SYMBOL(mlx5_nl_get_mtu_bounds)
@@ -155 +157 @@
-index e32080fa63..26923a88fd 100644
+index 580de3b769..34306258ec 100644
@@ -158,3 +160,3 @@
-@@ -117,4 +117,7 @@ void mlx5_nl_rdma_monitor_info_get(struct nlmsghdr *hdr, struct mlx5_nl_port_inf
- __rte_internal
- int mlx5_nl_rdma_monitor_cap_get(int nl, uint8_t *cap);
+@@ -87,4 +87,7 @@ __rte_internal
+ int mlx5_nl_devlink_esw_multiport_get(int nlsk_fd, int family_id,
+ const char *pci_addr, int *enable);
@@ -165,0 +168,12 @@
+diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map
+index 074eed46fd..e43164235e 100644
+--- a/drivers/common/mlx5/version.map
++++ b/drivers/common/mlx5/version.map
+@@ -142,6 +142,7 @@ INTERNAL {
+ mlx5_nl_vf_mac_addr_modify; # WINDOWS_NO_EXPORT
+ mlx5_nl_vlan_vmwa_create; # WINDOWS_NO_EXPORT
+ mlx5_nl_vlan_vmwa_delete; # WINDOWS_NO_EXPORT
++ mlx5_nl_get_mtu_bounds; # WINDOWS_NO_EXPORT
+
+ mlx5_os_umem_dereg;
+ mlx5_os_umem_reg;
@@ -167 +181 @@
-index 9daeda5435..a371c2c747 100644
+index 1d999ef66b..4d126751a2 100644
@@ -170 +184 @@
-@@ -159,6 +159,36 @@ mlx5_ifreq(const struct rte_eth_dev *dev, int req, struct ifreq *ifr)
+@@ -242,6 +242,36 @@ mlx5_ifreq(const struct rte_eth_dev *dev, int req, struct ifreq *ifr)
@@ -208 +222 @@
-index 696a3e12c7..2bc8ca9284 100644
+index c6e5e7b425..d1ccec71e9 100644
@@ -211 +225 @@
-@@ -1562,6 +1562,8 @@ err_secondary:
+@@ -1521,6 +1521,8 @@ err_secondary:
@@ -221 +235 @@
-index c08894cd03..53f0a27445 100644
+index 75b822785b..1b784b109a 100644
@@ -240 +254 @@
-@@ -1981,6 +1990,8 @@ struct mlx5_priv {
+@@ -1840,6 +1849,8 @@ struct mlx5_priv {
@@ -249 +263,3 @@
-@@ -2333,6 +2344,7 @@ struct mlx5_priv *mlx5_dev_to_eswitch_info(struct rte_eth_dev *dev);
+@@ -2133,6 +2144,7 @@ eth_rx_burst_t mlx5_select_rx_function(struct rte_eth_dev *dev);
+ struct mlx5_priv *mlx5_port_to_eswitch_info(uint16_t port, bool valid);
+ struct mlx5_priv *mlx5_dev_to_eswitch_info(struct rte_eth_dev *dev);
@@ -251,2 +266,0 @@
- uint64_t mlx5_get_restore_flags(struct rte_eth_dev *dev,
- enum rte_eth_dev_operation op);
@@ -257 +271 @@
-@@ -2372,6 +2384,7 @@ int mlx5_os_get_stats_n(struct rte_eth_dev *dev, bool bond_master,
+@@ -2171,6 +2183,7 @@ int mlx5_os_get_stats_n(struct rte_eth_dev *dev, bool bond_master,
@@ -266 +280 @@
-index 68d1c1bfa7..7747b0c869 100644
+index dbfd46ce1c..39506680a2 100644
@@ -269 +283 @@
-@@ -360,9 +360,11 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
+@@ -352,9 +352,11 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
@@ -282,2 +296,2 @@
-@@ -863,3 +865,41 @@ mlx5_get_restore_flags(__rte_unused struct rte_eth_dev *dev,
- /* mlx5 PMD does not require any configuration restore. */
+@@ -836,3 +838,41 @@ mlx5_hairpin_cap_get(struct rte_eth_dev *dev, struct rte_eth_hairpin_cap *cap)
+ cap->tx_cap.rte_memory = hca_attr->hairpin_sq_wq_in_host_mem;
@@ -364 +378 @@
-index d583730066..c4e3430bdc 100644
+index a9614b125b..4cb9df1d5f 100644
@@ -367 +381 @@
-@@ -477,6 +477,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
+@@ -475,6 +475,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
next prev parent reply other threads:[~2025-12-21 15:00 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-21 14:55 patch 'test/telemetry: fix test calling all commands' " Shani Peretz
2025-12-21 14:55 ` patch 'eal: fix plugin dir walk' " Shani Peretz
2025-12-21 14:55 ` patch 'cmdline: fix port list parsing' " Shani Peretz
2025-12-21 14:55 ` patch 'cmdline: fix highest bit " Shani Peretz
2025-12-21 14:55 ` patch 'tailq: fix lookup macro' " Shani Peretz
2025-12-21 14:55 ` patch 'hash: fix unaligned access in predictable RSS' " Shani Peretz
2025-12-21 14:55 ` patch 'graph: fix unaligned access in stats' " Shani Peretz
2025-12-21 14:55 ` patch 'eventdev: fix listing timer adapters with telemetry' " Shani Peretz
2025-12-21 14:55 ` patch 'cfgfile: fix section count with no name' " Shani Peretz
2025-12-21 14:55 ` patch 'net/gve: do not write zero-length descriptors' " Shani Peretz
2025-12-21 14:55 ` patch 'net/gve: validate Tx packet before sending' " Shani Peretz
2025-12-21 14:56 ` patch 'net/vmxnet3: fix mapping of mempools to queues' " Shani Peretz
2025-12-21 14:56 ` patch 'app/testpmd: increase size of set cores list command' " Shani Peretz
2025-12-21 14:56 ` patch 'net/dpaa2: fix shaper rate' " Shani Peretz
2025-12-21 14:56 ` patch 'app/testpmd: monitor state of primary process' " Shani Peretz
2025-12-21 14:56 ` patch 'net/gve: fix disabling interrupts on DQ' " Shani Peretz
2025-12-21 14:56 ` patch 'app/testpmd: fix conntrack action query' " Shani Peretz
2025-12-21 14:56 ` patch 'doc: add conntrack state inspect command to testpmd guide' " Shani Peretz
2025-12-21 14:56 ` patch 'net/gve: free Rx mbufs if allocation fails on ring setup' " Shani Peretz
2025-12-21 14:56 ` patch 'app/testpmd: validate DSCP and VLAN for meter creation' " Shani Peretz
2025-12-21 14:56 ` Shani Peretz [this message]
2025-12-21 14:56 ` patch 'net/mlx5: fix storage of shared Rx queues' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5/hws: fix ESP header match in strict mode' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix unsupported flow rule port action' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix non-template age rules flush' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix connection tracking state item validation' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5/hws: fix TIR action support in FDB' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix indirect flow age action handling' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix Direct Verbs counter offset detection' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix interface name parameter definition' " Shani Peretz
2025-12-21 14:56 ` patch 'net/iavf: fix Tx vector path selection logic' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice: fix vector Rx VLAN offload flags' " Shani Peretz
2025-12-21 14:56 ` patch 'net/intel: fix assumption about tag placement order' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice: fix VLAN tag reporting on Rx' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice/base: fix adding special words' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice/base: fix memory leak in HW profile handling' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice/base: fix memory leak in recipe " Shani Peretz
2025-12-21 14:56 ` patch 'gro: fix payload corruption in coalescing packets' " Shani Peretz
2025-12-21 14:56 ` patch 'eal: fix DMA mask validation with IOVA mode option' " Shani Peretz
2025-12-21 14:56 ` patch 'eal: fix MP socket cleanup' " Shani Peretz
2025-12-21 14:56 ` patch 'crypto/ipsec_mb: fix QP release in secondary' " Shani Peretz
2025-12-21 14:56 ` patch 'efd: fix AVX2 support' " Shani Peretz
2025-12-21 14:56 ` patch 'net/octeon_ep: fix device start' " Shani Peretz
2025-12-21 14:56 ` patch 'common/cnxk: fix async event handling' " Shani Peretz
2025-12-21 14:56 ` patch 'doc: fix feature list of ice driver' " Shani Peretz
2025-12-21 14:56 ` patch 'doc: fix feature list of iavf " Shani Peretz
2025-12-21 14:56 ` patch 'baseband/acc: fix exported header' " Shani Peretz
2025-12-21 14:56 ` patch 'eventdev: do not include driver header in DMA adapter' " Shani Peretz
2025-12-21 14:56 ` patch 'gpudev: fix driver header for Windows' " Shani Peretz
2025-12-21 14:56 ` patch 'drivers: fix some exported headers' " Shani Peretz
2025-12-21 14:56 ` patch 'test/debug: fix crash with mlx5 devices' " Shani Peretz
2025-12-21 14:56 ` patch 'bus/pci: fix build with MinGW 13' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: " Shani Peretz
2025-12-21 14:56 ` patch 'dma/hisilicon: fix stop with pending transfers' " Shani Peretz
2025-12-21 14:56 ` patch 'test/dma: fix failure condition' " Shani Peretz
2025-12-21 14:56 ` patch 'eal/x86: enable timeout in AMD power monitor' " Shani Peretz
2025-12-21 14:56 ` patch 'fib6: fix tbl8 allocation check logic' " Shani Peretz
2025-12-21 14:56 ` patch 'vhost: add VDUSE virtqueue ready state polling workaround' " Shani Peretz
2025-12-21 14:56 ` patch 'vhost: fix virtqueue info init in VDUSE vring setup' " Shani Peretz
2025-12-21 14:56 ` patch 'vhost: fix double fetch when dequeue offloading' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice/base: fix integer overflow on NVM init' " Shani Peretz
2025-12-21 14:56 ` patch 'doc: fix display of commands in cpfl guide' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice: fix initialization with 8 ports' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice: remove indirection for FDIR filters' " Shani Peretz
2025-12-21 14:56 ` patch 'net/ice: fix memory leak in raw pattern parse' " Shani Peretz
2025-12-21 14:56 ` patch 'net/i40e: fix symmetric Toeplitz hashing for SCTP' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5/hws: fix ESP header match in strict mode' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix ESP header match after UDP for group 0' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix multicast' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix indirect flow action memory leak' " Shani Peretz
2025-12-21 14:56 ` patch 'net/mlx5: fix MTU initialization' " Shani Peretz
2025-12-21 14:57 ` patch 'net/mlx5: fix leak of flow indexed pools' " Shani Peretz
2025-12-21 14:57 ` patch 'net/hns3: fix inconsistent lock' " Shani Peretz
2025-12-21 14:57 ` patch 'net/hns3: fix VLAN resources freeing' " Shani Peretz
2025-12-21 14:57 ` patch 'net/hns3: fix overwrite mbuf in vector path' " Shani Peretz
2025-12-21 14:57 ` patch 'net/af_packet: fix crash in secondary process' " Shani Peretz
2025-12-21 14:57 ` patch 'net/ark: remove double mbuf free' " Shani Peretz
2025-12-21 14:57 ` patch 'app/testpmd: stop forwarding in secondary process' " Shani Peretz
2025-12-21 14:57 ` patch 'net/tap: fix build with LTO' " Shani Peretz
2025-12-21 14:57 ` patch 'net/hns3: fix VLAN tag loss for short tunnel frame' " Shani Peretz
2025-12-21 14:57 ` patch 'ethdev: fix VLAN filter parameter description' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix file descriptor leak on read error' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix out-of-bounds access in UIO mapping' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix buffer descriptor size configuration' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix Tx queue free' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix checksum flag handling and error return' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: reject multi-queue configuration' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: fix memory leak in Rx buffer cleanup' " Shani Peretz
2025-12-21 14:57 ` patch 'net/enetfec: reject Tx deferred queue' " Shani Peretz
2025-12-21 14:57 ` patch 'net/tap: fix interrupt callback crash after failed start' " Shani Peretz
2025-12-21 14:57 ` patch 'net/ena: fix PCI BAR mapping on 64K page size' " Shani Peretz
2025-12-21 14:57 ` patch 'net/ena/base: fix unsafe memcpy on invalid memory' " Shani Peretz
2025-12-21 14:57 ` patch 'net/dpaa2: fix uninitialized variable' " Shani Peretz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251221145746.763179-21-shperetz@nvidia.com \
--to=shperetz@nvidia.com \
--cc=dsosnowski@nvidia.com \
--cc=stable@dpdk.org \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).