[ovs-dev] [PATCH] tests: fix PTAP system test to check only OF stats

Zoltán Balogh zoltan.balogh at ericsson.com
Wed Jul 12 07:28:23 UTC 2017


Thank you for pointing this out! I've sent v2 to the list.
https://patchwork.ozlabs.org/patch/787037/

/Zoltan

> -----Original Message-----
> From: Darrell Ball [mailto:dball at vmware.com]
> Sent: Tuesday, July 11, 2017 6:11 PM
> To: Zoltán Balogh <zoltan.balogh at ericsson.com>; 'dev at openvswitch.org' <dev at openvswitch.org>
> Subject: Re: [ovs-dev] [PATCH] tests: fix PTAP system test to check only OF stats
> 
> signoff is missing
> maybe suggested by Jan ?
> 
> On 7/11/17, 9:07 AM, "ovs-dev-bounces at openvswitch.org on behalf of Zoltán Balogh" <ovs-dev-bounces at openvswitch.org
> on behalf of zoltan.balogh at ericsson.com> wrote:
> 
> 
>     It turned out, checking datapath flow statistics during system-userspace
>     test is not reliable. Unwanted packets can be injected depending on
>     system configuration. As a workaround, this commit removes checking
>     statistics of datapath flows and does check OpenFlow statistics of the
>     integrator bridges. Datapath flows can be checked in normal PTAP unit
>     tests by running 'make check'.
> 
>     Reported-by: Darrell Ball <dball at vmware.com>
>     ---
>      tests/system-userspace-packet-type-aware.at | 127 +++++++++++++++-------------
>      1 file changed, 67 insertions(+), 60 deletions(-)
> 
>     diff --git a/tests/system-userspace-packet-type-aware.at b/tests/system-userspace-packet-type-aware.at
>     index 65d81ce8e..24a7698ab 100644
>     --- a/tests/system-userspace-packet-type-aware.at
>     +++ b/tests/system-userspace-packet-type-aware.at
>     @@ -33,9 +33,9 @@ AT_SETUP([ptap - triangle bridge setup with L2 and L3 GRE tunnels])
>      #      1030   br-in1      gre-13      l2          br-in3 3010 (l2)
>      #      2010   br-in2      gre-21      ptap        br-in1 1020 (l2), 1021 (l3)
>      #      2030   br-in2      gre-23      ptap        br-in3 3020 (l2), 3021 (l3)
>     -#      3010   br-in1      gre-31      l2          br-in1 1030 (l2)
>     -#      3020   br-in1      gre-32      l2          br-in2 2010 (ptap)
>     -#      3021   br-in1      gre-32_l3   l3                same
>     +#      3010   br-in3      gre-31      l2          br-in1 1030 (l2)
>     +#      3020   br-in3      gre-32      l2          br-in2 2010 (ptap)
>     +#      3021   br-in3      gre-32_l3   l3                same
> 
> 
>      AT_SKIP_IF([test $HAVE_NC = no])
>     @@ -176,15 +176,15 @@ AT_CHECK([
> 
>      ### Flows in br-p<x>to twist TEP IP addresses in tunnel IP headers
>      AT_CHECK([
>     -    ovs-ofctl add-flow br-p1 in_port:LOCAL,actions=2
>     +    ovs-ofctl add-flow br-p1 in_port:LOCAL,ip,actions=2
>          ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:20.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
>          ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:30.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL
> 
>     -    ovs-ofctl add-flow br-p2 in_port:LOCAL,actions=2
>     +    ovs-ofctl add-flow br-p2 in_port:LOCAL,ip,actions=2
>          ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:10.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
>          ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:30.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL
> 
>     -    ovs-ofctl add-flow br-p3 in_port:LOCAL,actions=2
>     +    ovs-ofctl add-flow br-p3 in_port:LOCAL,ip,actions=2
>          ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:10.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
>          ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:20.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
>      ], [0])
>     @@ -204,15 +204,15 @@ AT_CHECK([
>          ovs-ofctl dump-flows br-p2 | ofctl_strip | strip_n_packets | strip_n_bytes | sort | grep actions
>          ovs-ofctl dump-flows br-p3 | ofctl_strip | strip_n_packets | strip_n_bytes | sort | grep actions
>      ], [0], [dnl
>     - in_port=LOCAL actions=output:2
>       ip,in_port=2,nw_dst=20.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
>       ip,in_port=2,nw_dst=30.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL
>     - in_port=LOCAL actions=output:2
>     + ip,in_port=LOCAL actions=output:2
>       ip,in_port=2,nw_dst=10.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
>       ip,in_port=2,nw_dst=30.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL
>     - in_port=LOCAL actions=output:2
>     + ip,in_port=LOCAL actions=output:2
>       ip,in_port=2,nw_dst=10.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
>       ip,in_port=2,nw_dst=20.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
>     + ip,in_port=LOCAL actions=output:2
>      ])
> 
>      ### Setup test ports for traffic injection
>     @@ -331,9 +331,6 @@ AT_CHECK([
>      ])
> 
> 
>     -# Clear up megaflow cache
>     -sleep 10
>     -
>      # Ping between N1 and N3, via the L2 GRE tunnel between br-in1 and br-in3
>      NS_CHECK_EXEC([ns1], [ping -q -c 3 -i 0.3 -w 2 $N3_IP | FORMAT_PING], [0], [dnl
>      3 packets transmitted, 3 received, 0% packet loss, time 0ms
>     @@ -342,26 +339,25 @@ NS_CHECK_EXEC([ns1], [ping -q -c 3 -i 0.3 -w 2 $N3_IP | FORMAT_PING], [0], [dnl
>      sleep 1
> 
>      AT_CHECK([
>     -    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | grep -v arp |sort
>     -], [0], [flow-dump from non-dpdk interfaces:
>     -
> recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10
> .0.0.3,proto=47,frag=no), packets:2, bytes:272, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(14)
>     -recirc_id(0),in_port(11),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:272, used:0.0s, actions:13
>     -recirc_id(0),in_port(12),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:244, used:0.0s, actions:11
>     -recirc_id(0),in_port(13),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:244, used:0.0s, actions:12
>     -recirc_id(0),in_port(15),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:01,dl_type=0x0800),
> ipv4(src=10.0.0.1,dst=10.0.0.3,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(5))
>     -recirc_id(0),in_port(17),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:pop_eth,tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:03,dl_type=
> 0x0800),ipv4(src=30.0.0.3,dst=30.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(7))
>     -recirc_id(0),in_port(5),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:272, used:0.0s,
> actions:8
>     -recirc_id(0),in_port(6),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:244, used:0.0s,
> actions:9
>     -recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:244, used:0.0s,
> actions:10
>     -
> recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(src=20.0.0.2,dst=20.
> 0.0.1,proto=47,frag=no), packets:2, bytes:244, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(14)
>     -
> recirc_id(0),in_port(9),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(src=30.0.0.3,dst=30.
> 0.0.2,proto=47,frag=no), packets:2, bytes:244, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(14)
>     -tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,frag=no), packets:2, bytes:168,
> used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:01),15
>     -tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:2,
> bytes:168, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),
> ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(6))
>     -tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=0,id=0),eth(dst=aa:55:aa:55:00:03),eth_type(0x0800),ipv4(dst=192.168.
> 10.30,frag=no), packets:2, bytes:196, used:0.0s, actions:17
>     +    ovs-ofctl dump-flows br-in1 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=252, ip,nw_dst=192.168.10.10 actions=mod_dl_dst:aa:55:aa:55:00:01,output:10
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.30 actions=output:1030
>     +])
>     +
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=252, packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
>     +])
>     +
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in3 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.10 actions=output:3021
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.30 actions=mod_dl_dst:aa:55:aa:55:00:03,output:30
>      ])
> 
>     -# Clear up megaflow cache
>     -sleep 10
> 
>      # Ping between N1 and N2, via the L2 GRE tunnel between br-in1 and br-in2
>      NS_CHECK_EXEC([ns1], [ping -q -c 3 -i 0.3 -w 2 $N2_IP | FORMAT_PING], [0], [dnl
>     @@ -371,22 +367,28 @@ NS_CHECK_EXEC([ns1], [ping -q -c 3 -i 0.3 -w 2 $N2_IP | FORMAT_PING], [0], [dnl
>      sleep 1
> 
>      AT_CHECK([
>     -    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | grep -v arp | sort
>     -], [0], [flow-dump from non-dpdk interfaces:
>     -recirc_id(0),in_port(11),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:272, used:0.0s, actions:12
>     -recirc_id(0),in_port(12),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:272, used:0.0s, actions:11
>     -recirc_id(0),in_port(15),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:01,dl_type=0x0800),
> ipv4(src=10.0.0.1,dst=10.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(5))
>     -recirc_id(0),in_port(16),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),
> ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(6))
>     -recirc_id(0),in_port(5),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:272, used:0.0s,
> actions:8
>     -recirc_id(0),in_port(6),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:272, used:0.0s,
> actions:9
>     -
> recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(src=20.0.0.2,dst=20.
> 0.0.1,proto=47,frag=no), packets:2, bytes:272, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(14)
>     -
> recirc_id(0),in_port(9),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.
> 0.0.2,proto=47,frag=no), packets:2, bytes:272, used:0.0s, actions:set(ipv4(src=20.0.0.1,dst=20.0.0.2)),tnl_pop(14)
>     -tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=0,id=0),eth(dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(dst=192.168.
> 10.10,frag=no), packets:2, bytes:196, used:0.0s, actions:15
>     -tunnel(src=20.0.0.1,dst=20.0.0.2,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=0,id=0),eth(dst=aa:55:aa:55:00:02),eth_type(0x0800),ipv4(dst=192.168.
> 10.20,frag=no), packets:2, bytes:196, used:0.0s, actions:16
>     +    ovs-ofctl dump-flows br-in1 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.20 actions=output:1020
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.30 actions=output:1030
>     + n_packets=6, n_bytes=546, ip,nw_dst=192.168.10.10 actions=mod_dl_dst:aa:55:aa:55:00:01,output:10
>     +])
>     +
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=252, packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.10 actions=output:2010
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
>     +])
>     +
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in3 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.10 actions=output:3021
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.30 actions=mod_dl_dst:aa:55:aa:55:00:03,output:30
>      ])
> 
>     -# Clear up megaflow cache
>     -sleep 10
> 
>      # Ping between N3 and N2, via the L3 GRE tunnel between br-in3 and br-in2
>      NS_CHECK_EXEC([ns3], [ping -q -c 3 -i 0.3 -w 2 $N1_IP | FORMAT_PING], [0], [dnl
>     @@ -396,23 +398,28 @@ NS_CHECK_EXEC([ns3], [ping -q -c 3 -i 0.3 -w 2 $N1_IP | FORMAT_PING], [0], [dnl
>      sleep 1
> 
>      AT_CHECK([
>     -    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | grep -v arp | sort
>     -], [0], [flow-dump from non-dpdk interfaces:
>     -
> recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10
> .0.0.3,proto=47,frag=no), packets:2, bytes:272, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(14)
>     -recirc_id(0),in_port(11),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:272, used:0.0s, actions:13
>     -recirc_id(0),in_port(12),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:244, used:0.0s, actions:11
>     -recirc_id(0),in_port(13),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no),
> packets:2, bytes:244, used:0.0s, actions:12
>     -recirc_id(0),in_port(15),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:01,dl_type=0x0800),
> ipv4(src=10.0.0.1,dst=10.0.0.3,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(5))
>     -recirc_id(0),in_port(17),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no),
> packets:2, bytes:196, used:0.0s,
> actions:pop_eth,tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:03,dl_type=
> 0x0800),ipv4(src=30.0.0.3,dst=30.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(7))
>     -recirc_id(0),in_port(5),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:272, used:0.0s,
> actions:8
>     -recirc_id(0),in_port(6),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:244, used:0.0s,
> actions:9
>     -recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:244, used:0.0s,
> actions:10
>     -
> recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(src=20.0.0.2,dst=20.
> 0.0.1,proto=47,frag=no), packets:2, bytes:244, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(14)
>     -
> recirc_id(0),in_port(9),packet_type(ns=0,id=0),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(src=30.0.0.3,dst=30.
> 0.0.2,proto=47,frag=no), packets:2, bytes:244, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(14)
>     -tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,frag=no), packets:2, bytes:168,
> used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:01),15
>     -tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:2,
> bytes:168, used:0.0s,
> actions:tnl_push(tnl_port(14),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),
> ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(6))
>     -tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-
> csum)),recirc_id(0),in_port(14),packet_type(ns=0,id=0),eth(dst=aa:55:aa:55:00:03),eth_type(0x0800),ipv4(dst=192.168.
> 10.30,frag=no), packets:2, bytes:196, used:0.0s, actions:17
>     +    ovs-ofctl dump-flows br-in1 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.20 actions=output:1020
>     + n_packets=6, n_bytes=588, ip,nw_dst=192.168.10.30 actions=output:1030
>     + n_packets=9, n_bytes=798, ip,nw_dst=192.168.10.10 actions=mod_dl_dst:aa:55:aa:55:00:01,output:10
>     +])
>     +
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.10 actions=output:2010
>     + n_packets=3, n_bytes=294, ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
>     + n_packets=6, n_bytes=504, packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
>      ])
> 
>     +AT_CHECK([
>     +    ovs-ofctl dump-flows br-in3 | ofctl_strip | sort | grep n_packets
>     +], [0], [dnl
>     + n_packets=6, n_bytes=588, ip,nw_dst=192.168.10.10 actions=output:3021
>     + n_packets=6, n_bytes=588, ip,nw_dst=192.168.10.30 actions=mod_dl_dst:aa:55:aa:55:00:03,output:30
>     +])
>     +
>     +
>      OVS_TRAFFIC_VSWITCHD_STOP
>      AT_CLEANUP
>     --
>     2.11.0
> 
>     _______________________________________________
>     dev mailing list
>     dev at openvswitch.org
>     https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-
> 2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-
> uZnsw&m=rTbSWTwaDBYYELFl6FB2s52tcNWGGqeZ1sYsU9GqZLg&s=BopxhsECO0PzUAGxXWamOxVHNKbhpe9EuppmpD5eMo4&e=
> 



More information about the dev mailing list