Subject: Re: [PATCH v2] net: Allow ethtool to set interface in loopback mode.

From: Jeff Garzik <[email-masked]>
Date: Wed, 05 Jan 2011 11:22:21 -0500

On 01/04/2011 08:21 PM, Ben Hutchings wrote:
> On Tue, 2011-01-04 at 16:36 -0800, Stephen Hemminger wrote:
>> On Tue,  4 Jan 2011 16:30:01 -0800
>> Mahesh Bandewar<[email-masked]>  wrote:
>>
>>> This patch enables ethtool to set the loopback mode on a given interface.
>>> By configuring the interface in loopback mode in conjunction with a policy
>>> route / rule, a userland application can stress the egress / ingress path
>>> exposing the flows of the change in progress and potentially help developer(s)
>>> understand the impact of those changes without even sending a packet out
>>> on the network.
>>>
>>> Following set of commands illustrates one such example -
>>> 	a) ip -4 addr add 192.168.1.1/24 dev eth1
>>> 	b) ip -4 rule add from all iif eth1 lookup 250
>>> 	c) ip -4 route add local 0/0 dev lo proto kernel scope host table 250
>>> 	d) arp -Ds 192.168.1.100 eth1
>>> 	e) arp -Ds 192.168.1.200 eth1
>>> 	f) sysctl -w net.ipv4.ip_nonlocal_bind=1
>>> 	g) sysctl -w net.ipv4.conf.all.accept_local=1
>>> 	# Assuming that the machine has 8 cores
>>> 	h) taskset 000f netserver -L 192.168.1.200
>>> 	i) taskset 00f0 netperf -t TCP_CRR -L 192.168.1.100 -H 192.168.1.200 -l 30
>>>
>>> Signed-off-by: Mahesh Bandewar<[email-masked]>
>>> Reviewed-by: Ben Hutchings<[email-masked]>
>>
>> Since this is a boolean it SHOULD go into ethtool_flags rather than
>> being a high level operation.
>
> It could do, but I though ETHTOOL_{G,S}FLAGS were intended for
> controlling offload features.

It doesn't have to be.  As Stephen guessed, [GS]FLAGS are basically 
common flags -- as differentiated from private, 
driver-specific/hardware-specific flags.

	Jeff