[LTP] [PATCHv3 3/3] network/stress/icmp: use ip xfrm for icmp4-uni-basic01 ipsec testing

Alexey Kodanev alexey.kodanev@oracle.com
Tue Mar 22 14:34:52 CET 2016


On 03/17/2016 01:04 PM, Hangbin Liu wrote:
> Also check each msg_size in $ICMP_SIZE_ARRAY to make sure the connectvity.
>
> Signed-off-by: Hangbin Liu <haliu@redhat.com>
> ---
>   .../stress/icmp/uni-basic/icmp4-uni-basic01        | 160 ++++-----------------
>   1 file changed, 24 insertions(+), 136 deletions(-)
>
> diff --git a/testcases/network/stress/icmp/uni-basic/icmp4-uni-basic01 b/testcases/network/stress/icmp/uni-basic/icmp4-uni-basic01
> index b78ac8f..7c23cc7 100644
> --- a/testcases/network/stress/icmp/uni-basic/icmp4-uni-basic01
> +++ b/testcases/network/stress/icmp/uni-basic/icmp4-uni-basic01
> @@ -42,17 +42,13 @@
>   #	Oct 19 2005 - 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=${TCID:-icmp4-uni-basic01}
>   TST_TOTAL=1
>   TST_COUNT=1
> -export TCID
> -export TST_COUNT
> -export TST_TOTAL
> +TST_CLEANUP="do_cleanup"
> +
> +. ipsec_lib.sh
>   
>   # Test description
>   tst_resm TINFO "Verify that the kernel is not crashed with receiving and sending various size of ICMP message with the following conditions"
> @@ -61,9 +57,6 @@ tst_resm TINFO "Verify that the kernel is not crashed with receiving and sending
>   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
>   

I'd remove defining these variables here... in the test. Weshouldhave 
them already
defined in network.sh or it could be done in test_net.sh in case we're 
not going to
runnetwork.sh.

> @@ -72,6 +65,7 @@ LINK_NUM=${LINK_NUM:-0}
>   
>   # The version of IP
>   IP_VER=${IP_VER:-4}
> +[ $IP_VER -eq 6 ] && TST_IPV6=6
>   

just "ipv=${TST_IPV6:-4}" instead of two lines.

>   # true, if ipsec is used
>   DO_IPSEC=${DO_IPSEC:-false}
> @@ -100,16 +94,8 @@ ICMP_SIZE_ARRAY=${ICMP_SIZE_ARRAY:-"10 100 1000 10000 65507"}
>   #-----------------------------------------------------------------------
>   do_cleanup()
>   {
> -    # Kill the icmp traffic server
> -    killall_icmp_traffic
> -
>       # Unset SAD/SPD
> -    output_ipsec_conf flush | setkey -c >/dev/null 2>&1
> -    $LTP_RSH $RHOST ${LTPROOT}/'testcases/bin/output_ipsec_conf flush | PATH=/sbin:/usr/sbin:$PATH setkey -c' >/dev/null 2>&1
> -
> -    # Clean up each interface
> -    initialize_if lhost ${LINK_NUM}
> -    initialize_if rhost ${LINK_NUM}
> +    tst_ipsec flush
> }

TST_CLEANUP=tst_ipsec_cleanup

>   @@ -127,10 +113,9 @@ tst_resm TINFO "- Version of IP is IPv${IP_VER}"
>   tst_resm TINFO "- Size of packets are ( $ICMP_SIZE_ARRAY )"
>   
>   if $DO_IPSEC ; then
> -    message=`check_setkey`
> +    message=`ip xfrm state`
>       if [ $? -ne 0 ]; then
> -	tst_resm TBROK "$message"
> -	exit 1
> +	tst_brkm TBROK "$message"
>       fi
>   
>       case $IPSEC_PROTO in
> @@ -147,16 +132,14 @@ if $DO_IPSEC ; then
>   fi
>   
>   # name of interface of the local/remote host
> -lhost_ifname=`get_ifname lhost $LINK_NUM`
> +lhost_ifname=`tst_iface lhost $LINK_NUM`
>   if [ $? -ne 0 ]; then
> -    tst_resm TBROK "Failed to get the interface name at the local host"
> -    exit $TST_TOTAL
> +    tst_brkm TBROK "Failed to get the interface name at the local host"

These checks seems useless.

