On Mon, Jul 11, 2016 at 11:44 AM, Guru Shetty <g...@ovn.org> wrote:

>
>
> On 11 July 2016 at 11:41, Andy Zhou <az...@ovn.org> wrote:
>
>>
>>
>> On Mon, Jul 11, 2016 at 11:28 AM, Guru Shetty <g...@ovn.org> wrote:
>>
>>> On 11 July 2016 at 10:29, Joe Stringer <j...@ovn.org> wrote:
>>>
>>> > NC_EOF_OPT should always be passed to netcat in system-traffic tests
>>> > when invoking netcat to send a single packet that does not expect a
>>> > response. While on typical fedora/RH based distributions the default
>>> > behaviour is to send the packet then return, there are multiple other
>>> > implementations of netcat that do not do this (for example, those used
>>> > by Debian and Ubuntu by default). For these alternative
>>> implementations,
>>> > we provide $NC_EOF_OPT to ensure that netcat simply sends the packet
>>> > then returns immediately.
>>> >
>>> > Signed-off-by: Joe Stringer <j...@ovn.org>
>>> >
>>>
>>> I did notice the "hang" without this patch. But with this patch, those
>>> tests fail now with:
>>> +nc: invalid option -- 'q'
>>> +Try `nc --help' for more information.
>>>
>>> My nc --version says:
>>>
>>> nc --version
>>> netcat (The GNU Netcat) 0.7.1
>>> Copyright (C) 2002 - 2003  Giovanni Giacobbi
>>>
>>> This program comes with NO WARRANTY, to the extent permitted by law.
>>> You may redistribute copies of this program under the terms of
>>> the GNU General Public License.
>>> For more information about these matters, see the file named COPYING.
>>>
>>> Original idea and design by Avian Research <hob...@avian.org>,
>>> Written by Giovanni Giacobbi <giova...@giacobbi.net>.
>>>
>>
>> On my ubuntu 14.04.2LTS system. There are two possible packages that
>> installs nc,
>> netcat-tradition or netcat-openbsd.  Both versions accepts the -q option,
>> and do not
>> accept --version option. Did you install nc from source by chance?
>>
>
> Yeah. I was trying out different nc versions to get out of the hang and
> ended up compiling from sources. I guess, that is not useful as apparently
> no body uses GNU netcat.
>

That version was released by Jan 2004. and is more than 10 years old. Not
sure how important it is to catch or support this version.

>
>
>
>>
>>>
>>> > ---
>>> >  tests/system-traffic.at | 14 +++++++-------
>>> >  1 file changed, 7 insertions(+), 7 deletions(-)
>>> >
>>> > diff --git a/tests/system-traffic.at b/tests/system-traffic.at
>>> > index 252ed20472f6..d3395d0423d8 100644
>>> > --- a/tests/system-traffic.at
>>> > +++ b/tests/system-traffic.at
>>> > @@ -290,7 +290,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
>>> >  dnl use this file as payload file for ncat
>>> >  AT_CHECK([dd if=/dev/urandom of=payload200.bin bs=200 count=1 2>
>>> > /dev/null])
>>> >  on_exit 'rm -f payload200.bin'
>>> > -NS_CHECK_EXEC([at_ns0], [nc -u 10.1.1.2 1234 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns0], [nc $NC_EOF_OPT -u 10.1.1.2 1234 <
>>> > payload200.bin])
>>> >
>>> >  dnl packet with truncated size
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> > @@ -312,7 +312,7 @@ in_port=1 dl_dst=e6:66:c1:22:22:22
>>> > actions=output(port=2,max_len=100),output:4,o
>>> >  ])
>>> >  AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
>>> >
>>> > -NS_CHECK_EXEC([at_ns0], [nc -u 10.1.1.2 1234 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns0], [nc $NC_EOF_OPT -u 10.1.1.2 1234 <
>>> > payload200.bin])
>>> >
>>> >  dnl 100 + 100 + 242 + min(65535,242) = 684
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> > @@ -346,7 +346,7 @@ This flow is handled by the userspace slow path
>>> > because it:
>>> >  dnl SLOW_ACTION test2: check actual packet truncate
>>> >  AT_CHECK([ovs-ofctl del-flows br0])
>>> >  AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
>>> > -NS_CHECK_EXEC([at_ns0], [nc -u 10.1.1.2 1234 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns0], [nc $NC_EOF_OPT -u 10.1.1.2 1234 <
>>> > payload200.bin])
>>> >
>>> >  dnl 100 + 100 + 242 + min(65535,242) = 684
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> > @@ -428,7 +428,7 @@ priority=1,actions=drop
>>> >  AT_CHECK([ovs-ofctl add-flows br-underlay flows-underlay.txt])
>>> >
>>> >  dnl check tunnel push path, from at_ns1 to at_ns0
>>> > -NS_CHECK_EXEC([at_ns1], [nc -u 10.1.1.1 1234 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns1], [nc $NC_EOF_OPT -u 10.1.1.1 1234 <
>>> > payload200.bin])
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> >
>>> >  dnl Before truncation = ETH(14) + IP(20) + UDP(8) + 200 = 242B
>>> > @@ -441,7 +441,7 @@ n_bytes=138
>>> >  ])
>>> >
>>> >  dnl check tunnel pop path, from at_ns0 to at_ns1
>>> > -NS_CHECK_EXEC([at_ns0], [nc -u 10.1.1.2 5678 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns0], [nc $NC_EOF_OPT -u 10.1.1.2 5678 <
>>> > payload200.bin])
>>> >  dnl After truncation = 100 byte at loopback device p2(4)
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> >  AT_CHECK([ovs-ofctl dump-flows br0 | grep "in_port=4" | awk
>>> > --field-separator=', '  '{print $5}'], [0], [dnl
>>> > @@ -474,7 +474,7 @@ AT_CHECK([ovs-ofctl del-flows br-underlay])
>>> >  AT_CHECK([ovs-ofctl add-flows br-underlay flows-underlay.txt])
>>> >
>>> >  dnl check tunnel push path, from at_ns1 to at_ns0
>>> > -NS_CHECK_EXEC([at_ns1], [nc -u 10.1.1.1 1234 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns1], [nc $NC_EOF_OPT -u 10.1.1.1 1234 <
>>> > payload200.bin])
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> >
>>> >  dnl Before truncation = ETH(14) + IP(20) + UDP(8) + 200 = 242B
>>> > @@ -487,7 +487,7 @@ n_bytes=138
>>> >  ])
>>> >
>>> >  dnl check tunnel pop path, from at_ns0 to at_ns1
>>> > -NS_CHECK_EXEC([at_ns0], [nc -u 10.1.1.2 5678 < payload200.bin])
>>> > +NS_CHECK_EXEC([at_ns0], [nc $NC_EOF_OPT -u 10.1.1.2 5678 <
>>> > payload200.bin])
>>> >  dnl After truncation = 100 byte at loopback device p2(4)
>>> >  AT_CHECK([ovs-appctl revalidator/purge], [0])
>>> >  AT_CHECK([ovs-ofctl dump-flows br0 | grep "in_port=4" | awk
>>> > --field-separator=', '  '{print $5}'], [0], [dnl
>>> > --
>>> > 2.9.0
>>> >
>>> > _______________________________________________
>>> > dev mailing list
>>> > dev@openvswitch.org
>>> > http://openvswitch.org/mailman/listinfo/dev
>>> >
>>> _______________________________________________
>>> dev mailing list
>>> dev@openvswitch.org
>>> http://openvswitch.org/mailman/listinfo/dev
>>>
>>
>>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to