diff mbox series

[v2,1/3] network/stress/multicast/packet-flood: Update to new API

Message ID 20201117124320.783802-1-lkml@jv-coder.de
State Changes Requested
Headers show
Series [v2,1/3] network/stress/multicast/packet-flood: Update to new API | expand

Commit Message

Joerg Vehlow Nov. 17, 2020, 12:43 p.m. UTC
From: Joerg Vehlow <joerg.vehlow@aox-tech.de>

Signed-off-by: Joerg Vehlow <joerg.vehlow@aox-tech.de>
---
 runtest/net_stress.multicast                  |   4 +
 .../multicast/packet-flood/mcast-pktfld01.sh  |  43 ++++
 .../multicast/packet-flood/mcast-pktfld02.sh  |  60 +++++
 .../multicast/packet-flood/mcast4-pktfld01    | 207 ----------------
 .../multicast/packet-flood/mcast4-pktfld02    | 225 ------------------
 .../multicast/packet-flood/mcast6-pktfld01    | 203 ----------------
 .../multicast/packet-flood/mcast6-pktfld02    | 220 -----------------
 7 files changed, 107 insertions(+), 855 deletions(-)
 create mode 100755 testcases/network/stress/multicast/packet-flood/mcast-pktfld01.sh
 create mode 100755 testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh
 delete mode 100644 testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
 delete mode 100644 testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
 delete mode 100644 testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
 delete mode 100644 testcases/network/stress/multicast/packet-flood/mcast6-pktfld02

Comments

Alexey Kodanev Nov. 18, 2020, 5:04 p.m. UTC | #1
On 17.11.2020 15:43, Joerg Vehlow wrote:
> From: Joerg Vehlow <joerg.vehlow@aox-tech.de>
> 
> Signed-off-by: Joerg Vehlow <joerg.vehlow@aox-tech.de>
> ---
...
> --- /dev/null
> +++ b/testcases/network/stress/multicast/packet-flood/mcast-pktfld01.sh
> @@ -0,0 +1,43 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (c) 2006 International Business Machines  Corp.
> +# Copyright (c) 2020 Joerg Vehlow <joerg.vehlow@aox-tech.de>
> +# Author: Mitsuru Chinen <mitch@jp.ibm.com>
> +#
> +# Verify that the kernel is not crashed when joining a multicast group with
> +# a single socket, then receiving a large number of UDP packets at the socket
> +
> +TST_NEEDS_ROOT=1
> +. mcast-lib.sh
> +
> +do_setup()
> +{
> +	mcast_setup $MCASTNUM_NORMAL
> +	MCAST_LCMD=ns-mcast_receiver
> +	MCAST_RCMD=ns-udpsender
> +}
> +
> +do_test()
> +{
> +	local mcast_addr="$MCAST_IPV4_ADDR"
> +	[ "$TST_IPV6" ] && mcast_addr="$MCAST_IPV6_ADDR"
> +
> +	# Find the available consecutive ports
> +	local mcast_port=$(find_portbundle udp 1025 1)

Hi Joerg,

The following command should support both udp/udp6:

local mcast_port=$(tst_get_unused_port ipv${TST_IPVER} dgram)

> +	if [ $? -ne 0 ]; then
> +		tst_brk TBROK "No free udp port available."
> +	fi
> +
> +	# Run a receiver
> +	ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
> +	if [ $? -ne 0 ]; then
> +		tst_brk TBROK "Failed to start multicast receiver"
> +	fi

This check can be replaced with

ROD ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b


> +
> +	# Run a sender
> +	tst_rhost_run -s -c "ns-udpsender -D $mcast_addr -f $TST_IPVER -p $mcast_port -s 32767 -m -I $(tst_iface rhost) -t $NS_DURATION"
> +

What if we swap sender and receiver, i.e.

local ns_opts="-f $TST_IPVER -p $mcast_port"

tst_rhost_run -s -c "ns-mcast_receiver $ns_opts -I $(tst_iface rhost) -m $mcast_addr -b"
EXPECT_PASS ns-udpsender -D $mcast_addr $ns_opts -s 32767 -m -I $(tst_iface) -t $NS_DURATION

By default, ltp is using network namespace, so it's probably better
to run the background service there.


> +	tst_res TPASS "Test finished successfully."

No need for it if using EXPECT_PASS as above.

> +}
> +
> +tst_run
> diff --git a/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh b/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh
> new file mode 100755
> index 000000000..4ffde186b
> --- /dev/null
> +++ b/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh
> @@ -0,0 +1,60 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (c) 2006 International Business Machines  Corp.
> +# Copyright (c) 2020 Joerg Vehlow <joerg.vehlow@aox-tech.de>
> +# Author: Mitsuru Chinen <mitch@jp.ibm.com>
> +#
> +# Verify that the kernel is not crashed when joining multiple multicast
> +# groups on separate sockets, then receiving a large number of UDP
> +# packets at each socket
> +
> +TST_NEEDS_ROOT=1
> +. mcast-lib.sh
> +
> +do_setup()
> +{
> +	mcast_setup $MCASTNUM_NORMAL
> +	MCAST_LCMD=ns-mcast_receiver
> +	MCAST_RCMD=ns-udpsender
> +}
> +
> +do_test()
> +{
> +	local mcast_port_range=$(find_portbundle udp 1025 $MCASTNUM_NORMAL)
> +	if [ $? -ne 0 ]; then
> +		tst_brk TBROK "Failed to find enough consecutive free udp ports."
> +	fi
> +	local mcast_port_top=$(echo $mcast_port_range | cut -f 1 -d '-')
> +
> +	local mcastnum=0
> +	while [ $mcastnum -lt $MCASTNUM_NORMAL ]; do
> +		local mcast_port=$((mcast_port_top + mcastnum))
                                       ^
I guess it's fine to use $(tst_get_unused_port ipv${TST_IPVER} dgram) here,
and removing getting the port range.

> +
> +		# Define the multicast address
> +		if [ "$TST_IPV6" ]; then
> +    		local mcastnum_hex=$(printf "%x" $mcastnum)
> +    		local mcast_addr=${MCAST_IPV6_ADDR_PREFIX}:${mcastnum_hex}
> +		else
> +			local x=$((mcastnum / 254))
> +			local y=$((mcastnum % 254 + 1))
> +			local mcast_addr=${MCAST_IPV4_ADDR_PREFIX}.${x}.${y}
> +		fi
> +
> +		# Run a receiver
> +		ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
> +		if [ $? -ne 0 ]; then
> +			tst_brk TBROK "Failed to start multicast receiver"
> +		fi
> +
> +		# Run a sender
> +		tst_rhost_run -s -c "ns-udpsender -D $mcast_addr -f $TST_IPVER -p $mcast_port -m -I $(tst_iface rhost) -b -t $NS_DURATION"
> +
> +		: $((mcastnum += 1))

The same, better swap sender/receiver.

> +	done
> +
> +	sleep $NS_DURATION


It would be nice to have a small loop instead of a single 'sleep' and
periodically check that the background senders are really running...

> +
> +	tst_res TPASS "Test finished successfully."
> +}
> +
> +tst_run
Joerg Vehlow Nov. 19, 2020, 7:49 a.m. UTC | #2
Hi Alexey,
> The following command should support both udp/udp6:
>
> local mcast_port=$(tst_get_unused_port ipv${TST_IPVER} dgram)
Actually find_portbundle doesn't distinguish between ipv6 and ipv4 when 
looking for a window of free ports, so it works for both variants. The 
only thing that can happen, is that it finds no free ports at all, even 
if there are some free ports, but that is probably highly unlikely.
Still I would say: Let's get rid of this function and remove usage as we 
go: I will change it anyway, because I don't like this.
> This check can be replaced with
>
> ROD ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
ACK
> What if we swap sender and receiver, i.e.
>
> local ns_opts="-f $TST_IPVER -p $mcast_port"
>
> tst_rhost_run -s -c "ns-mcast_receiver $ns_opts -I $(tst_iface rhost) -m $mcast_addr -b"
> EXPECT_PASS ns-udpsender -D $mcast_addr $ns_opts -s 32767 -m -I $(tst_iface) -t $NS_DURATION
>
> By default, ltp is using network namespace, so it's probably better
> to run the background service there.
I think the "thing-under-test" here is the receiver, not the sender. I 
don't see any benefit swapping this, it will only move the test to the 
wrong machine, if network namespaces are not in us
>
>> +	done
>> +
>> +	sleep $NS_DURATION
>
> It would be nice to have a small loop instead of a single 'sleep' and
> periodically check that the background senders are really running...
I also don't normally like sleeps, but  actually the way the test is 
implemented at the moment it would make little sense to add all the 
complexity required, to collect pids, to check the senders and implement 
a timeout Right after the last ns-udpsender is started, that runs for 
NS_DURATION, the sleep is executed for NS_DURATION. Even if the sleep 
exits before ns-udpsender, it doesn't matter, because it is just a bit 
earlier and the test time is actually variable. I wouldn't change this 
to be more complex, although I would design it differently, if I would 
implement the this as a new test.
An alternative would be to not background the last ns-udpsender 
execution, but that could be a bit obscure

Jörg
Alexey Kodanev Nov. 19, 2020, 11:57 a.m. UTC | #3
On 19.11.2020 10:49, Joerg Vehlow wrote:
> Hi Alexey,
>> The following command should support both udp/udp6:
>>

Hi Joerg,

>> local mcast_port=$(tst_get_unused_port ipv${TST_IPVER} dgram)
> Actually find_portbundle doesn't distinguish between ipv6 and ipv4 when 
> looking for a window of free ports, so it works for both variants. The 

I see, find_portbundle is just a wrapper for netstat and it's not setting
any address family, so netstat list all.

> only thing that can happen, is that it finds no free ports at all, even 
> if there are some free ports, but that is probably highly unlikely.
> Still I would say: Let's get rid of this function and remove usage as we 
> go: I will change it anyway, because I don't like this.
>> This check can be replaced with
>>
>> ROD ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
> ACK
>> What if we swap sender and receiver, i.e.
>>
>> local ns_opts="-f $TST_IPVER -p $mcast_port"
>>
>> tst_rhost_run -s -c "ns-mcast_receiver $ns_opts -I $(tst_iface rhost) -m $mcast_addr -b"
>> EXPECT_PASS ns-udpsender -D $mcast_addr $ns_opts -s 32767 -m -I $(tst_iface) -t $NS_DURATION
>>
>> By default, ltp is using network namespace, so it's probably better
>> to run the background service there.
> I think the "thing-under-test" here is the receiver, not the sender. I 
> don't see any benefit swapping this, it will only move the test to the 
> wrong machine, if network namespaces are not in us
>>

Both machines are under test.

>>> +	done
>>> +
>>> +	sleep $NS_DURATION
>>
>> It would be nice to have a small loop instead of a single 'sleep' and
>> periodically check that the background senders are really running...
> I also don't normally like sleeps, but  actually the way the test is 
> implemented at the moment it would make little sense to add all the 
> complexity required, to collect pids, to check the senders and implement 
> a timeout Right after the last ns-udpsender is started, that runs for 
> NS_DURATION, the sleep is executed for NS_DURATION. Even if the sleep 
> exits before ns-udpsender, it doesn't matter, because it is just a bit 
> earlier and the test time is actually variable. I wouldn't change this 
> to be more complex, although I would design it differently, if I would 
> implement the this as a new test.
> An alternative would be to not background the last ns-udpsender 
> execution, but that could be a bit obscure

OK
Joerg Vehlow Nov. 19, 2020, 12:05 p.m. UTC | #4
Hi,
> I see, find_portbundle is just a wrapper for netstat and it's not setting
> any address family, so netstat list all.
That's what I was talking about. It lists all used ports and selects 
only ports, that are free on ipv4 and ipv6. For that reason it was "good 
enough". But I already changed it for the next version of the patch.

>> I think the "thing-under-test" here is the receiver, not the sender. I
>> don't see any benefit swapping this, it will only move the test to the
>> wrong machine, if network namespaces are not in us
>>
>> Both machines are under test.
According to the test description, the test is about testing, if the 
kernel crashes, if a huge number of udp packets is RECEIVED. To me this 
sounds like the receiver should be under test and the sender is just 
some dummy. Of course both is tested here if it runs on the same system 
with namespaces. What I still don't see is the benefit of changing 
sender and receiver.

Jörg
diff mbox series

Patch

diff --git a/runtest/net_stress.multicast b/runtest/net_stress.multicast
index 463fe17ab..fff5133f6 100644
--- a/runtest/net_stress.multicast
+++ b/runtest/net_stress.multicast
@@ -6,8 +6,12 @@  mcast4-group-single-socket mcast-group-single-socket
 mcast4-group-multiple-socket mcast-group-multiple-socket
 mcast4-group-same-group mcast-group-same-group
 mcast4-group-source-filter mcast-group-source-filter
+mcast4-pktfld01 mcast-pktfld01.sh
+mcast4-pktfld02 mcast-pktfld02.sh
 
 mcast6-group-single-socket mcast-group-single-socket -6
 mcast6-group-multiple-socket mcast-group-multiple-socket -6
 mcast6-group-same-group mcast-group-same-group -6
 mcast6-group-source-filter mcast-group-source-filter -6
+mcast6-pktfld01 mcast-pktfld01.sh -6
+mcast6-pktfld02 mcast-pktfld02.sh -6
diff --git a/testcases/network/stress/multicast/packet-flood/mcast-pktfld01.sh b/testcases/network/stress/multicast/packet-flood/mcast-pktfld01.sh
new file mode 100755
index 000000000..37e9b1004
--- /dev/null
+++ b/testcases/network/stress/multicast/packet-flood/mcast-pktfld01.sh
@@ -0,0 +1,43 @@ 
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (c) 2006 International Business Machines  Corp.
+# Copyright (c) 2020 Joerg Vehlow <joerg.vehlow@aox-tech.de>
+# Author: Mitsuru Chinen <mitch@jp.ibm.com>
+#
+# Verify that the kernel is not crashed when joining a multicast group with
+# a single socket, then receiving a large number of UDP packets at the socket
+
+TST_NEEDS_ROOT=1
+. mcast-lib.sh
+
+do_setup()
+{
+	mcast_setup $MCASTNUM_NORMAL
+	MCAST_LCMD=ns-mcast_receiver
+	MCAST_RCMD=ns-udpsender
+}
+
+do_test()
+{
+	local mcast_addr="$MCAST_IPV4_ADDR"
+	[ "$TST_IPV6" ] && mcast_addr="$MCAST_IPV6_ADDR"
+
+	# Find the available consecutive ports
+	local mcast_port=$(find_portbundle udp 1025 1)
+	if [ $? -ne 0 ]; then
+		tst_brk TBROK "No free udp port available."
+	fi
+
+	# Run a receiver
+	ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
+	if [ $? -ne 0 ]; then
+		tst_brk TBROK "Failed to start multicast receiver"
+	fi
+
+	# Run a sender
+	tst_rhost_run -s -c "ns-udpsender -D $mcast_addr -f $TST_IPVER -p $mcast_port -s 32767 -m -I $(tst_iface rhost) -t $NS_DURATION"
+
+	tst_res TPASS "Test finished successfully."
+}
+
+tst_run
diff --git a/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh b/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh
new file mode 100755
index 000000000..4ffde186b
--- /dev/null
+++ b/testcases/network/stress/multicast/packet-flood/mcast-pktfld02.sh
@@ -0,0 +1,60 @@ 
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (c) 2006 International Business Machines  Corp.
+# Copyright (c) 2020 Joerg Vehlow <joerg.vehlow@aox-tech.de>
+# Author: Mitsuru Chinen <mitch@jp.ibm.com>
+#
+# Verify that the kernel is not crashed when joining multiple multicast
+# groups on separate sockets, then receiving a large number of UDP
+# packets at each socket
+
+TST_NEEDS_ROOT=1
+. mcast-lib.sh
+
+do_setup()
+{
+	mcast_setup $MCASTNUM_NORMAL
+	MCAST_LCMD=ns-mcast_receiver
+	MCAST_RCMD=ns-udpsender
+}
+
+do_test()
+{
+	local mcast_port_range=$(find_portbundle udp 1025 $MCASTNUM_NORMAL)
+	if [ $? -ne 0 ]; then
+		tst_brk TBROK "Failed to find enough consecutive free udp ports."
+	fi
+	local mcast_port_top=$(echo $mcast_port_range | cut -f 1 -d '-')
+
+	local mcastnum=0
+	while [ $mcastnum -lt $MCASTNUM_NORMAL ]; do
+		local mcast_port=$((mcast_port_top + mcastnum))
+
+		# Define the multicast address
+		if [ "$TST_IPV6" ]; then
+    		local mcastnum_hex=$(printf "%x" $mcastnum)
+    		local mcast_addr=${MCAST_IPV6_ADDR_PREFIX}:${mcastnum_hex}
+		else
+			local x=$((mcastnum / 254))
+			local y=$((mcastnum % 254 + 1))
+			local mcast_addr=${MCAST_IPV4_ADDR_PREFIX}.${x}.${y}
+		fi
+
+		# Run a receiver
+		ns-mcast_receiver -f $TST_IPVER -I $(tst_iface lhost) -m $mcast_addr -p $mcast_port -b
+		if [ $? -ne 0 ]; then
+			tst_brk TBROK "Failed to start multicast receiver"
+		fi
+
+		# Run a sender
+		tst_rhost_run -s -c "ns-udpsender -D $mcast_addr -f $TST_IPVER -p $mcast_port -m -I $(tst_iface rhost) -b -t $NS_DURATION"
+
+		: $((mcastnum += 1))
+	done
+
+	sleep $NS_DURATION
+
+	tst_res TPASS "Test finished successfully."
+}
+
+tst_run
diff --git a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01 b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
deleted file mode 100644
index c1ee513d4..000000000
--- a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
+++ /dev/null
@@ -1,207 +0,0 @@ 
-#!/bin/sh
-
-################################################################################
-##                                                                            ##
-## Copyright (c) International Business Machines  Corp., 2006                 ##
-##                                                                            ##
-## This program is free software;  you can redistribute it and#or modify      ##
-## it under the terms of the GNU General Public License as published by       ##
-## the Free Software Foundation; either version 2 of the License, or          ##
-## (at your option) any later version.                                        ##
-##                                                                            ##
-## This program is distributed in the hope that it will be useful, but        ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
-## for more details.                                                          ##
-##                                                                            ##
-## You should have received a copy of the GNU General Public License          ##
-## along with this program;  if not, write to the Free Software               ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
-##                                                                            ##
-##                                                                            ##
-################################################################################
-#
-# File:
-#   mcast4-pktfld01
-#
-# Description:
-#   Verify that the kernel is not crashed when joining a IPv4 multicast group
-#   a single socket, then receiving a large number of UDP packets at the socket
-#
-# Setup:
-#   See testcases/network/stress/README
-#
-# Author:
-#   Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-#	May 1 2006 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# The test case ID, the test case count and the total number of test case
-TCID=mcast4-pktfld01
-TST_TOTAL=1
-TST_COUNT=1
-export TCID
-export TST_COUNT
-export TST_TOTAL
-
-# Make sure the value of LTPROOT
-LTPROOT=${LTPROOT:-`(cd ../../../../.. ; pwd)`}
-export LTPROOT
-
-# Check the environmanet variable
-. check_envval || exit $TST_TOTAL
-
-# Dulation of the test [sec]
-NS_DURATION=${NS_DURATION:-3600}      # 1 hour
-
-# The number of the test link where tests run
-LINK_NUM=${LINK_NUM:-0}
-
-# Network portion of the IPv4 address
-NETWORK_PART=${IPV4_NETWORK:-"10.0.0"}
-
-# Netmask of the IPv4 network
-NETWORK_MASK=24
-
-# Host portion of the IPv4 address
-LHOST_HOST_PART=${LHOST_IPV4_HOST:-"2"}     # local host
-RHOST_HOST_PART=${RHOST_IPV4_HOST:-"1"}     # remote host
-
-# Multicast Address
-MCAST_ADDR=224.10.0.1
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_cleanup
-#
-# Description:
-#   Recover the system configuration
-#
-#-----------------------------------------------------------------------
-do_cleanup()
-{
-    # Make sure to kill the multicast receiver and sender
-    killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
-    $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-
-    # Clean up each interface
-    initialize_if lhost ${LINK_NUM}
-    initialize_if rhost ${LINK_NUM}
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_setup
-#
-# Description:
-#   Configure the ssystem for the test
-#
-#-----------------------------------------------------------------------
-do_setup()
-{
-    # Initialize the system configuration
-    do_cleanup
-
-    # Call do_cleanup function before exit
-    trap do_cleanup 0
-
-    # Unset the maximum number of processes
-    ulimit -u unlimited
-
-    # name of interface of the local/remote host
-    lhost_ifname=`get_ifname lhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the local host"
-	exit $TST_TOTAL
-    fi
-
-    rhost_ifname=`get_ifname rhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the remote host"
-	exit $TST_TOTAL
-    fi
-
-    # Set IPv4 addresses to the interfaces
-    set_ipv4addr lhost $LINK_NUM $NETWORK_PART $LHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the local host"
-	exit 1
-    fi
-
-    set_ipv4addr rhost $LINK_NUM $NETWORK_PART $RHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the remote host"
-	exit 1
-    fi
-
-    # IPv4 address of the local/remote host
-    lhost_addr="${NETWORK_PART}.${LHOST_HOST_PART}"
-    rhost_addr="${NETWORK_PART}.${RHOST_HOST_PART}"
-
-    # Make sure the connectvity
-    check_icmpv4_connectivity $lhost_ifname $rhost_addr
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "There is no IPv4 connectivity."
-	exit 1
-    fi
-
-    # Make sure the sysctl values
-    sysctl -w net.ipv4.igmp_max_memberships=20 >/dev/null
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to set the sysctl value regarding multicast"
-	exit $TST_TOTAL
-    fi
-
-    sysctl -w net.ipv4.igmp_max_msf=10 >/dev/null
-    sysctl -w net.ipv4.conf.${lhost_ifname}.force_igmp_version=0 >/dev/null
-    sysctl -w net.ipv4.conf.all.force_igmp_version=0 >/dev/null
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Main
-#
-#
-
-# Test description
-tst_resm TINFO "Verify that the kernel is not crashed when joining a IPv4 multicast group a single socket, then receiving a large number of UDP packets at the socket in $NS_DURATION [sec]"
-
-do_setup
-
-# Find the available consecutive ports
-mcast_port=`find_portbundle udp 1025 1`
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "No port is available."
-    exit 1
-fi
-
-# Run a receiver
-ns-mcast_receiver -f 4 -I $lhost_ifname -m $MCAST_ADDR -p $mcast_port -b
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "Failed to start multicast receiver"
-    exit 1
-fi
-
-# Run a sender
-ret=`$LTP_RSH $RHOST ${LTPROOT}/testcases/bin/ns-udpsender -D $MCAST_ADDR -f 4 -p $mcast_port -s 32767 -m -I $rhost_ifname -t $NS_DURATION' ; echo $?'`
-if [ $ret -ne 0 ]; then
-    tst_resm TBROK "Failed to start multicast sender"
-    exit 1
-fi
-
-#-----------------------------------------------------------------------
-#
-# Clean up
-#
-
-tst_resm TPASS "Test is finished successfully."
-exit 0
diff --git a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02 b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
deleted file mode 100644
index b3b6134c3..000000000
--- a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
+++ /dev/null
@@ -1,225 +0,0 @@ 
-#!/bin/sh
-
-################################################################################
-##                                                                            ##
-## Copyright (c) International Business Machines  Corp., 2006                 ##
-##                                                                            ##
-## This program is free software;  you can redistribute it and#or modify      ##
-## it under the terms of the GNU General Public License as published by       ##
-## the Free Software Foundation; either version 2 of the License, or          ##
-## (at your option) any later version.                                        ##
-##                                                                            ##
-## This program is distributed in the hope that it will be useful, but        ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
-## for more details.                                                          ##
-##                                                                            ##
-## You should have received a copy of the GNU General Public License          ##
-## along with this program;  if not, write to the Free Software               ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
-##                                                                            ##
-##                                                                            ##
-################################################################################
-#
-# File:
-#   mcast4-pktfld02
-#
-# Description:
-#   Verify that the kernel is not crashed when joining plural IPv4 multicast
-#   groups on separate sockets, then receiving a large number of UDP packets at
-#   the each socket
-#
-# Setup:
-#   See testcases/network/stress/README
-#
-# Author:
-#   Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-#	May 1 2006 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# The test case ID, the test case count and the total number of test case
-TCID=mcast4-pktfld02
-TST_TOTAL=1
-TST_COUNT=1
-export TCID
-export TST_COUNT
-export TST_TOTAL
-
-LTPROOT=${LTPROOT:-`(cd ../../../../.. ; pwd)`}
-export LTPROOT
-
-# Check the environmanet variable
-. check_envval || exit $TST_TOTAL
-
-# Dulation of the test [sec]
-NS_DURATION=${NS_DURATION:-3600}      # 1 hour
-
-# The number of the test link where tests run
-LINK_NUM=${LINK_NUM:-0}
-
-# Network portion of the IPv4 address
-NETWORK_PART=${IPV4_NETWORK:-"10.0.0"}
-
-# Netmask of the IPv4 network
-NETWORK_MASK=24
-
-# Host portion of the IPv4 address
-LHOST_HOST_PART=${LHOST_IPV4_HOST:-"2"}     # local host
-RHOST_HOST_PART=${RHOST_IPV4_HOST:-"1"}     # remote host
-
-# Prefix of the multicast address
-MCAST_ADDR_PREFIX=224.10
-
-# Number of the multicast connection
-MCASTNUM_NORMAL=${MCASTNUM_NORMAL:-20}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_cleanup
-#
-# Description:
-#   Recover the system configuration
-#
-#-----------------------------------------------------------------------
-do_cleanup()
-{
-    # Make sure to kill the multicast receiver and sender
-    killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
-    $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-
-    # Clean up each interface
-    initialize_if lhost ${LINK_NUM}
-    initialize_if rhost ${LINK_NUM}
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_setup
-#
-# Description:
-#   Configure the ssystem for the test
-#
-#-----------------------------------------------------------------------
-do_setup()
-{
-    # Initialize the system configuration
-    do_cleanup
-
-    # Call do_cleanup function before exit
-    trap do_cleanup 0
-
-    # Unset the maximum number of processes
-    ulimit -u unlimited
-
-    # name of interface of the local/remote host
-    lhost_ifname=`get_ifname lhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the local host"
-	exit $TST_TOTAL
-    fi
-
-    rhost_ifname=`get_ifname rhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the remote host"
-	exit $TST_TOTAL
-    fi
-
-    # Set IPv4 addresses to the interfaces
-    set_ipv4addr lhost $LINK_NUM $NETWORK_PART $LHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the local host"
-	exit 1
-    fi
-
-    set_ipv4addr rhost $LINK_NUM $NETWORK_PART $RHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the remote host"
-	exit 1
-    fi
-
-    # IPv4 address of the local/remote host
-    lhost_addr="${NETWORK_PART}.${LHOST_HOST_PART}"
-    rhost_addr="${NETWORK_PART}.${RHOST_HOST_PART}"
-
-    # Make sure the connectvity
-    check_icmpv4_connectivity $lhost_ifname $rhost_addr
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "There is no IPv4 connectivity."
-	exit 1
-    fi
-
-    # Make sure the sysctl values
-    sysctl -w net.ipv4.igmp_max_memberships=$MCASTNUM_NORMAL >/dev/null
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to set the sysctl value regarding multicast"
-	exit $TST_TOTAL
-    fi
-
-    sysctl -w net.ipv4.igmp_max_msf=10 >/dev/null
-    sysctl -w net.ipv4.conf.${lhost_ifname}.force_igmp_version=0 >/dev/null
-    sysctl -w net.ipv4.conf.all.force_igmp_version=0 >/dev/null
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Main
-#
-#
-
-# Test description
-tst_resm TINFO "Verify that the kernel is not crashed when joining $MCASTNUM_NORMAL IPv4 multicast groups on separate sockets, then receiving a large number of UDP packets at the each socket in $NS_DURATION [sec]"
-
-# Make sure the value of LTPROOT
-do_setup
-
-mcastnum=0
-mcast_port_range=`find_portbundle udp 1025 $MCASTNUM_NORMAL`
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "Failed to get enough port"
-    exit 1
-fi
-mcast_port_top=`echo $mcast_port_range | cut -f 1 -d '-'`
-
-while [ $mcastnum -lt $MCASTNUM_NORMAL ]; do
-    # Define the multicast address
-    x=`expr $mcastnum \/ 254`
-    y=`expr $mcastnum % 254 + 1`
-    if [ $x -gt 254 ]; then
-	tst_resm TINFO "The number of the connection is less than $mcastnum"
-	break
-    fi
-    mcast_addr=${MCAST_ADDR_PREFIX}.${x}.${y}
-
-    # Run a receiver
-    mcast_port=`expr $mcast_port_top + $mcastnum`
-    ns-mcast_receiver -f 4 -I $lhost_ifname -m $mcast_addr -p $mcast_port -b
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to start multicast receiver"
-	exit 1
-    fi
-
-    # Run a sender
-    $LTP_RSH $RHOST ${LTPROOT}/testcases/bin/ns-udpsender -D $mcast_addr -f 4 -p $mcast_port -m -I $rhost_ifname -b -t $NS_DURATION
-
-    mcastnum=`expr $mcastnum + 1`
-done
-
-sleep $NS_DURATION
-do_cleanup
-
-#-----------------------------------------------------------------------
-#
-# Clean up
-#
-
-tst_resm TPASS "Test is finished successfully."
-exit 0
diff --git a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01 b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
deleted file mode 100644
index e9d932b43..000000000
--- a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
+++ /dev/null
@@ -1,203 +0,0 @@ 
-#!/bin/sh
-
-################################################################################
-##                                                                            ##
-## Copyright (c) International Business Machines  Corp., 2006                 ##
-##                                                                            ##
-## This program is free software;  you can redistribute it and#or modify      ##
-## it under the terms of the GNU General Public License as published by       ##
-## the Free Software Foundation; either version 2 of the License, or          ##
-## (at your option) any later version.                                        ##
-##                                                                            ##
-## This program is distributed in the hope that it will be useful, but        ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
-## for more details.                                                          ##
-##                                                                            ##
-## You should have received a copy of the GNU General Public License          ##
-## along with this program;  if not, write to the Free Software               ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
-##                                                                            ##
-##                                                                            ##
-################################################################################
-#
-# File:
-#   mcast6-pktfld01
-#
-# Description:
-#   Verify that the kernel is not crashed when joining a IPv6 multicast group
-#   a single socket, then receiving a large number of UDP packets at the socket
-#
-# Setup:
-#   See testcases/network/stress/README
-#
-# Author:
-#   Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-#	May 6 2006 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# The test case ID, the test case count and the total number of test case
-TCID=mcast6-pktfld01
-TST_TOTAL=1
-TST_COUNT=1
-export TCID
-export TST_COUNT
-export TST_TOTAL
-
-# Make sure the value of LTPROOT
-LTPROOT=${LTPROOT:-`(cd ../../../../.. ; pwd)`}
-export LTPROOT
-
-# Check the environmanet variable
-. check_envval || exit $TST_TOTAL
-
-# Dulation of the test [sec]
-NS_DURATION=${NS_DURATION:-3600}      # 1 hour
-
-# The number of the test link where tests run
-LINK_NUM=${LINK_NUM:-0}
-
-# Network portion of the IPv6 address
-NETWORK_PART="fec0:1:1:1"
-
-# Host portion of the IPv6 address
-LHOST_HOST_PART=":2"     # local host
-RHOST_HOST_PART=":1"     # remote host
-
-# Multicast Address
-MCAST_ADDR=ff0e::1111:1
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_cleanup
-#
-# Description:
-#   Recover the system configuration
-#
-#-----------------------------------------------------------------------
-do_cleanup()
-{
-    # Make sure to kill the multicast receiver and sender
-    killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
-    $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-
-    # Clean up each interface
-    initialize_if lhost ${LINK_NUM}
-    initialize_if rhost ${LINK_NUM}
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_setup
-#
-# Description:
-#   Configure the ssystem for the test
-#
-#-----------------------------------------------------------------------
-do_setup()
-{
-    # Initialize the system configuration
-    do_cleanup
-
-    # Call do_cleanup function before exit
-    trap do_cleanup 0
-
-    # Unset the maximum number of processes
-    ulimit -u unlimited
-
-    # name of interface of the local/remote host
-    lhost_ifname=`get_ifname lhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the local host"
-	exit $TST_TOTAL
-    fi
-
-    rhost_ifname=`get_ifname rhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the remote host"
-	exit $TST_TOTAL
-    fi
-
-    # Set IPv6 addresses to the interfaces
-    add_ipv6addr lhost $LINK_NUM $NETWORK_PART $LHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the local host"
-	exit 1
-    fi
-
-    add_ipv6addr rhost $LINK_NUM $NETWORK_PART $RHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the remote host"
-	exit 1
-    fi
-
-    # IPv6 address of the local/remote host
-    lhost_addr="${NETWORK_PART}:${LHOST_HOST_PART}"
-    rhost_addr="${NETWORK_PART}:${RHOST_HOST_PART}"
-
-    # Make sure the connectvity
-    check_icmpv6_connectivity $lhost_ifname $rhost_addr
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "There is no IPv6 connectivity."
-	exit 1
-    fi
-
-    # Make sure the sysctl values
-    sysctl -w net.ipv6.conf.all.force_mld_version=0 >/dev/null
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to set the sysctl value regarding multicast"
-	exit $TST_TOTAL
-    fi
-
-    sysctl -w net.ipv6.conf.${lhost_ifname}.force_mld_version=0 >/dev/null
-    sysctl -w net.ipv6.mld_max_msf=10 >/dev/null
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Main
-#
-#
-
-# Test description
-tst_resm TINFO "Verify that the kernel is not crashed when joining a IPv6 multicast group a single socket, then receiving a large number of UDP packets at the socket in $NS_DURATION [sec]"
-
-do_setup
-
-# Find the available consecutive ports
-mcast_port=`find_portbundle udp 1025 1`
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "No port is available."
-    exit 1
-fi
-
-# Run a receiver
-ns-mcast_receiver -f 6 -I $lhost_ifname -m $MCAST_ADDR -p $mcast_port -b
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "Failed to start multicast receiver"
-    exit 1
-fi
-
-# Run a sender
-ret=`$LTP_RSH $RHOST ${LTPROOT}/testcases/bin/ns-udpsender -D $MCAST_ADDR -f 6 -p $mcast_port -s 32767 -m -I $rhost_ifname -t $NS_DURATION' ; echo $?'`
-if [ $ret -ne 0 ]; then
-    tst_resm TBROK "Failed to start multicast sender"
-    exit 1
-fi
-
-#-----------------------------------------------------------------------
-#
-# Clean up
-#
-
-tst_resm TPASS "Test is finished successfully."
-exit 0
diff --git a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02 b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02
deleted file mode 100644
index e8187b1a6..000000000
--- a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02
+++ /dev/null
@@ -1,220 +0,0 @@ 
-#!/bin/sh
-
-################################################################################
-##                                                                            ##
-## Copyright (c) International Business Machines  Corp., 2006                 ##
-##                                                                            ##
-## This program is free software;  you can redistribute it and#or modify      ##
-## it under the terms of the GNU General Public License as published by       ##
-## the Free Software Foundation; either version 2 of the License, or          ##
-## (at your option) any later version.                                        ##
-##                                                                            ##
-## This program is distributed in the hope that it will be useful, but        ##
-## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
-## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
-## for more details.                                                          ##
-##                                                                            ##
-## You should have received a copy of the GNU General Public License          ##
-## along with this program;  if not, write to the Free Software               ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
-##                                                                            ##
-##                                                                            ##
-################################################################################
-#
-# File:
-#   mcast6-pktfld02
-#
-# Description:
-#   Verify that the kernel is not crashed when joining plural IPv6 multicast
-#   groups on separate sockets, then receiving a large number of UDP packets at
-#   the each socket
-#
-# Setup:
-#   See testcases/network/stress/README
-#
-# Author:
-#   Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-#	May 1 2006 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# The test case ID, the test case count and the total number of test case
-TCID=mcast6-pktfld02
-TST_TOTAL=1
-TST_COUNT=1
-export TCID
-export TST_COUNT
-export TST_TOTAL
-
-LTPROOT=${LTPROOT:-`(cd ../../../../.. ; pwd)`}
-export LTPROOT
-
-# Check the environmanet variable
-. check_envval || exit $TST_TOTAL
-
-# Dulation of the test [sec]
-NS_DURATION=${NS_DURATION:-3600}      # 1 hour
-
-# The number of the test link where tests run
-LINK_NUM=${LINK_NUM:-0}
-
-# Network portion of the IPv6 address
-NETWORK_PART="fec0:1:1:1"
-
-# Host portion of the IPv6 address
-LHOST_HOST_PART=":2"	# local host
-RHOST_HOST_PART=":1"	# remote host
-
-# Prefix of the multicast address
-MCAST_ADDR_PREFIX=ff0e::1111
-
-# Number of the multicast connection
-MCASTNUM_NORMAL=${MCASTNUM_NORMAL:-20}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_cleanup
-#
-# Description:
-#   Recover the system configuration
-#
-#-----------------------------------------------------------------------
-do_cleanup()
-{
-    # Make sure to kill the multicast receiver and sender
-    killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
-    $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-
-    # Clean up each interface
-    initialize_if lhost ${LINK_NUM}
-    initialize_if rhost ${LINK_NUM}
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function: do_setup
-#
-# Description:
-#   Configure the ssystem for the test
-#
-#-----------------------------------------------------------------------
-do_setup()
-{
-    # Initialize the system configuration
-    do_cleanup
-
-    # Call do_cleanup function before exit
-    trap do_cleanup 0
-
-    # Unset the maximum number of processes
-    ulimit -u unlimited
-
-    # name of interface of the local/remote host
-    lhost_ifname=`get_ifname lhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the local host"
-	exit $TST_TOTAL
-    fi
-
-    rhost_ifname=`get_ifname rhost $LINK_NUM`
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to get the interface name at the remote host"
-	exit $TST_TOTAL
-    fi
-
-    # Set IPv6 addresses to the interfaces
-    add_ipv6addr lhost $LINK_NUM $NETWORK_PART $LHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the local host"
-	exit 1
-    fi
-
-    add_ipv6addr rhost $LINK_NUM $NETWORK_PART $RHOST_HOST_PART
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to add any IP address at the remote host"
-	exit 1
-    fi
-
-    # IPv6 address of the local/remote host
-    lhost_addr="${NETWORK_PART}:${LHOST_HOST_PART}"
-    rhost_addr="${NETWORK_PART}:${RHOST_HOST_PART}"
-
-    # Make sure the connectvity
-    check_icmpv6_connectivity $lhost_ifname $rhost_addr
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "There is no IPv6 connectivity."
-	exit 1
-    fi
-
-    # Make sure the sysctl values
-    sysctl -w net.ipv6.conf.all.force_mld_version=0 >/dev/null
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to set the sysctl value regarding multicast"
-	exit $TST_TOTAL
-    fi
-
-    sysctl -w net.ipv6.conf.${lhost_ifname}.force_mld_version=0 >/dev/null
-    sysctl -w net.ipv6.mld_max_msf=10 >/dev/null
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Main
-#
-#
-
-# Test description
-tst_resm TINFO "Verify that the kernel is not crashed when joining $MCASTNUM_NORMAL IPv6 multicast groups on separate sockets, then receiving a large number of UDP packets at the each socket in $NS_DURATION [sec]"
-
-# Make sure the value of LTPROOT
-do_setup
-
-mcastnum=0
-mcast_port_range=`find_portbundle udp 1025 $MCASTNUM_NORMAL`
-if [ $? -ne 0 ]; then
-    tst_resm TBROK "Failed to get enough port"
-    exit 1
-fi
-mcast_port_top=`echo $mcast_port_range | cut -f 1 -d '-'`
-
-while [ $mcastnum -lt $MCASTNUM_NORMAL ]; do
-    # Define the multicast address
-    if [ $mcastnum -gt 65535 ]; then
-	tst_resm TINFO "The number of the connection is less than 65535"
-	break
-    fi
-    mcastnum_hex=`printf "%x" $mcastnum`
-    mcast_addr=${MCAST_ADDR_PREFIX}:${mcastnum_hex}
-
-    # Run a receiver
-    mcast_port=`expr $mcast_port_top + $mcastnum`
-    ns-mcast_receiver -f 6 -I $lhost_ifname -m $mcast_addr -p $mcast_port -b
-    if [ $? -ne 0 ]; then
-	tst_resm TBROK "Failed to start multicast receiver"
-	exit 1
-    fi
-
-    # Run a sender
-    $LTP_RSH $RHOST ${LTPROOT}/testcases/bin/ns-udpsender -D $mcast_addr -f 6 -p $mcast_port -m -I $rhost_ifname -b -t $NS_DURATION
-
-    mcastnum=`expr $mcastnum + 1`
-done
-
-sleep $NS_DURATION
-do_cleanup
-
-#-----------------------------------------------------------------------
-#
-# Clean up
-#
-
-tst_resm TPASS "Test is finished successfully."
-exit 0