* [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support
@ 2025-11-19 20:48 Tariq Toukan
2025-11-19 20:48 ` [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed Tariq Toukan
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Tariq Toukan @ 2025-11-19 20:48 UTC (permalink / raw)
To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn, David S. Miller
Cc: Jay Vosburgh, Saeed Mahameed, Tariq Toukan, Mark Bloch,
Leon Romanovsky, Heiner Kallweit, netdev, linux-kernel,
linux-rdma, Gal Pressman, Moshe Shemesh, Shahar Shitrit,
Yael Chemla, Dragos Tatulea, Maxime Chevallier
This series by Yael adds 1600Gbps (1.6T) link mode support.
See detailed description by Yael below.
Regards,
Tariq
This series adds 1600Gbps (1.6T) link mode support end-to-end.
- Introduces 1600Gbps ethtool link modes based on 200Gbps-per-lane
signaling from IEEE 802.3dj, including KR8/CR8/DR8/DR8-2 PMDs.
- Wires up mlx5e to advertise and handle the new modes (8 lanes x
200Gbps).
- Extends bonding 802.3ad to accept and operate with 1600Gbps links.
User-visible effects:
- ethtool will report and advertise 1600Gbps modes and PMDs where
supported.
- mlx5 devices capable of 8x200Gbps lanes will expose 1600Gbps.
- LACP (bonding 3ad) will accept and utilize 1600Gbps partner links.
Compatibility:
- UAPI additions only; existing users are unaffected.
- The new link modes/PMDs are additive and aligned with IEEE 802.3dj
200G/lane definitions.
Testing:
- Verified ethtool reporting/advertisement and 1600Gbps link bring-up
using simulated mlx5 hardware.
- No regressions observed at lower speeds.
References:
[1] https://www.ieee802.org/3/dj/public/23_03/opsasnick_3dj_01a_2303.pdf
[2] https://www.ieee802.org/3/dj/projdoc/objectives_P802d3dj_240314.pdf
V2:
- Update drivers/net/phy/phy_caps.[ch] (Maxime)
Yael Chemla (3):
net: ethtool: Add support for 1600Gbps speed
net/mlx5e: Add 1600Gbps link modes
bonding: 3ad: Add support for 1600G speed
drivers/net/bonding/bond_3ad.c | 9 +++++++++
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 5 +++++
drivers/net/ethernet/mellanox/mlx5/core/port.c | 1 +
drivers/net/phy/phy-caps.h | 1 +
drivers/net/phy/phy-core.c | 4 +++-
drivers/net/phy/phy_caps.c | 2 ++
include/uapi/linux/ethtool.h | 5 +++++
net/ethtool/common.c | 8 ++++++++
8 files changed, 34 insertions(+), 1 deletion(-)
base-commit: 865a5d1a29be48875ff68c6ba7e8377180ab8e33
--
2.31.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed 2025-11-19 20:48 [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support Tariq Toukan @ 2025-11-19 20:48 ` Tariq Toukan 2025-11-20 8:23 ` Maxime Chevallier 2025-11-19 20:48 ` [PATCH net-next V2 2/3] net/mlx5e: Add 1600Gbps link modes Tariq Toukan ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Tariq Toukan @ 2025-11-19 20:48 UTC (permalink / raw) To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn, David S. Miller Cc: Jay Vosburgh, Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, Heiner Kallweit, netdev, linux-kernel, linux-rdma, Gal Pressman, Moshe Shemesh, Shahar Shitrit, Yael Chemla, Dragos Tatulea, Maxime Chevallier From: Yael Chemla <ychemla@nvidia.com> Add support for 1600Gbps link modes based on 200Gbps per lane [1]. This includes the adopted IEEE 802.3dj copper and optical PMDs that use 200G/lane signaling [2]. Add the following PMD types: - KR8 (backplane) - CR8 (copper cable) - DR8 (SMF 500m) - DR8-2 (SMF 2km) These modes are defined in the 802.3dj specifications. References: [1] https://www.ieee802.org/3/dj/public/23_03/opsasnick_3dj_01a_2303.pdf [2] https://www.ieee802.org/3/dj/projdoc/objectives_P802d3dj_240314.pdf Signed-off-by: Yael Chemla <ychemla@nvidia.com> Reviewed-by: Shahar Shitrit <shshitrit@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> --- drivers/net/phy/phy-caps.h | 1 + drivers/net/phy/phy-core.c | 4 +++- drivers/net/phy/phy_caps.c | 2 ++ include/uapi/linux/ethtool.h | 5 +++++ net/ethtool/common.c | 8 ++++++++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/phy-caps.h b/drivers/net/phy/phy-caps.h index b7f0c6a3037a..4951a39f3828 100644 --- a/drivers/net/phy/phy-caps.h +++ b/drivers/net/phy/phy-caps.h @@ -29,6 +29,7 @@ enum { LINK_CAPA_200000FD, LINK_CAPA_400000FD, LINK_CAPA_800000FD, + LINK_CAPA_1600000FD, __LINK_CAPA_MAX, }; diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c index 0c63e6ba2cb0..277c034bc32f 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c @@ -17,7 +17,7 @@ */ const char *phy_speed_to_str(int speed) { - BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 121, + BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 125, "Enum ethtool_link_mode_bit_indices and phylib are out of sync. " "If a speed or mode has been added please update phy_speed_to_str " "and the PHY settings array.\n"); @@ -55,6 +55,8 @@ const char *phy_speed_to_str(int speed) return "400Gbps"; case SPEED_800000: return "800Gbps"; + case SPEED_1600000: + return "1600Gbps"; case SPEED_UNKNOWN: return "Unknown"; default: diff --git a/drivers/net/phy/phy_caps.c b/drivers/net/phy/phy_caps.c index 23c808b59b6f..3a05982b39bf 100644 --- a/drivers/net/phy/phy_caps.c +++ b/drivers/net/phy/phy_caps.c @@ -25,6 +25,7 @@ static struct link_capabilities link_caps[__LINK_CAPA_MAX] __ro_after_init = { { SPEED_200000, DUPLEX_FULL, {0} }, /* LINK_CAPA_200000FD */ { SPEED_400000, DUPLEX_FULL, {0} }, /* LINK_CAPA_400000FD */ { SPEED_800000, DUPLEX_FULL, {0} }, /* LINK_CAPA_800000FD */ + { SPEED_1600000, DUPLEX_FULL, {0} }, /* LINK_CAPA_1600000FD */ }; static int speed_duplex_to_capa(int speed, unsigned int duplex) @@ -52,6 +53,7 @@ static int speed_duplex_to_capa(int speed, unsigned int duplex) case SPEED_200000: return LINK_CAPA_200000FD; case SPEED_400000: return LINK_CAPA_400000FD; case SPEED_800000: return LINK_CAPA_800000FD; + case SPEED_1600000: return LINK_CAPA_1600000FD; } return -EINVAL; diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 8bd5ea5469d9..eb7ff2602fbb 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -2077,6 +2077,10 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118, ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119, ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120, + ETHTOOL_LINK_MODE_1600000baseCR8_Full_BIT = 121, + ETHTOOL_LINK_MODE_1600000baseKR8_Full_BIT = 122, + ETHTOOL_LINK_MODE_1600000baseDR8_Full_BIT = 123, + ETHTOOL_LINK_MODE_1600000baseDR8_2_Full_BIT = 124, /* must be last entry */ __ETHTOOL_LINK_MODE_MASK_NBITS @@ -2190,6 +2194,7 @@ enum ethtool_link_mode_bit_indices { #define SPEED_200000 200000 #define SPEED_400000 400000 #define SPEED_800000 800000 +#define SPEED_1600000 1600000 #define SPEED_UNKNOWN -1 diff --git a/net/ethtool/common.c b/net/ethtool/common.c index 55223ebc2a7e..369c05cf8163 100644 --- a/net/ethtool/common.c +++ b/net/ethtool/common.c @@ -233,6 +233,10 @@ const char link_mode_names[][ETH_GSTRING_LEN] = { __DEFINE_LINK_MODE_NAME(800000, DR4_2, Full), __DEFINE_LINK_MODE_NAME(800000, SR4, Full), __DEFINE_LINK_MODE_NAME(800000, VR4, Full), + __DEFINE_LINK_MODE_NAME(1600000, CR8, Full), + __DEFINE_LINK_MODE_NAME(1600000, KR8, Full), + __DEFINE_LINK_MODE_NAME(1600000, DR8, Full), + __DEFINE_LINK_MODE_NAME(1600000, DR8_2, Full), }; static_assert(ARRAY_SIZE(link_mode_names) == __ETHTOOL_LINK_MODE_MASK_NBITS); @@ -422,6 +426,10 @@ const struct link_mode_info link_mode_params[] = { __DEFINE_LINK_MODE_PARAMS(800000, DR4_2, Full), __DEFINE_LINK_MODE_PARAMS(800000, SR4, Full), __DEFINE_LINK_MODE_PARAMS(800000, VR4, Full), + __DEFINE_LINK_MODE_PARAMS(1600000, CR8, Full), + __DEFINE_LINK_MODE_PARAMS(1600000, KR8, Full), + __DEFINE_LINK_MODE_PARAMS(1600000, DR8, Full), + __DEFINE_LINK_MODE_PARAMS(1600000, DR8_2, Full), }; static_assert(ARRAY_SIZE(link_mode_params) == __ETHTOOL_LINK_MODE_MASK_NBITS); EXPORT_SYMBOL_GPL(link_mode_params); -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed 2025-11-19 20:48 ` [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed Tariq Toukan @ 2025-11-20 8:23 ` Maxime Chevallier 0 siblings, 0 replies; 6+ messages in thread From: Maxime Chevallier @ 2025-11-20 8:23 UTC (permalink / raw) To: Tariq Toukan, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn, David S. Miller Cc: Jay Vosburgh, Saeed Mahameed, Mark Bloch, Leon Romanovsky, Heiner Kallweit, netdev, linux-kernel, linux-rdma, Gal Pressman, Moshe Shemesh, Shahar Shitrit, Yael Chemla, Dragos Tatulea On 19/11/2025 21:48, Tariq Toukan wrote: > From: Yael Chemla <ychemla@nvidia.com> > > Add support for 1600Gbps link modes based on 200Gbps per lane [1]. > This includes the adopted IEEE 802.3dj copper and optical PMDs that use > 200G/lane signaling [2]. > > Add the following PMD types: > - KR8 (backplane) > - CR8 (copper cable) > - DR8 (SMF 500m) > - DR8-2 (SMF 2km) > > These modes are defined in the 802.3dj specifications. > References: > [1] https://www.ieee802.org/3/dj/public/23_03/opsasnick_3dj_01a_2303.pdf > [2] https://www.ieee802.org/3/dj/projdoc/objectives_P802d3dj_240314.pdf > > Signed-off-by: Yael Chemla <ychemla@nvidia.com> > Reviewed-by: Shahar Shitrit <shshitrit@nvidia.com> > Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Maxime > --- > drivers/net/phy/phy-caps.h | 1 + > drivers/net/phy/phy-core.c | 4 +++- > drivers/net/phy/phy_caps.c | 2 ++ > include/uapi/linux/ethtool.h | 5 +++++ > net/ethtool/common.c | 8 ++++++++ > 5 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/phy/phy-caps.h b/drivers/net/phy/phy-caps.h > index b7f0c6a3037a..4951a39f3828 100644 > --- a/drivers/net/phy/phy-caps.h > +++ b/drivers/net/phy/phy-caps.h > @@ -29,6 +29,7 @@ enum { > LINK_CAPA_200000FD, > LINK_CAPA_400000FD, > LINK_CAPA_800000FD, > + LINK_CAPA_1600000FD, > > __LINK_CAPA_MAX, > }; > diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c > index 0c63e6ba2cb0..277c034bc32f 100644 > --- a/drivers/net/phy/phy-core.c > +++ b/drivers/net/phy/phy-core.c > @@ -17,7 +17,7 @@ > */ > const char *phy_speed_to_str(int speed) > { > - BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 121, > + BUILD_BUG_ON_MSG(__ETHTOOL_LINK_MODE_MASK_NBITS != 125, > "Enum ethtool_link_mode_bit_indices and phylib are out of sync. " > "If a speed or mode has been added please update phy_speed_to_str " > "and the PHY settings array.\n"); > @@ -55,6 +55,8 @@ const char *phy_speed_to_str(int speed) > return "400Gbps"; > case SPEED_800000: > return "800Gbps"; > + case SPEED_1600000: > + return "1600Gbps"; > case SPEED_UNKNOWN: > return "Unknown"; > default: > diff --git a/drivers/net/phy/phy_caps.c b/drivers/net/phy/phy_caps.c > index 23c808b59b6f..3a05982b39bf 100644 > --- a/drivers/net/phy/phy_caps.c > +++ b/drivers/net/phy/phy_caps.c > @@ -25,6 +25,7 @@ static struct link_capabilities link_caps[__LINK_CAPA_MAX] __ro_after_init = { > { SPEED_200000, DUPLEX_FULL, {0} }, /* LINK_CAPA_200000FD */ > { SPEED_400000, DUPLEX_FULL, {0} }, /* LINK_CAPA_400000FD */ > { SPEED_800000, DUPLEX_FULL, {0} }, /* LINK_CAPA_800000FD */ > + { SPEED_1600000, DUPLEX_FULL, {0} }, /* LINK_CAPA_1600000FD */ > }; > > static int speed_duplex_to_capa(int speed, unsigned int duplex) > @@ -52,6 +53,7 @@ static int speed_duplex_to_capa(int speed, unsigned int duplex) > case SPEED_200000: return LINK_CAPA_200000FD; > case SPEED_400000: return LINK_CAPA_400000FD; > case SPEED_800000: return LINK_CAPA_800000FD; > + case SPEED_1600000: return LINK_CAPA_1600000FD; > } > > return -EINVAL; > diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h > index 8bd5ea5469d9..eb7ff2602fbb 100644 > --- a/include/uapi/linux/ethtool.h > +++ b/include/uapi/linux/ethtool.h > @@ -2077,6 +2077,10 @@ enum ethtool_link_mode_bit_indices { > ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118, > ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119, > ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120, > + ETHTOOL_LINK_MODE_1600000baseCR8_Full_BIT = 121, > + ETHTOOL_LINK_MODE_1600000baseKR8_Full_BIT = 122, > + ETHTOOL_LINK_MODE_1600000baseDR8_Full_BIT = 123, > + ETHTOOL_LINK_MODE_1600000baseDR8_2_Full_BIT = 124, > > /* must be last entry */ > __ETHTOOL_LINK_MODE_MASK_NBITS > @@ -2190,6 +2194,7 @@ enum ethtool_link_mode_bit_indices { > #define SPEED_200000 200000 > #define SPEED_400000 400000 > #define SPEED_800000 800000 > +#define SPEED_1600000 1600000 > > #define SPEED_UNKNOWN -1 > > diff --git a/net/ethtool/common.c b/net/ethtool/common.c > index 55223ebc2a7e..369c05cf8163 100644 > --- a/net/ethtool/common.c > +++ b/net/ethtool/common.c > @@ -233,6 +233,10 @@ const char link_mode_names[][ETH_GSTRING_LEN] = { > __DEFINE_LINK_MODE_NAME(800000, DR4_2, Full), > __DEFINE_LINK_MODE_NAME(800000, SR4, Full), > __DEFINE_LINK_MODE_NAME(800000, VR4, Full), > + __DEFINE_LINK_MODE_NAME(1600000, CR8, Full), > + __DEFINE_LINK_MODE_NAME(1600000, KR8, Full), > + __DEFINE_LINK_MODE_NAME(1600000, DR8, Full), > + __DEFINE_LINK_MODE_NAME(1600000, DR8_2, Full), > }; > static_assert(ARRAY_SIZE(link_mode_names) == __ETHTOOL_LINK_MODE_MASK_NBITS); > > @@ -422,6 +426,10 @@ const struct link_mode_info link_mode_params[] = { > __DEFINE_LINK_MODE_PARAMS(800000, DR4_2, Full), > __DEFINE_LINK_MODE_PARAMS(800000, SR4, Full), > __DEFINE_LINK_MODE_PARAMS(800000, VR4, Full), > + __DEFINE_LINK_MODE_PARAMS(1600000, CR8, Full), > + __DEFINE_LINK_MODE_PARAMS(1600000, KR8, Full), > + __DEFINE_LINK_MODE_PARAMS(1600000, DR8, Full), > + __DEFINE_LINK_MODE_PARAMS(1600000, DR8_2, Full), > }; > static_assert(ARRAY_SIZE(link_mode_params) == __ETHTOOL_LINK_MODE_MASK_NBITS); > EXPORT_SYMBOL_GPL(link_mode_params); ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net-next V2 2/3] net/mlx5e: Add 1600Gbps link modes 2025-11-19 20:48 [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed Tariq Toukan @ 2025-11-19 20:48 ` Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 3/3] bonding: 3ad: Add support for 1600G speed Tariq Toukan 2025-11-21 2:40 ` [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support patchwork-bot+netdevbpf 3 siblings, 0 replies; 6+ messages in thread From: Tariq Toukan @ 2025-11-19 20:48 UTC (permalink / raw) To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn, David S. Miller Cc: Jay Vosburgh, Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, Heiner Kallweit, netdev, linux-kernel, linux-rdma, Gal Pressman, Moshe Shemesh, Shahar Shitrit, Yael Chemla, Dragos Tatulea, Maxime Chevallier From: Yael Chemla <ychemla@nvidia.com> Introduce support for a 1600Gbps link mode, utilizing 8 lanes at 200Gbps per lane. Signed-off-by: Yael Chemla <ychemla@nvidia.com> Reviewed-by: Shahar Shitrit <shshitrit@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> --- drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 5 +++++ drivers/net/ethernet/mellanox/mlx5/core/port.c | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c index 727d7a833110..fe67c73849f9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c @@ -261,6 +261,11 @@ void mlx5e_build_ptys2ethtool_map(void) ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT, ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT, ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT); + MLX5_BUILD_PTYS2ETHTOOL_CONFIG(MLX5E_1600TAUI_8_1600TBASE_CR8_KR8, ext, + ETHTOOL_LINK_MODE_1600000baseCR8_Full_BIT, + ETHTOOL_LINK_MODE_1600000baseKR8_Full_BIT, + ETHTOOL_LINK_MODE_1600000baseDR8_Full_BIT, + ETHTOOL_LINK_MODE_1600000baseDR8_2_Full_BIT); } static void mlx5e_ethtool_get_speed_arr(bool ext, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/port.c b/drivers/net/ethernet/mellanox/mlx5/core/port.c index e4b1dfafb41f..85a9e534f442 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/port.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/port.c @@ -1108,6 +1108,7 @@ mlx5e_ext_link_info[MLX5E_EXT_LINK_MODES_NUMBER] = { [MLX5E_200GAUI_1_200GBASE_CR1_KR1] = {.speed = 200000, .lanes = 1}, [MLX5E_400GAUI_2_400GBASE_CR2_KR2] = {.speed = 400000, .lanes = 2}, [MLX5E_800GAUI_4_800GBASE_CR4_KR4] = {.speed = 800000, .lanes = 4}, + [MLX5E_1600TAUI_8_1600TBASE_CR8_KR8] = {.speed = 1600000, .lanes = 8}, }; int mlx5_port_query_eth_proto(struct mlx5_core_dev *dev, u8 port, bool ext, -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net-next V2 3/3] bonding: 3ad: Add support for 1600G speed 2025-11-19 20:48 [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 2/3] net/mlx5e: Add 1600Gbps link modes Tariq Toukan @ 2025-11-19 20:48 ` Tariq Toukan 2025-11-21 2:40 ` [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support patchwork-bot+netdevbpf 3 siblings, 0 replies; 6+ messages in thread From: Tariq Toukan @ 2025-11-19 20:48 UTC (permalink / raw) To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn, David S. Miller Cc: Jay Vosburgh, Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, Heiner Kallweit, netdev, linux-kernel, linux-rdma, Gal Pressman, Moshe Shemesh, Shahar Shitrit, Yael Chemla, Dragos Tatulea, Maxime Chevallier From: Yael Chemla <ychemla@nvidia.com> Add support for 1600Gbps speed to allow using 3ad mode with 1600G devices. Signed-off-by: Yael Chemla <ychemla@nvidia.com> Reviewed-by: Shahar Shitrit <shshitrit@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> --- drivers/net/bonding/bond_3ad.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c index 49717b7b82a2..1a8de2bf8655 100644 --- a/drivers/net/bonding/bond_3ad.c +++ b/drivers/net/bonding/bond_3ad.c @@ -76,6 +76,7 @@ enum ad_link_speed_type { AD_LINK_SPEED_200000MBPS, AD_LINK_SPEED_400000MBPS, AD_LINK_SPEED_800000MBPS, + AD_LINK_SPEED_1600000MBPS, }; /* compare MAC addresses */ @@ -300,6 +301,7 @@ static inline int __check_agg_selection_timer(struct port *port) * %AD_LINK_SPEED_200000MBPS * %AD_LINK_SPEED_400000MBPS * %AD_LINK_SPEED_800000MBPS + * %AD_LINK_SPEED_1600000MBPS */ static u16 __get_link_speed(struct port *port) { @@ -379,6 +381,10 @@ static u16 __get_link_speed(struct port *port) speed = AD_LINK_SPEED_800000MBPS; break; + case SPEED_1600000: + speed = AD_LINK_SPEED_1600000MBPS; + break; + default: /* unknown speed value from ethtool. shouldn't happen */ if (slave->speed != SPEED_UNKNOWN) @@ -822,6 +828,9 @@ static u32 __get_agg_bandwidth(struct aggregator *aggregator) case AD_LINK_SPEED_800000MBPS: bandwidth = nports * 800000; break; + case AD_LINK_SPEED_1600000MBPS: + bandwidth = nports * 1600000; + break; default: bandwidth = 0; /* to silence the compiler */ } -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support 2025-11-19 20:48 [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support Tariq Toukan ` (2 preceding siblings ...) 2025-11-19 20:48 ` [PATCH net-next V2 3/3] bonding: 3ad: Add support for 1600G speed Tariq Toukan @ 2025-11-21 2:40 ` patchwork-bot+netdevbpf 3 siblings, 0 replies; 6+ messages in thread From: patchwork-bot+netdevbpf @ 2025-11-21 2:40 UTC (permalink / raw) To: Tariq Toukan Cc: edumazet, kuba, pabeni, andrew+netdev, davem, jv, saeedm, mbloch, leon, hkallweit1, netdev, linux-kernel, linux-rdma, gal, moshe, shshitrit, ychemla, dtatulea, maxime.chevallier Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Wed, 19 Nov 2025 22:48:14 +0200 you wrote: > This series by Yael adds 1600Gbps (1.6T) link mode support. > See detailed description by Yael below. > > Regards, > Tariq > > > [...] Here is the summary with links: - [net-next,V2,1/3] net: ethtool: Add support for 1600Gbps speed https://git.kernel.org/netdev/net-next/c/491c5dc98b84 - [net-next,V2,2/3] net/mlx5e: Add 1600Gbps link modes https://git.kernel.org/netdev/net-next/c/be3a435df74b - [net-next,V2,3/3] bonding: 3ad: Add support for 1600G speed https://git.kernel.org/netdev/net-next/c/5fb9a0b89e2a You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-21 2:40 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-11-19 20:48 [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 1/3] net: ethtool: Add support for 1600Gbps speed Tariq Toukan 2025-11-20 8:23 ` Maxime Chevallier 2025-11-19 20:48 ` [PATCH net-next V2 2/3] net/mlx5e: Add 1600Gbps link modes Tariq Toukan 2025-11-19 20:48 ` [PATCH net-next V2 3/3] bonding: 3ad: Add support for 1600G speed Tariq Toukan 2025-11-21 2:40 ` [PATCH net-next V2 0/3] net: Add 1600Gbps (1.6T) link mode support patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®