[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20150307135729.GA2017@nanopsycho.orion>
Date: Sat, 7 Mar 2015 14:57:29 +0100
From: Jiri Pirko <jiri@...nulli.us>
To: "Samudrala, Sridhar" <sridhar.samudrala@...el.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org
Subject: Re: [PATCH] team: add support to get speed via ethtool
Fri, Mar 06, 2015 at 08:30:53PM CET, sridhar.samudrala@...el.com wrote:
>
>On 3/5/2015 11:16 PM, Jiri Pirko wrote:
>>Thu, Mar 05, 2015 at 10:48:35PM CET, sridhar.samudrala@...el.com wrote:
>>>With this patch ethtool <team> OR cat /sys/class/net/<team>/speed
>>>returns the speed of team based on member ports speed and state.
>>>
>>>Based on get speed support in bonding driver.
>>>
>>>Signed-off-by: Sridhar Samudrala <sridhar.samudrala@...el.com>
>>>---
>>>drivers/net/team/team.c | 25 +++++++++++++++++++++++++
>>>1 file changed, 25 insertions(+)
>>>
>>>diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
>>>index 9d3366f..e822803 100644
>>>--- a/drivers/net/team/team.c
>>>+++ b/drivers/net/team/team.c
>>>@@ -1954,6 +1954,30 @@ static int team_change_carrier(struct net_device *dev, bool new_carrier)
>>> return 0;
>>>}
>>>
>>>+static int team_ethtool_get_settings(struct net_device *dev,
>>>+ struct ethtool_cmd *ecmd)
>>>+{
>>>+ struct team *team = netdev_priv(dev);
>>>+ struct team_port *port;
>>>+ unsigned long speed = 0;
>>>+
>>>+ ecmd->duplex = DUPLEX_UNKNOWN;
>>>+ ecmd->port = PORT_OTHER;
>>>+
>>>+ mutex_lock(&team->lock);
>>>+ list_for_each_entry(port, &team->port_list, list) {
>>>+ if (port->linkup)
>>>+ speed += port->state.speed;
>>>+ if (ecmd->duplex == DUPLEX_UNKNOWN &&
>>>+ port->state.duplex != 0)
>>>+ ecmd->duplex = port->state.duplex;
>>>+ }
>>>+ ethtool_cmd_speed_set(ecmd, speed);
>>>+ mutex_unlock(&team->lock);
>>>+
>>>+ return 0;
>>>+}
>>Sridar, what exactly you are trying to achieve? I agree with DaveM that
>>this make no sense for soft devices. The fact bonding has it is a
>>mistake.
>>
>We are currently looking into the possibility of using team as a way to
>offload link aggregation support to switch hardware.
>To support LAG, a team device is created and the switch ports are added
>as members of the team. We are considering if we should create a new team
>mode specifically to support offload or the existing modes can be extended
>to enable offloading. Will appreciate any thoughts you have on this?
No, please no special modes. That is unacceptable. Just use what exists,
extend it if needed, then offload it. That is the way to go.
>
>For the specific usecase of a team where all the member ports correspond
>to offloaded switch ports, does it make sense to support getting speed OR
>we should just leave it to the mgmt apps to figure out the speed based on
>the speed of the member ports?
I do not see any reason for it. mgmt app can find out how devices are
stacked and can query the port devices directly. No need to pretend
something on team layer for it.
Jiri
>
>Thanks
>Sridhar
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists