All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <haliu@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCHv3 3/3] network/stress/icmp: use ip xfrm for icmp4-uni-basic01 ipsec testing
Date: Mon, 28 Mar 2016 22:33:43 +0800	[thread overview]
Message-ID: <20160328143343.GJ8609@Leo.nay.redhat.com> (raw)
In-Reply-To: <56F902BE.5040306@oracle.com>

Hi Alexey,

On Mon, Mar 28, 2016 at 01:09:02PM +0300, Alexey Kodanev wrote:
> Hi,
> On 03/23/2016 04:30 PM, Hangbin Liu wrote:
> >Hi,
> >On Wed, Mar 23, 2016 at 11:21:37AM +0300, Alexey Kodanev wrote:
> >>Hi,
> >>>>>@@ -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.
> >>>This is not work. Because test_net.sh will set TST_IPV6= , and icmp4-uni-basic01
> >>>need source it before test. The relation looks like
> >>>
> >>>icmp6-uni-basic01
> >>>   . icmp4-uni-basic01
> >>>     . ipsec_lib.sh
> >>>       . test_net.sh
> >>>
> >>>If we want to use like ipv=${TST_IPV6:-4}, we need source test_net.sh in all
> >>>sub-testcases instead of in ipsec_lib.sh. Which will like
> >>>
> >>>icmp6-uni-basic01
> >>>   . test_net.sh
> >>>   . icmp4-uni-basic01
> >>>     . ipsec_lib.sh
> >>Could you add "ipv=..." to ipsec_lib.sh and we wouldn't set it in every
> >>test-case?
> >the IP_VER is to describe what the test run for. We shouldn't add it in
> >ipsec_lib.sh. There is no relations between them.
> 
> Looking at the tests structure there... basically, one file implements
> test-cases
> and the rest scripts source the first one along with changing a few
> parameters.
> I think it's better to leave only one file there and remove the rest.
> 
> icmp4-uni-basic01 -> icmp-uni-basic.
> 
> May be moving them all to the upper directory, so in the end we should have
> only 3 tests:
> icmp_multi_diffip.sh
> icmp_multi_diffnic.sh
> icmp_uni_basic.sh
> 
> Then, we could define each test-case in "runtests/", using env vars and
> parameters.

Does it looks like

icmp4-uni-basic01 icmp-uni-basic
icmp4-uni-basic02 DO_IPSEC=true IPSEC_PROTO=ah IPSEC_MODE=transport ICMP_SIZE_ARRAY="10 100 1000 10000 65483"; icmp-uni-basic
...
icmp6-uni-basic01 icmp-uni-basic -6
icmp6-uni-basic02 DO_IPSEC=true IPSEC_PROTO=ah IPSEC_MODE=transport ICMP_SIZE_ARRAY="10 100 1000 10000 65503"; icmp-uni-basic -6

> 
> >
> >>BTW, does the attached patch help in the first case (added export to
> >>TST_IPV6)?
> >I'm afraid not. I'd tried to use like
> >
> >icmp4-uni-basic01 icmp4-uni-basic01
> >icmp6-uni-basic01 icmp4-uni-basic01 -6
> >
> >Then I find this is not only different of IP version, ipsec protocol, mode. But
> >also different message sizes. So I give up to use like that.
> >
> >>
> >>>>-# 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().
> >>>Yes, we need to make sure ipsec can handle all kinds of message size. But we
> >>>could not make it in tst_ping because ah/esp and tunnel/transport have
> >>>different header length. e.g. when there is no ipsec, the max playload is
> >>>65507. If we test ah + transport, the max playload is 65483. etc. It's hard to
> >>>make tst_ping to handle all these scenarios.
> >>I thought we could add variable length parameters, something like this
> >>
> >>tst_ping p1 ... pN $ICMP_SIZE_ARRAY
> >>
> >>tst_ping()
> >>{
> >>     local msg_sizes=${@:N+1}
> >>
> >>     for size in msg_sizes; do
> >>     ...
> >>}
> >I think tst_ping() is a unit test to check the connectivity, we do not need to
> >add everything inside. Most time we only need to make sure the rhost is
> >online. Let's make the test case deside what message size they want to test.
> >
> >How to you think?
> 
> I still think we should add it to the library. tst_ping replaces
> 'icmp4/6_check_connectivity'. And adding variable message size there,
> will replace ns-echoclient library tool.

I did't find icmp4/6_check_connectivity will do icmp msg_size check. But anyway,
here is a msg_sizes version. how do you think? should we use ROD ping... directly?

tst_ping()
{
        # The max number of ICMP echo request
        PING_MAX=${PING_MAX:-"10"}

        local src_iface=${1:-"$(tst_iface)"}
        local dst_addr=${2:-"$(tst_ipaddr rhost)"}
        # ping cmd use 56 as default message size
        local msg_sizes=${3:-"56"}

        for size in $msg_sizes; do
                ping$TST_IPV6 -I $src_iface -c $PING_MAX $dst_addr \
                        -s $msg_size > /dev/null 2>&1
                if [ $? -ne 0 ]; then
                        tst_brkm TBROK "There is no IPv${IP_VER:-4} connectivity with msg_size $msg_size"
                else
                        tst_resm TPASS "There is IPv${IP_VER:-4} connectivity with msg_size $msg_size"
                fi
        done
}

Thanks & Best Regards
Hangbin Liu

  reply	other threads:[~2016-03-28 14:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-17 10:04 [LTP] [PATCHv3 0/3] networking/stress: add ip xfrm ipsec support Hangbin Liu
2016-03-17 10:04 ` [LTP] [PATCHv3 1/3] lib/test_net.sh: add tst_ping() to check icmp connectivity Hangbin Liu
2016-03-17 10:04 ` [LTP] [PATCHv3 2/3] network/stress: add ipsec lib Hangbin Liu
2016-03-22 12:51   ` Alexey Kodanev
2016-03-22 13:36     ` Hangbin Liu
2016-03-17 10:04 ` [LTP] [PATCHv3 3/3] network/stress/icmp: use ip xfrm for icmp4-uni-basic01 ipsec testing Hangbin Liu
2016-03-22 13:34   ` Alexey Kodanev
2016-03-23  2:02     ` Hangbin Liu
2016-03-23  8:21       ` Alexey Kodanev
2016-03-23 13:30         ` Hangbin Liu
2016-03-28 10:09           ` Alexey Kodanev
2016-03-28 14:33             ` Hangbin Liu [this message]
2016-03-30 12:41               ` Alexey Kodanev
2016-04-06  7:52                 ` Hangbin Liu
2016-04-06  9:49                   ` Alexey Kodanev
2016-04-06 12:58                     ` Hangbin Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160328143343.GJ8609@Leo.nay.redhat.com \
    --to=haliu@redhat.com \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.