diff mbox

[ovs-dev,2/2] tunnel-tests: Add test to match tunnel traffic.

Message ID D89BA711-41C6-4D09-83C4-9B2F720853D1@vmware.com
State Superseded
Headers show

Commit Message

Darrell Ball May 9, 2017, 12:10 a.m. UTC
I added in the following incremental which eliminates unnecessary/misleading parts,
fixes some misleading/incorrect comments and removes redundant parts.


dball@ubuntu:~/ovs$ git diff tests/tunnel-push-pop.at




On 5/8/17, 11:15 AM, "ovs-dev-bounces@openvswitch.org on behalf of Joe Stringer" <ovs-dev-bounces@openvswitch.org on behalf of joe@ovn.org> wrote:

    From: William Tu <u9012063@gmail.com>
    
    This test highlights a bug that was affecting master up until the
    previous patch. Put simply, we have two bridges: an integration bridge
    which contains a tunnel, and a physical bridge for underlay network
    connectivity. This test simulates putting UDP traffic through the
    integration bridge, with the intention to apply GRE tunnel headers and
    send the packet through the underlay bridge. The underlay bridge should
    observe GRE traffic.
    ---
     tests/tunnel-push-pop.at | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
     1 file changed, 69 insertions(+)
    
    diff --git a/tests/tunnel-push-pop.at b/tests/tunnel-push-pop.at
    index 4eeac4154dbc..fe901525ea62 100644
    --- a/tests/tunnel-push-pop.at
    +++ b/tests/tunnel-push-pop.at
    @@ -225,3 +225,72 @@ OVS_WAIT_UNTIL([test `ovs-pcap p0.pcap | grep 50540000000a5054000000091235 | wc
     
     OVS_VSWITCHD_STOP
     AT_CLEANUP
    +
    +AT_SETUP([tunnel_push_pop - matching on physical bridge])
    +
    +OVS_VSWITCHD_START([add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00])
    +AT_CHECK([ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy], [0])
    +AT_CHECK([ovs-vsctl add-port int-br t1 -- set Interface t1 type=gre \
    +                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=3], [0])
    +
    +AT_CHECK([ovs-appctl dpif/show], [0], [dnl
    +dummy@ovs-dummy: hit:0 missed:0
    +	br0:
    +		br0 65534/100: (dummy-internal)
    +		p0 1/1: (dummy)
    +	int-br:
    +		int-br 65534/2: (dummy-internal)
    +		t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
    +])
    +
    +AT_CHECK([ovs-appctl dpif/show], [0], [dnl
    +dummy@ovs-dummy: hit:0 missed:0
    +	br0:
    +		br0 65534/100: (dummy-internal)
    +		p0 1/1: (dummy)
    +	int-br:
    +		int-br 65534/2: (dummy-internal)
    +		t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
    +])
    +
    +AT_CHECK([ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24], [0], [OK
    +])
    +AT_CHECK([ovs-appctl ovs/route/add 1.1.2.92/24 br0], [0], [OK
    +])
    +AT_CHECK([ovs-ofctl add-flow br0 'priority=1,action=normal'])
    +
    +dnl Check ARP request
    +AT_CHECK([ovs-vsctl -- set Interface p0 options:pcap=p0.pcap])
    +AT_CHECK([ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'])
    +
    +dnl Check ARP Snoop
    +AT_CHECK([ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'])
    +
    +AT_CHECK([ovs-appctl tnl/neigh/show | tail -n+3 | sort], [0], [dnl
    +1.1.2.92                                      f8:bc:12:44:34:b6   br0
    +])
    +
    +AT_CHECK([ovs-appctl tnl/ports/show |sort], [0], [dnl
    +Listening ports:
    +gre_sys (3)
    +])
    +
    +AT_CHECK([ovs-ofctl add-flow br0 'priority=99,udp,action=normal'])
    +
    +dnl Check GRE tunnel push
    +AT_CHECK([ovs-ofctl add-flow int-br action=3])
    +
    +AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=4789)'], [0], [stdout])
    +AT_CHECK([tail -1 stdout], [0],
    +  [Datapath actions: tnl_push(tnl_port(3),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x2000,proto=0x6558),key=0x1c8)),out_port(100))
    +])
    +
    +AT_CHECK([ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'])
    +AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl)
    + n_packets=3, n_bytes=140, priority=1 actions=NORMAL
    + priority=99,udp actions=NORMAL
    +NXST_FLOW reply:
    +])
    +
    +OVS_VSWITCHD_STOP
    +AT_CLEANUP
    -- 
    2.12.0
    
    _______________________________________________
    dev mailing list
    dev@openvswitch.org
    https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Comments

William Tu May 9, 2017, 12:24 a.m. UTC | #1
[snip]

> -dnl Check ARP Snoop
> +dnl Use arp reply to achieve tunnel next hop mac binding
>  AT_CHECK([ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,ti
>
>  AT_CHECK([ovs-appctl tnl/neigh/show | tail -n+3 | sort], [0], [dnl
> @@ -275,8 +261,6 @@ Listening ports:
>  gre_sys (3)
>  ])
>
> -AT_CHECK([ovs-ofctl add-flow br0 'priority=99,udp,action=normal'])
> -
we need this to make sure inner UDP packet isn't matched.

>  dnl Check GRE tunnel push
>  AT_CHECK([ovs-ofctl add-flow int-br action=3])
>
> @@ -287,8 +271,7 @@ AT_CHECK([tail -1 stdout], [0],
>
>  AT_CHECK([ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'])
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl)
> - n_packets=3, n_bytes=140, priority=1 actions=NORMAL
> - priority=99,udp actions=NORMAL
> + n_packets=2, n_bytes=98, priority=1 actions=NORMAL
>  NXST_FLOW reply:
>  ])
>
Thanks for the feedback. I will submit v2 patch.
William
Darrell Ball May 9, 2017, 12:58 a.m. UTC | #2
On 5/8/17, 5:24 PM, "William Tu" <u9012063@gmail.com> wrote:

    [snip]
    
    > -dnl Check ARP Snoop

    > +dnl Use arp reply to achieve tunnel next hop mac binding

    >  AT_CHECK([ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,ti

    >

    >  AT_CHECK([ovs-appctl tnl/neigh/show | tail -n+3 | sort], [0], [dnl

    > @@ -275,8 +261,6 @@ Listening ports:

    >  gre_sys (3)

    >  ])

    >

    > -AT_CHECK([ovs-ofctl add-flow br0 'priority=99,udp,action=normal'])

    > -

    we need this to make sure inner UDP packet isn't matched.

That is fine - leave this particular line then.
If it is meant as a kind of “smoke test” for the present breakage issue, then a comment is needed.

    
    >  dnl Check GRE tunnel push

    >  AT_CHECK([ovs-ofctl add-flow int-br action=3])

    >

    > @@ -287,8 +271,7 @@ AT_CHECK([tail -1 stdout], [0],

    >

    >  AT_CHECK([ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'])

    >  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl)

    > - n_packets=3, n_bytes=140, priority=1 actions=NORMAL

    > - priority=99,udp actions=NORMAL

    > + n_packets=2, n_bytes=98, priority=1 actions=NORMAL

    >  NXST_FLOW reply:

    >  ])

    >

    Thanks for the feedback. I will submit v2 patch.
    William
diff mbox

Patch

diff --git a/tests/tunnel-push-pop.at b/tests/tunnel-push-pop.at
index c772467..654e622 100644
--- a/tests/tunnel-push-pop.at
+++ b/tests/tunnel-push-pop.at
@@ -243,27 +243,13 @@  dummy@ovs-dummy: hit:0 missed:0
                t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
 ])
 
-AT_CHECK([ovs-appctl dpif/show], [0], [dnl
-dummy@ovs-dummy: hit:0 missed:0
-       br0:
-               br0 65534/100: (dummy-internal)
-               p0 1/1: (dummy)
-       int-br:
-               int-br 65534/2: (dummy-internal)
-               t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
-])
-
 AT_CHECK([ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24], [0], [OK
 ])
 AT_CHECK([ovs-appctl ovs/route/add 1.1.2.92/24 br0], [0], [OK
 ])
 AT_CHECK([ovs-ofctl add-flow br0 'priority=1,action=normal'])
 
-dnl Check ARP request
-AT_CHECK([ovs-vsctl -- set Interface p0 options:pcap=p0.pcap])
-AT_CHECK([ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,
-
-dnl Check ARP Snoop
+dnl Use arp reply to achieve tunnel next hop mac binding
 AT_CHECK([ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,ti
 
 AT_CHECK([ovs-appctl tnl/neigh/show | tail -n+3 | sort], [0], [dnl
@@ -275,8 +261,6 @@  Listening ports:
 gre_sys (3)
 ])
 
-AT_CHECK([ovs-ofctl add-flow br0 'priority=99,udp,action=normal'])
-
 dnl Check GRE tunnel push
 AT_CHECK([ovs-ofctl add-flow int-br action=3])
 
@@ -287,8 +271,7 @@  AT_CHECK([tail -1 stdout], [0],
 
 AT_CHECK([ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'])
 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl)
- n_packets=3, n_bytes=140, priority=1 actions=NORMAL
- priority=99,udp actions=NORMAL
+ n_packets=2, n_bytes=98, priority=1 actions=NORMAL
 NXST_FLOW reply:
 ])