On Wed, Aug 8, 2018 at 11:32 AM, Yifeng Sun <pkusunyif...@gmail.com> wrote:

> Introduce a new test that doesn't setup native gre tunnels but sends
> simulated raw packets.
> This test is supposed to only run for kernel version from 4.4.x to 4.15.x.
>
> Signed-off-by: Yifeng Sun <pkusunyif...@gmail.com>
> ---
>  tests/system-traffic.at | 47 ++++++++++++++++++++++++++++++
> +++++++++++++++++
>  1 file changed, 47 insertions(+)
>
> diff --git a/tests/system-traffic.at b/tests/system-traffic.at
> index cf53c10..dca2bc8 100644
> --- a/tests/system-traffic.at
> +++ b/tests/system-traffic.at
> @@ -575,6 +575,53 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3
> -w 2 10.1.1.100 | FORMAT_PI
>  OVS_TRAFFIC_VSWITCHD_STOP
>  AT_CLEANUP
>
> +AT_SETUP([datapath - ping over gre tunnel by simulated packets])
> +OVS_CHECK_KERNEL(4, 4, 15)
> +
> +OVS_TRAFFIC_VSWITCHD_START()
> +
> +AT_CHECK([ovs-vsctl -- set bridge br0 other-config:hwaddr=\"f2:ff:
> 00:00:00:01\"])
> +ADD_BR([br-underlay], [set bridge br-underlay other-config:hwaddr=\"f2:ff:
> 00:00:00:02\"])
> +
> +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
> +AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"])
> +
> +ADD_NAMESPACES(at_ns0)
> +
> +dnl Set up underlay link from host into the namespace using veth pair.
> +ADD_VETH(p0, at_ns0, br-underlay, "172.31.1.1/24", f2:ff:00:00:00:03)
> +AT_CHECK([ip addr add dev br-underlay "172.31.1.100/24"])
> +AT_CHECK([ip link set dev br-underlay up])
> +
> +dnl Set up tunnel endpoints on OVS outside the namespace.
> +ADD_OVS_TUNNEL([gre], [br0], [at_gre0], [172.31.1.1], [10.1.1.100/24])
> +

+ip netns exec at_ns0 tcpdump -U -i p0 -w p0.pcap &
> +sleep 1
> +
> +dnl First, check the underlay.
> +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 |
> FORMAT_PING], [0], [dnl
> +3 packets transmitted, 3 received, 0% packet loss, time 0ms
> +])
> +
> +dnl We don't actually add gretap port as below, instead, we will
> +dnl emulate one that sends out packets. Suppose its mac address is
> f2:ff:00:00:00:04.
> +dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [
> 10.1.1.1/24])
>

Doesn't ADD_NATIVE_TUNNEL setup native gre tunnels?
And this causes loading the upstream kernel's gre module.

Thanks
William

> +
> +dnl Now, check the overlay by sending out raw arp and icmp packets.
> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=
> f2ff00000002f2ff00000003080045000042ec2c4000402ff3bcac1f0101
> ac1f016400006558fffffffffffff2ff0000000408060001080006040001
> f2ff000000040a0101010000000000000a010164 actions=NORMAL"
> +
> +sleep 1
> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 >
> 172.31.1.1: GREv0, length 46: ARP, Reply 10.1.1.100 is-at
> f2:ff:00:00:00:01 .* length 28" 2>&1 1>/dev/null])
> +
> +ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=
> f2ff00000002f2ff0000000308004500007aec8e4000402ff322ac1f0101
> ac1f016400006558f2ff00000001f2ff00000004080045000054548f4000
> 4001cfb30a0101010a0101640800e6e829270003e1a3435b00000000ff1a
> 050000000000101112131415161718191a1b1c1d1e1f2021222324252627
> 28292a2b2c2d2e2f3031323334353637 actions=NORMAL"
> +
> +sleep 1
> +AT_CHECK([tcpdump -xx -r p0.pcap 2>&1 | egrep "IP 172.31.1.100 >
> 172.31.1.1: GREv0, length 102: IP 10.1.1.100 > 10.1.1.1: ICMP echo reply,
> .* length 64$" 2>&1 1>/dev/null])
> +
> +OVS_TRAFFIC_VSWITCHD_STOP
> +AT_CLEANUP
> +
>  AT_SETUP([datapath - clone action])
>  OVS_TRAFFIC_VSWITCHD_START()
>
> --
> 2.7.4
>
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to