[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] add get_drvinfo() support for netloop
The following patch for the 2.6.18 tree adds get_drvinfo() ("ethtool -i") support to netloop. Example: # ethtool -i vif0.3 driver: netloop version: firmware-version: bus-info: vif-0-3 # ethtool -i veth3 driver: netloop version: firmware-version: bus-info: vif-0-3 Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx> --- drivers/xen/netback/loopback.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/xen/netback/loopback.c b/drivers/xen/netback/loopback.c index 6c45fae..d110f63 100644 --- a/drivers/xen/netback/loopback.c +++ b/drivers/xen/netback/loopback.c @@ -62,6 +62,7 @@ MODULE_PARM_DESC(nloopbacks, "Number of netback-loopback devices to create"); struct net_private { struct net_device *loopback_dev; struct net_device_stats stats; + int loop_idx; }; static int loopback_open(struct net_device *dev) @@ -181,8 +182,17 @@ static struct net_device_stats *loopback_get_stats(struct net_device *dev) return &np->stats; } +static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) +{ + strcpy(info->driver, "netloop"); + snprintf(info->bus_info, ETHTOOL_BUSINFO_LEN, "vif-0-%d", + ((struct net_private *)netdev_priv(dev))->loop_idx); +} + static struct ethtool_ops network_ethtool_ops = { + .get_drvinfo = get_drvinfo, + .get_tx_csum = ethtool_op_get_tx_csum, .set_tx_csum = ethtool_op_set_tx_csum, .get_sg = ethtool_op_get_sg, @@ -200,11 +210,13 @@ static void loopback_set_multicast_list(struct net_device *dev) { } -static void loopback_construct(struct net_device *dev, struct net_device *lo) +static void loopback_construct(struct net_device *dev, struct net_device *lo, + int loop_idx) { struct net_private *np = netdev_priv(dev); np->loopback_dev = lo; + np->loop_idx = loop_idx; dev->open = loopback_open; dev->stop = loopback_close; @@ -250,8 +262,8 @@ static int __init make_loopback(int i) if (!dev2) goto fail_netdev2; - loopback_construct(dev1, dev2); - loopback_construct(dev2, dev1); + loopback_construct(dev1, dev2, i); + loopback_construct(dev2, dev1, i); /* * Initialise a dummy MAC address for the 'dummy backend' interface. We -- 1.7.2.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |