Re: [PATCH net-next v5 2/2] virtio_net: add ethtool support for set and get of settings
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2016-02-04 12:23:18
On Wed, Feb 03, 2016 at 10:19:04AM +0100, Nikolay Aleksandrov wrote:
On 02/03/2016 04:04 AM, Nikolay Aleksandrov wrote:quoted
From: Nikolay Aleksandrov <redacted> This patch allows the user to set and retrieve speed and duplex of the virtio_net device via ethtool. Having this functionality is very helpful for simulating different environments and also enables the virtio_net device to participate in operations where proper speed and duplex are required (e.g. currently bonding lacp mode requires full duplex). Custom speed and duplex are not allowed, the user-supplied settings are validated before applying. Example: $ ethtool eth1 Settings for eth1: ... Speed: Unknown! Duplex: Unknown! (255) $ ethtool -s eth1 speed 1000 duplex full $ ethtool eth1 Settings for eth1: ... Speed: 1000Mb/s Duplex: Full Based on a patch by Roopa Prabhu. Signed-off-by: Nikolay Aleksandrov <redacted> --- v2: use the new ethtool speed/duplex validation functions and allow half duplex to be set v3: return error if the user tries to change anything besides speed/duplex as per Michael's comment We have to zero-out advertising as it gets set automatically by ethtool if setting speed and duplex together. v4: Set port type to PORT_OTHER v5: null diff1.port because we set cmd->port now and ethtool returns it in the set request, retested all casesHmm, nulling the advertising and ->port completely ignores them, i.e. won't produce an error if the user actually specified a different value for either of them. We can check if the ->port matches what we returned, but there's no fix for advertising. I'm leaving both ignored for now, please let me know if you'd prefer otherwise. Thanks, Nik
I think I prefer validating port. For advertising we don't allow enabling autonegotiation so ignoring these is fine I think. -- MST