>   fi
>   
> -rhost_ifname=`get_ifname rhost $LINK_NUM`
> +rhost_ifname=`tst_iface rhost $LINK_NUM`
>   if [ $? -ne 0 ]; then
> -    tst_resm TBROK "Failed to get the interface name at the remote host"
> -    exit $TST_TOTAL
> +    tst_brkm TBROK "Failed to get the interface name at the remote host"
>   fi

Here as well.

>   
>   # Initialize the system configuration
> @@ -165,125 +148,30 @@ do_cleanup
>   # Call do_cleanup function before exit
>   trap do_cleanup 0
>   
> -# Configurate IP addresses
> -case $IP_VER in
> -    4)
> -    # 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
> -
> -    # 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}"
> -    ;;
> -
> -    6)
> -    # Network portion of the IPv6 address
> -    network_part="fd00:1:1:1"
> -
> -    # Netmask of the IPv6 network
> -    network_mask=64
> -
> -    # Host portion of the IPv6 address
> -    lhost_host_part=":2"     # local host
> -    rhost_host_part=":1"     # remote host
> -
> -    # 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}"
> -    ;;
> -
> -    *)
> -    tst_resm TBROK "Unknown IP version"
> -    ;;
> -esac
> +lhost_addr=$(tst_ipaddr)
> +rhost_addr=$(tst_ipaddr rhost)
>   
>   # Configure SAD/SPD
>   if $DO_IPSEC ; then
> -    ipsec_log=`mktemp -p $TMPDIR`
> -
> -    output_ipsec_conf src \
> -	$IPSEC_PROTO $IPSEC_MODE $SPI $lhost_addr $rhost_addr \
> -	    |  setkey -c 2>&1 | tee $ipsec_log
> -    if [ $? -ne 0 -o -s $ipsec_log ]; then
> -	tst_resm TBROK "Failed to configure SAD/SPD on the local host."
> -	rm -f $ipsec_log
> -	exit 1
> -    fi
> -
> -    $LTP_RSH $RHOST ${LTPROOT}/testcases/bin/output_ipsec_conf dst $IPSEC_PROTO $IPSEC_MODE $SPI $lhost_addr $rhost_addr' | PATH=/sbin:/usr/sbin:$PATH setkey -c' 2>&1 | tee $ipsec_log
> -    if [ $? -ne 0 -o -s $ipsec_log ]; then
> -	tst_resm TBROK "Failed to configure SAD/SPD on the remote host."
> -	rm -f $ipsec_log
> -	exit 1
> -    fi
> -    rm -f $ipsec_log
> +    tst_ipsec src $IPSEC_PROTO $IPSEC_MODE $SPI $lhost_addr $rhost_addr
> +    tst_ipsec dst $IPSEC_PROTO $IPSEC_MODE $SPI $rhost_addr $lhost_addr
>   fi
>   
> -# Make sure the connectvity
> -case $IP_VER in
> -    4)
> -    ret=`$LTP_RSH $RHOST ${LTPROOT}/testcases/bin/check_icmpv4_connectivity $rhost_ifname $lhost_addr' ; echo $?'`
> -    if [ $ret -ne 0 ]; then
> -	tst_resm TBROK "There is no IPv4 connectivity."
> -	exit 1
> -    fi
> -    ;;
> -
> -    6)
> -    ret=`$LTP_RSH $RHOST ${LTPROOT}/testcases/bin/check_icmpv6_connectivity $rhost_ifname $lhost_addr' ; echo $?'`
> -    if [ $ret -ne 0 ]; then
> -	tst_resm TBROK "There is no IPv6 connectivity."
> -	exit 1
> -    fi
> -    ;;
> -esac
> -
> -
>   #-----------------------------------------------------------------------
>   #
>   # Main
>   #
>   #
>   
> -# Run a client
> -$LTP_RSH $RHOST "${LTPROOT}/testcases/bin/ns-echoclient -S $lhost_addr -f $IP_VER -s \"$ICMP_SIZE_ARRAY\"" &
> -
> -sleep $NS_DURATION
> -killall_icmp_traffic
> -wait
> +# Make sure the connectvity
> +for msg_size in $ICMP_SIZE_ARRAY; do
> +    tst_ping $lhost_ifname $rhost_addr $msg_size
> +    if [ $? -ne 0 ]; then
> +        tst_brkm TBROK "There is no IPv$IP_VER connectivity with msg_size $msg_size"
> +    else
> +        tst_resm TPASS "There has IPv$IP_VER connectivity with msg_size $msg_size"
> +    fi
> +done


Is it really needed to ping with different message sizes? if yes, we 
couldadd this
functionality to tst_ping().

Best regards,
Alexey


More information about the ltp mailing list