From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1UsWhA-0004gp-2A for ltp-list@lists.sourceforge.net; Fri, 28 Jun 2013 11:18:28 +0000 Received: from mail-pb0-f46.google.com ([209.85.160.46]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1UsWh2-00006D-Ln for ltp-list@lists.sourceforge.net; Fri, 28 Jun 2013 11:18:28 +0000 Received: by mail-pb0-f46.google.com with SMTP id rq2so2150402pbb.19 for ; Fri, 28 Jun 2013 04:18:14 -0700 (PDT) Message-ID: <51CD7107.9030203@casparzhang.com> Date: Fri, 28 Jun 2013 19:18:31 +0800 From: Caspar Zhang MIME-Version: 1.0 References: <1372142262-4654-1-git-send-email-liuhangbin@gmail.com> <51CCFF42.6060703@casparzhang.com> <51CD3113.7010802@casparzhang.com> In-Reply-To: Subject: Re: [LTP] [PATCH] testscripts/networkstress.sh: update for two interfaces support List-Id: Linux Test Project General Discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ltp-list-bounces@lists.sourceforge.net To: Hangbin Liu Cc: LTP List On 06/28/2013 03:24 PM, Hangbin Liu wrote: > Yes, I have used this patch for a long time myself, but I only have > the result in beaker. > But I think the patch is safe, if you only use one interface, the > result will be the same with before. I'll leave the patch for others' review. Caspar > > 2013/6/28 Caspar Zhang : >> On 06/28/2013 01:59 PM, Hangbin Liu wrote: >>> >>> No, the INTERFACE and LHOST_HWADDRS are both used to make sure we have >>> enough NIC for some network testing. >>> >>> We can know the networking test topology from >>> testcases/network/stress/README >>> >>> Physical Topology >>> ================= >>> >>> These tests require two machines. And each machine needs to have 2 or more >>> interfaces. These tests assume that they run on the following topology. >>> >>> Control Link >>> +------------------------------------+ >>> | | >>> +-------+-------+ +-------+-------+ >>> | +---- Test Link 0 ---+ | >>> | Local Host + : + Remote Host | >>> | +---- Test Link n ---+ | >>> +---------------+ +---------------+ >>> >>> Control Link is used by the local host to control the remote host. >>> `control' means, for example, changing the setting of the interfaces that >>> are >>> connected to the test links. The setting of the interfaces connected to >>> the >>> control link is never changed. >>> >>> Test Links are the place where the stress tests run. For example, test >>> packets >>> flow those links. The number of test links must be at least 1. The setting >>> of >>> the interfaces connectted to the test links would be changed by the tests. >>> Therefore, each test link should not belong to any external network. It is >>> recommended to connect each pair of interfaces with the ether cross >>> cables. >>> >>> Currently, different NIC testcases for ICMP/UDP/TCP/Multicast require >>> plural >>> test links. Other testcases uses only 1 test link. (Test Link 0) >>> >>> >>> So some tests, such as >>> testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01 >>> testcases/network/stress/udp/multi-diffnic/udp4-multi-diffnic01 >>> testcases/network/stress/icmp/multi-diffnic/icmp4-multi-diffnic01 >>> >>> they all need more than one NIC for testing. >>> >>> When we get INTERFACE="eth0|eth1", then we can get >>> LHOST_HWADDRS="aa:bb:cc:dd:ee:fe aa:bb:cc:dd:ee:ff" from networkstress.sh. >>> >>> And for example, in test >>> testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01 >>> >>> We will check the total link num by >>> link_total=`echo $LHOST_HWADDRS | wc -w` >>> >>> Then in "while [ $link_num -lt $link_total ]; do" loop, we will assign >>> different IP address >>> for each link with network_part="10.0.${link_num}". >>> >>> What I want to say is that we need to get two MAC addresses for >>> LHOST_HWADDRS, >>> so we have to make sure networkstress.sh can get two interface for >>> INTERFACE >> >> >> OK, I was a bit naive :-) thanks for the detailed explanation. I grepped a >> bit in testcases/network and did find the two variables are widely used. I >> think before we can prove all affected cases work with this change, we >> should hold on the patch. Do you have a running result against all affected >> cases? >> >> Thanks, >> Caspar >> >> >> >>> >>> 2013/6/28 Caspar Zhang : >>>> >>>> On 06/25/2013 02:37 PM, Hangbin Liu wrote: >>>>> >>>>> >>>>> As some networking tests need two interfaces at the same time. Use grep >>>>> -P >>>>> to >>>>> get two interfaces' mac addresses. >>>>> >>>>> Signed-off-by: Hangbin Liu >>>>> --- >>>>> testscripts/networkstress.sh | 5 ++++- >>>>> 1 file changed, 4 insertions(+), 1 deletion(-) >>>>> >>>>> diff --git a/testscripts/networkstress.sh b/testscripts/networkstress.sh >>>>> index b40af72..499b40c 100755 >>>>> --- a/testscripts/networkstress.sh >>>>> +++ b/testscripts/networkstress.sh >>>>> @@ -15,6 +15,8 @@ fi >>>>> export TMPDIR=/tmp/netst-$$ >>>>> mkdir $TMPDIR >>>>> VERBOSE="no" >>>>> +# Default interface is "eth0". >>>>> +# For some test cases that need two interfaces, give parameter like >>>>> "eth0|eth1" >>>>> INTERFACE="eth0" >>>>> >>>>> >>>>> >>>>> #=========================================================================== >>>>> @@ -71,6 +73,7 @@ usage () { >>>>> echo " -W|w: Run whole network stress tests" >>>>> echo " -D|d: Test duration (default ${NS_DURATION} sec)" >>>>> echo " -N|n: Select the network interface (default: $INTERFACE)" >>>>> + echo " Two interfaces' format: \"eth0|eth1\"" >>>>> echo " -V|v: Enable verbose" >>>>> echo " -H|h: This Usage" >>>>> echo "" >>>>> @@ -102,7 +105,7 @@ if [ -z ${TEST_CASE} ]; then >>>>> usage >>>>> fi >>>>> >>>>> -export LHOST_HWADDRS=`ifconfig | grep ${INTERFACE} | grep HWaddr |awk >>>>> '{print $5}'` >>>>> +export LHOST_HWADDRS=`ifconfig | grep -P ${INTERFACE} | grep HWaddr >>>>> |awk >>>>> '{print $5}'` >>>> >>>> >>>> >>>> >>>> As my understanding, the INTERFACE & LHOST_HWADDRS variables only used >>>> for >>>> verbose printing, right? >>>> >>>> If yes, I'll give my ack here. >>>> >>>> BTW, I'd to add quotations around ${INTERFACE}, to make sure 100% safety. >>>> >>>> Caspar. >>>> >>>> >>>>> >>>>> if [ -z ${RHOST} ]; then >>>>> ## Just a silly check >>>>> >>>> >> ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list