From 5fb9a0b89e2ab959547cd684f497bd31bcb3261f Mon Sep 17 00:00:00 2001 From: Yael Chemla Date: Wed, 19 Nov 2025 22:48:17 +0200 Subject: [PATCH] bonding: 3ad: Add support for 1600G speed Add support for 1600Gbps speed to allow using 3ad mode with 1600G devices. Signed-off-by: Yael Chemla Reviewed-by: Shahar Shitrit Signed-off-by: Tariq Toukan Link: https://patch.msgid.link/1763585297-1243980-4-git-send-email-tariqt@nvidia.com Signed-off-by: Jakub Kicinski --- 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 */ }