Tue, May 28, 2019 at 12:02:11PM CEST, liuhang...@gmail.com wrote:
>On Tue, May 28, 2019 at 11:08:23AM +0200, Jiri Pirko wrote:
>> >+static int team_ethtool_get_link_ksettings(struct net_device *dev,
>> >+                                      struct ethtool_link_ksettings *cmd)
>> >+{
>> >+   struct team *team= netdev_priv(dev);
>> >+   unsigned long speed = 0;
>> >+   struct team_port *port;
>> >+
>> >+   cmd->base.duplex = DUPLEX_UNKNOWN;
>> >+   cmd->base.port = PORT_OTHER;
>> >+
>> >+   list_for_each_entry(port, &team->port_list, list) {
>> >+           if (team_port_txable(port)) {
>> >+                   if (port->state.speed != SPEED_UNKNOWN)
>> >+                           speed += port->state.speed;
>> >+                   if (cmd->base.duplex == DUPLEX_UNKNOWN &&
>> >+                       port->state.duplex != DUPLEX_UNKNOWN)
>> >+                           cmd->base.duplex = port->state.duplex;
>> 
>> What is exactly the point of this patch? Why do you need such
>> information. This is hw-related info. If you simply sum-up all txable
>> ports, the value is always highly misleading.
>> 
>> For example for hash-based port selection with 2 100Mbit ports,
>> you will get 200Mbit, but it is not true. It is up to the traffic and
>> hash function what is the actual TX speed you can get.
>> On the RX side, this is even more misleading as the actual speed depends
>> on the other side of the wire.
>
>The number is the maximum speed in theory. I added it because someone

"in theory" is not what this value should return in my opinion.


>said bond interface could show total speed while team could not...
>The usage is customer could get team link-speed and throughput via SNMP.

Has no meaning though :/


>
>Thanks
>Hangbin
>> 
>> 
>> >+           }
>> >+   }
>> >+   cmd->base.speed = speed ? : SPEED_UNKNOWN;
>> >+
>> >+   return 0;
>> >+}
>> >+
>> > static const struct ethtool_ops team_ethtool_ops = {
>> >    .get_drvinfo            = team_ethtool_get_drvinfo,
>> >    .get_link               = ethtool_op_get_link,
>> >+   .get_link_ksettings     = team_ethtool_get_link_ksettings,
>> > };
>> > 
>> > /***********************
>> >-- 
>> >2.19.2
>> >

Reply via email to