Patchwork virtio_net: add more ethtool information

login
register
mail settings
Submitter stephen hemminger
Date Dec. 3, 2009, 6:32 a.m.
Message ID <20091203063311.902077645@vyatta.com>
Download mbox | patch
Permalink /patch/40134/
State Deferred
Delegated to: David Miller
Headers show

Comments

stephen hemminger - Dec. 3, 2009, 6:32 a.m.
It is useful for some tools (as well as bonding, and bridging)
for virtio network interface provide more ethtool information.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Rusty Russell - Dec. 4, 2009, 12:02 a.m.
On Thu, 3 Dec 2009 05:02:26 pm Stephen Hemminger wrote:
> It is useful for some tools (as well as bonding, and bridging)
> for virtio network interface provide more ethtool information.

Hi Stephen,

    Can't see any harm.  Some minor questions below:

> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> 
> --- a/drivers/net/virtio_net.c	2009-12-01 14:24:14.766450584 -0800
> +++ b/drivers/net/virtio_net.c	2009-12-01 16:49:18.295535415 -0800
> @@ -763,7 +763,36 @@ static void virtnet_vlan_rx_kill_vid(str
>  		dev_warn(&dev->dev, "Failed to kill VLAN ID %d.\n", vid);
>  }
>  
> +static void virtnet_get_drvinfo(struct net_device *dev,
> +				struct ethtool_drvinfo *info)
> +{
> +	struct virtnet_info *vi = netdev_priv(dev);
> +
> +	strcpy(info->driver, "virtnet");
> +	strcpy(info->version, "0.1");
> +	strcpy(info->fw_version, "N/A");
> +	strcpy(info->bus_info, dev_driver_string(&vi->vdev->dev));

0.1 as a version is weird.  If we need a number, "0" seems best.

> +	cmd->speed = SPEED_1000;

Why 1000?  Because it's commong?  How about a SPEED_UNLIMITED?

Thanks,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
stephen hemminger - Dec. 4, 2009, 12:33 a.m.
On Fri, 4 Dec 2009 10:32:23 +1030
Rusty Russell <rusty@rustcorp.com.au> wrote:

> On Thu, 3 Dec 2009 05:02:26 pm Stephen Hemminger wrote:
> > It is useful for some tools (as well as bonding, and bridging)
> > for virtio network interface provide more ethtool information.
> 
> Hi Stephen,
> 
>     Can't see any harm.  Some minor questions below:
> 
> > 
> > Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> > 
> > --- a/drivers/net/virtio_net.c	2009-12-01 14:24:14.766450584 -0800
> > +++ b/drivers/net/virtio_net.c	2009-12-01 16:49:18.295535415 -0800
> > @@ -763,7 +763,36 @@ static void virtnet_vlan_rx_kill_vid(str
> >  		dev_warn(&dev->dev, "Failed to kill VLAN ID %d.\n", vid);
> >  }
> >  
> > +static void virtnet_get_drvinfo(struct net_device *dev,
> > +				struct ethtool_drvinfo *info)
> > +{
> > +	struct virtnet_info *vi = netdev_priv(dev);
> > +
> > +	strcpy(info->driver, "virtnet");
> > +	strcpy(info->version, "0.1");
> > +	strcpy(info->fw_version, "N/A");
> > +	strcpy(info->bus_info, dev_driver_string(&vi->vdev->dev));
> 
> 0.1 as a version is weird.  If we need a number, "0" seems best.
> 
> > +	cmd->speed = SPEED_1000;
> 
> Why 1000?  Because it's commong?  How about a SPEED_UNLIMITED?
> 

Well until the performance is improved, that is about what I see!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

--- a/drivers/net/virtio_net.c	2009-12-01 14:24:14.766450584 -0800
+++ b/drivers/net/virtio_net.c	2009-12-01 16:49:18.295535415 -0800
@@ -763,7 +763,36 @@  static void virtnet_vlan_rx_kill_vid(str
 		dev_warn(&dev->dev, "Failed to kill VLAN ID %d.\n", vid);
 }
 
+static void virtnet_get_drvinfo(struct net_device *dev,
+				struct ethtool_drvinfo *info)
+{
+	struct virtnet_info *vi = netdev_priv(dev);
+
+	strcpy(info->driver, "virtnet");
+	strcpy(info->version, "0.1");
+	strcpy(info->fw_version, "N/A");
+	strcpy(info->bus_info, dev_driver_string(&vi->vdev->dev));
+}
+
+static int virtnet_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+{
+	cmd->supported = SUPPORTED_1000baseT_Full |
+		SUPPORTED_Autoneg | SUPPORTED_FIBRE;
+	cmd->advertising = ADVERTISED_1000baseT_Full |
+		ADVERTISED_Autoneg | ADVERTISED_FIBRE;
+	cmd->speed = SPEED_1000;
+	cmd->duplex = DUPLEX_FULL;
+	cmd->port = PORT_FIBRE;
+	cmd->phy_address = 0;
+	cmd->transceiver = XCVR_INTERNAL;
+	cmd->autoneg = AUTONEG_ENABLE;
+
+	return 0;
+}
+
 static const struct ethtool_ops virtnet_ethtool_ops = {
+	.get_settings = virtnet_get_settings,
+	.get_drvinfo = virtnet_get_drvinfo,
 	.set_tx_csum = virtnet_set_tx_csum,
 	.set_sg = ethtool_op_set_sg,
 	.set_tso = ethtool_op_set_tso,