Commit b8d23dc6 authored by Chris Leech's avatar Chris Leech Committed by Christoph Hellwig

fcoe: extend ethtool to FC port speed mapping

add support for 20 Gbit and 40 Gbit links
Signed-off-by: default avatarChris Leech <cleech@redhat.com>
Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent d247a70a
...@@ -96,14 +96,32 @@ int fcoe_link_speed_update(struct fc_lport *lport) ...@@ -96,14 +96,32 @@ int fcoe_link_speed_update(struct fc_lport *lport)
struct ethtool_cmd ecmd; struct ethtool_cmd ecmd;
if (!__ethtool_get_settings(netdev, &ecmd)) { if (!__ethtool_get_settings(netdev, &ecmd)) {
lport->link_supported_speeds &= lport->link_supported_speeds &= ~(FC_PORTSPEED_1GBIT |
~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT); FC_PORTSPEED_10GBIT |
FC_PORTSPEED_20GBIT |
FC_PORTSPEED_40GBIT);
if (ecmd.supported & (SUPPORTED_1000baseT_Half | if (ecmd.supported & (SUPPORTED_1000baseT_Half |
SUPPORTED_1000baseT_Full)) SUPPORTED_1000baseT_Full |
SUPPORTED_1000baseKX_Full))
lport->link_supported_speeds |= FC_PORTSPEED_1GBIT; lport->link_supported_speeds |= FC_PORTSPEED_1GBIT;
if (ecmd.supported & SUPPORTED_10000baseT_Full)
lport->link_supported_speeds |= if (ecmd.supported & (SUPPORTED_10000baseT_Full |
FC_PORTSPEED_10GBIT; SUPPORTED_10000baseKX4_Full |
SUPPORTED_10000baseKR_Full |
SUPPORTED_10000baseR_FEC))
lport->link_supported_speeds |= FC_PORTSPEED_10GBIT;
if (ecmd.supported & (SUPPORTED_20000baseMLD2_Full |
SUPPORTED_20000baseKR2_Full))
lport->link_supported_speeds |= FC_PORTSPEED_20GBIT;
if (ecmd.supported & (SUPPORTED_40000baseKR4_Full |
SUPPORTED_40000baseCR4_Full |
SUPPORTED_40000baseSR4_Full |
SUPPORTED_40000baseLR4_Full))
lport->link_supported_speeds |= FC_PORTSPEED_40GBIT;
switch (ethtool_cmd_speed(&ecmd)) { switch (ethtool_cmd_speed(&ecmd)) {
case SPEED_1000: case SPEED_1000:
lport->link_speed = FC_PORTSPEED_1GBIT; lport->link_speed = FC_PORTSPEED_1GBIT;
...@@ -111,6 +129,15 @@ int fcoe_link_speed_update(struct fc_lport *lport) ...@@ -111,6 +129,15 @@ int fcoe_link_speed_update(struct fc_lport *lport)
case SPEED_10000: case SPEED_10000:
lport->link_speed = FC_PORTSPEED_10GBIT; lport->link_speed = FC_PORTSPEED_10GBIT;
break; break;
case 20000:
lport->link_speed = FC_PORTSPEED_20GBIT;
break;
case 40000:
lport->link_speed = FC_PORTSPEED_40GBIT;
break;
default:
lport->link_speed = FC_PORTSPEED_UNKNOWN;
break;
} }
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment