146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#!/bin/sh
246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed################################################################################
446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## Copyright (c) International Business Machines  Corp., 2006                 ##
646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## This program is free software;  you can redistribute it and#or modify      ##
846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## it under the terms of the GNU General Public License as published by       ##
946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## the Free Software Foundation; either version 2 of the License, or          ##
1046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## (at your option) any later version.                                        ##
1146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
1246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## This program is distributed in the hope that it will be useful, but        ##
1346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
1446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
1546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## for more details.                                                          ##
1646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
1746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## You should have received a copy of the GNU General Public License          ##
1846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed## along with this program;  if not, write to the Free Software               ##
194548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
2046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
2146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed##                                                                            ##
2246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed################################################################################
2346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
2446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# File:
2546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   route4-change-dst
2646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
2746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Description:
2846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   Verify the kernel is not crashed when the destination of an IPv4 route is
2946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   changed frequently
3046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#    test01 - by route command
3146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#    test02 - by ip command
3246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
3346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Setup:
3446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   See ltp-yyyymmdd/testcases/network/stress/README
3546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
3646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Author:
3746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   Mitsuru Chinen <mitch@jp.ibm.com>
3846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
3946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# History:
4046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#	Mar 16 2006 - Created (Mitsuru Chinen)
4146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
4246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
4346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Uncomment line below for debug output.
4446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#trace_logic=${trace_logic:-"set -x"}
4546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed$trace_logic
4646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
4746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Make sure the value of LTPROOT
4846f7634ef83cb4210123aed0ccbf62b0f04605c4mreedLTPROOT=${LTPROOT:-`(cd ../../../../ ; pwd)`}
4946f7634ef83cb4210123aed0ccbf62b0f04605c4mreedexport LTPROOT
5046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
5146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Total number of the test case
5246f7634ef83cb4210123aed0ccbf62b0f04605c4mreedTST_TOTAL=2
5346f7634ef83cb4210123aed0ccbf62b0f04605c4mreedexport TST_TOTAL
5446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
5546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Default of the test case ID and the test case count
5646f7634ef83cb4210123aed0ccbf62b0f04605c4mreedTCID=route4-change-dst
5746f7634ef83cb4210123aed0ccbf62b0f04605c4mreedTST_COUNT=0
5846f7634ef83cb4210123aed0ccbf62b0f04605c4mreedexport TCID
5946f7634ef83cb4210123aed0ccbf62b0f04605c4mreedexport TST_COUNT
6046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
6146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Check the environmanet variable
62dabc620430264c191330e5b0b1603ad1d064d8b4vapier. check_envval || exit $TST_TOTAL
6346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
6446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# The number of times where route is changed
6546f7634ef83cb4210123aed0ccbf62b0f04605c4mreedNS_TIMES=${NS_TIMES:-10000}
6646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
6746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# The number of the test link where tests run
6846f7634ef83cb4210123aed0ccbf62b0f04605c4mreedLINK_NUM=${LINK_NUM:-0}
6946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
7046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Network portion of the IPv4 address
718dd5f6aed661ad22472f0ee96913bd42fe3d99a9subrata_modakIPV4_NETWORK=${IPV4_NETWORK:-"10.0.0"}
7246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
7346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Netmask of for the tested network
7446f7634ef83cb4210123aed0ccbf62b0f04605c4mreedIPV4_NETMASK="255.255.255.0"
7546f7634ef83cb4210123aed0ccbf62b0f04605c4mreedIPV4_NETMASK_NUM=24
7646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
7746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Broadcast address of the tested network
7846f7634ef83cb4210123aed0ccbf62b0f04605c4mreedIPV4_BROADCAST=${IPV4_NETWORK}.255
7946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
8046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Host portion of the IPv4 address
818dd5f6aed661ad22472f0ee96913bd42fe3d99a9subrata_modakLHOST_IPV4_HOST=${LHOST_IPV4_HOST:-"2"}	# src
828dd5f6aed661ad22472f0ee96913bd42fe3d99a9subrata_modakRHOST_IPV4_HOST=${RHOST_IPV4_HOST:-"1"}	# gateway
8346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
8446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# The destination network
8546f7634ef83cb4210123aed0ccbf62b0f04605c4mreedDST_NETWORK_PREFIX="10.10"	# destination network would be 10.10.n.0/24
8646f7634ef83cb4210123aed0ccbf62b0f04605c4mreedDST_HOST="5"
8746f7634ef83cb4210123aed0ccbf62b0f04605c4mreedDST_PORT="7"
8846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
8946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
9046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
9146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
9246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# NAME:
9346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   do_setup
9446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
9546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# DESCRIPTION:
9646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   Make a IPv4 connectivity
9746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
9846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# SET VALUES:
9946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   rhost_ipv4addr	- IPv4 Address of the remote host
10046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   lhost_ifname	- Interface name of the local host
10146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   rhost_ifname	- Interface name of the remote host
10246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
10346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
10446f7634ef83cb4210123aed0ccbf62b0f04605c4mreeddo_setup()
10546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed{
10646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    TCID=route4-change-dst
10746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    TST_COUNT=0
10846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
10946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Initialize the interfaces of the remote host
11046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    initialize_if rhost ${LINK_NUM}
11146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
11246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Set IPv4 address to the interfaces
11346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    set_ipv4addr rhost ${LINK_NUM} ${IPV4_NETWORK} ${RHOST_IPV4_HOST}
11446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    if [ $? -ne 0 ]; then
11546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "Failed to add an IPv4 address the remote host"
11646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	exit $TST_TOTAL
11746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    fi
11846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
11946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # IPv4 address of the remote host (gateway)
12046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    rhost_ipv4addr="${IPV4_NETWORK}.${RHOST_IPV4_HOST}"
12146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
12246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Get the Interface name of local host
12346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    lhost_ifname=`get_ifname lhost ${LINK_NUM}`
12446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    if [ $? -ne 0 ]; then
12546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "Failed to get the interface name at the local host"
12646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	exit $TST_TOTAL
12746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    fi
12846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
12946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Get the Interface name of remote host
13046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    rhost_ifname=`get_ifname rhost ${LINK_NUM}`
13146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    if [ $? -ne 0 ]; then
13246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "Failed to get the interface name at the remote host"
13346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	exit $TST_TOTAL
13446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    fi
13546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed}
13646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
13746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
13846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
13946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
14046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
14146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# NAME:
14246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   do_cleanup
14346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
14446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# DESCRIPTION:
14546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   Recover the tested interfaces
14646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
14746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
14846f7634ef83cb4210123aed0ccbf62b0f04605c4mreeddo_cleanup()
14946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed{
15046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Initialize the interfaces
15146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    initialize_if lhost ${LINK_NUM}
15246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    initialize_if rhost ${LINK_NUM}
15346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed}
15446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
15546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
15646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
15746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
15846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# FUNCTION:
15946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   test_body
16046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
16146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# DESCRIPTION:
16246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   main code of the test
16346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
16446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Arguments:
16546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   $1: define the test type
16646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#       1 - route command case
16746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#       2 - ip command case
16846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
16946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
17046f7634ef83cb4210123aed0ccbf62b0f04605c4mreedtest_body()
17146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed{
17246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    test_type=$1
17346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
17446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    TCID=route4-change-dst0${test_type}
17546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    TST_COUNT=$test_type
17646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
17746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    case $test_type in
17846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	1)
17946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	test_command="route"
18046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	;;
18146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	2)
18246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	test_command="ip"
18346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	;;
18446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	*)
18546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "unspecified case"
18646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	return 1
18746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	;;
18846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    esac
18946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
19046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    tst_resm TINFO "Verify the kernel is not crashed when the destination of an IPv4 route is changed frequently by $test_command command in $NS_TIMES times"
19146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
19246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Initialize the interface of the local host
19346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    initialize_if lhost ${LINK_NUM}
19446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
19546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Assign IPv4 address to the interface of the local host
19646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    set_ipv4addr lhost ${LINK_NUM} ${IPV4_NETWORK} ${LHOST_IPV4_HOST}
19746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    if [ $? -ne 0 ]; then
19846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "Failed to assign an IPv4 address at the local host"
19946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	return 1
20046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    fi
20146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    lhost_ipv4addr="${IPV4_NETWORK}.${LHOST_IPV4_HOST}"
20246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
20346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Check the connectivity to the gateway
20446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    check_icmpv4_connectivity $lhost_ifname $rhost_ipv4addr
20546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    if [ $? -ne 0 ]; then
20646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	tst_resm TBROK "Test Link $LINK_NUM is somthing wrong."
20746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	return 1
20846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    fi
20946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
21046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    # Start the loop
21146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    cnt=0
21246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    while [ $cnt -lt $NS_TIMES ]; do
21346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	# Define the destination IP address
21437550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman	dst_network_postfix=`expr $cnt % 255`
21546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	dst_addr=${DST_NETWORK_PREFIX}.${dst_network_postfix}.${DST_HOST}
21646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	dst_network=${DST_NETWORK_PREFIX}.${dst_network_postfix}.0
21746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
21846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	# Add the route
21946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	case $test_type in
22046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    1)
22146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    route add -net $dst_network netmask 255.255.255.0 gw $rhost_ipv4addr dev $lhost_ifname
22246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ;;
22346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    2)
22446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ip route add ${dst_network}/24 via $rhost_ipv4addr dev $lhost_ifname
22546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ;;
22646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	esac
22746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	if [ $? -ne 0 ]; then
22846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    tst_resm TFAIL "Failed to add the route to ${dst_network}/24"
22946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    return 1
23046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	fi
23146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
23246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	# Load the route with UDP datagram
23346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	ns-udpsender -f 4 -D $dst_addr -p $DST_PORT -o -s 1472
23446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	if [ $? -ne 0 ]; then
23546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    tst_resm TFAIL "Failed to run a UDP datagram sender"
23646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    return 1
23746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	fi
23846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
23946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	# Delete the route
24046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	case $test_type in
24146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    1)
24246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    route del -net $dst_network netmask 255.255.255.0 gw $rhost_ipv4addr dev $lhost_ifname
24346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ;;
24446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    2)
24546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ip route del ${dst_network}/24 via $rhost_ipv4addr dev $lhost_ifname
24646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    ;;
24746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	esac
24846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	if [ $? -ne 0 ]; then
24946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    tst_resm TFAIL "Cannot delte the route to ${ADDDEL_ROUTE}"
25046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	    return 1
25146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	fi
25246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
25346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed	cnt=`expr $cnt + 1`
25446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    done
25546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
25646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    tst_resm TPASS "Test is finished correctly."
25746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed    return 0
25846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed}
25946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
26046f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
26146f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
26246f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
26346f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Main
26446f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
26546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed# Exit Value:
26646f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#   The number of the failure
26746f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#
26846f7634ef83cb4210123aed0ccbf62b0f04605c4mreed#-----------------------------------------------------------------------
26946f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
27046f7634ef83cb4210123aed0ccbf62b0f04605c4mreedRC=0
27146f7634ef83cb4210123aed0ccbf62b0f04605c4mreeddo_setup
27246f7634ef83cb4210123aed0ccbf62b0f04605c4mreedtest_body 1 || RC=`expr $RC + 1`      # Case of route command
27346f7634ef83cb4210123aed0ccbf62b0f04605c4mreedtest_body 2 || RC=`expr $RC + 1`      # Case of ip command
27446f7634ef83cb4210123aed0ccbf62b0f04605c4mreeddo_cleanup
27546f7634ef83cb4210123aed0ccbf62b0f04605c4mreed
27646f7634ef83cb4210123aed0ccbf62b0f04605c4mreedexit $RC
277