@@ -33,10 +33,6 @@ AT_CLEANUP
AT_SETUP([ptap - triangle bridge setup with L2 and L3 GRE tunnels])
-# Always skip this test, for now, until it is revised to use patch
-# ports in place of veth devices.
-AT_SKIP_IF([:])
-
########################
# GRE tunneling test setup for PTAP bridge
#
@@ -61,126 +57,108 @@ AT_SKIP_IF([:])
# +--------------------------------------------------------+
#"
# GRE tunnel ports:
-# No Bridge Name Type Remote bridge & ports
+# No Bridge Name Packet-type Remote bridge & ports
# -----------------------------------------------------------------------
-# 1020 br-in1 gre-12 l2 br-in2 2010 (versatile)
-# 1021 br-in1 gre-12_l3 l3 same
-# 1030 br-in1 gre-13 l2 br-in3 3010 (l2)
-# 2010 br-in2 gre-21 versatile br-in1 1020 (l2), 1021 (l3)
-# 2030 br-in2 gre-13 versatile 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 (versatile)
-# 3021 br-in1 gre-32_l3 l3 same
-
-
-OVS_VSWITCHD_START([])
+# 1020 br-in1 gre-12 legacy-l2 br-in2 2010 (ptap)
+# 1021 br-in1 gre-12_l3 legacy-l3 same
+# 1030 br-in1 gre-13 legacy-l2 br-in3 3010 (l2)
+# 2010 br-in2 gre-21 ptap br-in1 1020 (l2), 1021 (l3)
+# 2030 br-in2 gre-13 ptap br-in3 3020 (l2), 3021 (l3)
+# 3010 br-in1 gre-31 legacy-l2 br-in1 1030 (l2)
+# 3020 br-in1 gre-32 legacy-l2 br-in2 2010 (ptap)
+# 3021 br-in1 gre-32_l3 legacy-l3 same
HWADDR_BRP1=aa:55:00:00:00:01
HWADDR_BRP2=aa:55:00:00:00:02
HWADDR_BRP3=aa:55:00:00:00:03
-dnl Create veth ports to connect br0 with br-p1, br-p2 and br-p3
-AT_CHECK([ip link add p1-0 type veth peer name p0-1])
-AT_CHECK([ip link set p1-0 up])
-AT_CHECK([ip link set p0-1 up])
-AT_CHECK([ip link set dev p1-0 mtu 3300])
-AT_CHECK([ip link set dev p0-1 mtu 3300])
-on_exit 'ip link del p0-1'
-
-AT_CHECK([ip link add p2-0 type veth peer name p0-2])
-AT_CHECK([ip link set p2-0 up])
-AT_CHECK([ip link set p0-2 up])
-AT_CHECK([ip link set dev p2-0 mtu 3300])
-AT_CHECK([ip link set dev p0-2 mtu 3300])
-on_exit 'ip link del p0-2'
-
-AT_CHECK([ip link add p3-0 type veth peer name p0-3])
-AT_CHECK([ip link set p3-0 up])
-AT_CHECK([ip link set p0-3 up])
-AT_CHECK([ip link set dev p3-0 mtu 3300])
-AT_CHECK([ip link set dev p0-3 mtu 3300])
-on_exit 'ip link del p0-3'
+OVS_VSWITCHD_START([dnl
+ -- add-br br-in1 \
+ -- set bridge br-in1 datapath_type=dummy fail-mode=secure \
+ -- add-br br-in2 \
+ -- set bridge br-in2 datapath_type=dummy fail-mode=secure \
+ -- add-br br-in3 \
+ -- set bridge br-in3 datapath_type=dummy fail-mode=secure \
+ -- add-br br-p1 -- \
+ -- set bridge br-p1 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP1\" \
+ -- add-br br-p2 -- \
+ -- set bridge br-p2 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP2\" \
+ -- add-br br-p3 -- \
+ -- set bridge br-p3 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP3\" \
+ -- add-port br-p1 p1-0 \
+ -- set interface p1-0 type=patch options:peer=p0-1 ofport_request=2 \
+ -- add-port br-p2 p2-0 \
+ -- set interface p2-0 type=patch options:peer=p0-2 ofport_request=2 \
+ -- add-port br-p3 p3-0 \
+ -- set interface p3-0 type=patch options:peer=p0-3 ofport_request=2 \
+ -- add-port br0 p0-1 \
+ -- set interface p0-1 type=patch options:peer=p1-0 ofport_request=10 \
+ -- add-port br0 p0-2 \
+ -- set interface p0-2 type=patch options:peer=p2-0 ofport_request=20 \
+ -- add-port br0 p0-3 \
+ -- set interface p0-3 type=patch options:peer=p3-0 ofport_request=30 \
+ -- add-port br-in1 gre12 \
+ -- set interface gre12 type=gre options:remote_ip=10.0.0.2 \
+ ofport_request=1020 \
+ -- add-port br-in1 gre12_l3 \
+ -- set interface gre12_l3 type=gre options:remote_ip=10.0.0.2 \
+ ofport_request=1021 options:packet_type=legacy_l3 \
+ -- add-port br-in1 gre13 \
+ -- set interface gre13 type=gre options:remote_ip=10.0.0.3 \
+ ofport_request=1030 \
+ -- add-port br-in2 gre21 \
+ -- set interface gre21 type=gre options:remote_ip=20.0.0.1 \
+ ofport_request=2010 options:packet_type=ptap \
+ -- add-port br-in2 gre23 \
+ -- set interface gre23 type=gre options:remote_ip=20.0.0.3 \
+ ofport_request=2030 options:packet_type=ptap \
+ -- add-port br-in3 gre31 \
+ -- set interface gre31 type=gre options:remote_ip=30.0.0.1 \
+ ofport_request=3010 \
+ -- add-port br-in3 gre32 \
+ -- set interface gre32 type=gre options:remote_ip=30.0.0.2 \
+ ofport_request=3020 \
+ -- add-port br-in3 gre32_l3 \
+ -- set interface gre32_l3 type=gre options:remote_ip=30.0.0.2 \
+ ofport_request=3021 options:packet_type=legacy_l3
+])
# Setup bridge infrastructure
AT_CHECK([
- ovs-vsctl add-br br-in1 -- \
- set bridge br-in1 datapath_type=dummy fail-mode=standalone
- ovs-vsctl add-br br-in2 -- \
- set bridge br-in2 datapath_type=dummy fail-mode=standalone other-config:packet-type-aware=true
- ovs-vsctl add-br br-in3 -- \
- set bridge br-in3 datapath_type=dummy fail-mode=standalone
- ovs-vsctl add-br br-p1 -- \
- set bridge br-p1 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP1
- ovs-vsctl add-br br-p2 -- \
- set bridge br-p2 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP2
- ovs-vsctl add-br br-p3 -- \
- set bridge br-p3 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP3
-
- ovs-vsctl add-port br-p1 p1-0 -- set interface p1-0 ofport_request=2
- ovs-vsctl add-port br-p2 p2-0 -- set interface p2-0 ofport_request=2
- ovs-vsctl add-port br-p3 p3-0 -- set interface p3-0 ofport_request=2
- ovs-vsctl add-port br0 p0-1 -- set interface p0-1 ofport_request=10
- ovs-vsctl add-port br0 p0-2 -- set interface p0-2 ofport_request=20
- ovs-vsctl add-port br0 p0-3 -- set interface p0-3 ofport_request=30
-
# Populate the MAC table of br0
- ovs-ofctl del-flows br0
- ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP1,actions=10
- ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP2,actions=20
- ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP3,actions=30
-
- ovs-ofctl del-flows br-in1
- ovs-ofctl del-flows br-in2
- ovs-ofctl del-flows br-in3
- ovs-ofctl del-flows br-p1
- ovs-ofctl del-flows br-p2
+ ovs-ofctl del-flows br0 &&
+ ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP1,actions=10 &&
+ ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP2,actions=20 &&
+ ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP3,actions=30 &&
+
+ ovs-ofctl del-flows br-in1 &&
+ ovs-ofctl del-flows br-in2 &&
+ ovs-ofctl del-flows br-in3 &&
+ ovs-ofctl del-flows br-p1 &&
+ ovs-ofctl del-flows br-p2 &&
ovs-ofctl del-flows br-p3
], [0])
-# Get the MAC addresses of the tunnel end-point ports
-#HWADDR_BRP1=$(ovs-ofctl show br-p1 | grep LOCAL | sed 's/.*addr://')
-#HWADDR_BRP2=$(ovs-ofctl show br-p2 | grep LOCAL | sed 's/.*addr://')
-#HWADDR_BRP3=$(ovs-ofctl show br-p3 | grep LOCAL | sed 's/.*addr://')
-
### Setup GRE tunnels
AT_CHECK([
- ovs-vsctl add-port br-in1 gre12 -- \
- set interface gre12 type=gre options:remote_ip=10.0.0.2 ofport_request=1020
- ovs-vsctl add-port br-in1 gre12_l3 -- \
- set interface gre12_l3 type=gre options:remote_ip=10.0.0.2 ofport_request=1021 options:layer3=true
- ovs-vsctl add-port br-in1 gre13 -- \
- set interface gre13 type=gre options:remote_ip=10.0.0.3 ofport_request=1030
-
- ovs-vsctl add-port br-in2 gre21 -- \
- set interface gre21 type=gre options:remote_ip=20.0.0.1 ofport_request=2010
- ovs-vsctl add-port br-in2 gre23 -- \
- set interface gre23 type=gre options:remote_ip=20.0.0.3 ofport_request=2030
-
- ovs-vsctl add-port br-in3 gre31 -- \
- set interface gre31 type=gre options:remote_ip=30.0.0.1 ofport_request=3010
- ovs-vsctl add-port br-in3 gre32 -- \
- set interface gre32 type=gre options:remote_ip=30.0.0.2 ofport_request=3020
- ovs-vsctl add-port br-in3 gre32_l3 -- \
- set interface gre32_l3 type=gre options:remote_ip=30.0.0.2 ofport_request=3021 options:layer3=true
-
- ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24
- ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
- ovs-appctl tnl/arp/set br-p1 10.0.0.1 $HWADDR_BRP1
- ovs-appctl tnl/arp/set br-p1 10.0.0.2 $HWADDR_BRP2
- ovs-appctl tnl/arp/set br-p1 10.0.0.3 $HWADDR_BRP3
-
- ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24
- ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
- ovs-appctl tnl/arp/set br-p2 20.0.0.1 $HWADDR_BRP1
- ovs-appctl tnl/arp/set br-p2 20.0.0.2 $HWADDR_BRP2
- ovs-appctl tnl/arp/set br-p2 20.0.0.3 $HWADDR_BRP3
-
- ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24
- ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
- ovs-appctl tnl/arp/set br-p3 30.0.0.1 $HWADDR_BRP1
- ovs-appctl tnl/arp/set br-p3 30.0.0.2 $HWADDR_BRP2
+ ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24 &&
+ ovs-appctl ovs/route/add 10.0.0.0/24 br-p1 &&
+ ovs-appctl tnl/arp/set br-p1 10.0.0.1 $HWADDR_BRP1 &&
+ ovs-appctl tnl/arp/set br-p1 10.0.0.2 $HWADDR_BRP2 &&
+ ovs-appctl tnl/arp/set br-p1 10.0.0.3 $HWADDR_BRP3 &&
+
+ ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24 &&
+ ovs-appctl ovs/route/add 20.0.0.0/24 br-p2 &&
+ ovs-appctl tnl/arp/set br-p2 20.0.0.1 $HWADDR_BRP1 &&
+ ovs-appctl tnl/arp/set br-p2 20.0.0.2 $HWADDR_BRP2 &&
+ ovs-appctl tnl/arp/set br-p2 20.0.0.3 $HWADDR_BRP3 &&
+
+ ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24 &&
+ ovs-appctl ovs/route/add 30.0.0.0/24 br-p3 &&
+ ovs-appctl tnl/arp/set br-p3 30.0.0.1 $HWADDR_BRP1 &&
+ ovs-appctl tnl/arp/set br-p3 30.0.0.2 $HWADDR_BRP2 &&
ovs-appctl tnl/arp/set br-p3 30.0.0.3 $HWADDR_BRP3
-], [0], [stdout])
+], [0], [ignore])
AT_CHECK([
ovs-appctl ovs/route/show | grep User:
@@ -192,7 +170,7 @@ User: 30.0.0.0/24 dev br-p3 SRC 30.0.0.3
AT_CHECK([
ovs-appctl tnl/neigh/show | grep br-p | sort
-], [0], [stdout])
+], [0], [ignore])
### Flows in br-p<x>to twist TEP IP addresses in tunnel IP headers
AT_CHECK([
@@ -237,12 +215,16 @@ N2_OFPORT=20
N3_OFPORT=30
AT_CHECK([
- ovs-vsctl add-port br-in1 n1 -- \
- set interface n1 type=dummy ofport_request=$N1_OFPORT options:tx_pcap=n1.pcap
- ovs-vsctl add-port br-in2 n2 -- \
- set interface n2 type=dummy ofport_request=$N2_OFPORT options:tx_pcap=n2.pcap
- ovs-vsctl add-port br-in3 n3 -- \
- set interface n3 type=dummy ofport_request=$N3_OFPORT options:tx_pcap=n3.pcap
+ovs-vsctl \
+ -- add-port br-in1 n1 \
+ -- set interface n1 type=dummy ofport_request=$N1_OFPORT \
+ options:tx_pcap=n1.pcap \
+ -- add-port br-in2 n2 \
+ -- set interface n2 type=dummy ofport_request=$N2_OFPORT \
+ options:tx_pcap=n2.pcap \
+ -- add-port br-in3 n3 \
+ -- set interface n3 type=dummy ofport_request=$N3_OFPORT \
+ options:tx_pcap=n3.pcap
], [0])
#N1_DPPORT=$(ovs-appctl dpif/show | grep "n1 10" | sed 's|.*/\([[0-9]]*\):.*|\1|')
@@ -251,39 +233,39 @@ AT_CHECK([
### Verify datapath configuration
AT_CHECK([
- ovs-appctl dpif/show | grep -v hit | sed 's/\t/ /g'
+ ovs-appctl dpif/show | grep -v hit | sed 's/\t/ /g' | sed 's./[[0-9]]\{1,\}..'
], [0], [dnl
br-in1:
- br-in1 65534/101: (dummy-internal)
- gre12 1020/10: (gre: remote_ip=10.0.0.2)
- gre12_l3 1021/10: (gre: layer3=true, remote_ip=10.0.0.2)
- gre13 1030/10: (gre: remote_ip=10.0.0.3)
- n1 10/11: (dummy)
+ br-in1 65534: (dummy-internal)
+ gre12 1020: (gre: remote_ip=10.0.0.2)
+ gre12_l3 1021: (gre: packet_type=legacy_l3, remote_ip=10.0.0.2)
+ gre13 1030: (gre: remote_ip=10.0.0.3)
+ n1 10: (dummy)
br-in2:
- br-in2 65534/102: (dummy-internal)
- gre21 2010/10: (gre: remote_ip=20.0.0.1)
- gre23 2030/10: (gre: remote_ip=20.0.0.3)
- n2 20/12: (dummy)
+ br-in2 65534: (dummy-internal)
+ gre21 2010: (gre: packet_type=ptap, remote_ip=20.0.0.1)
+ gre23 2030: (gre: packet_type=ptap, remote_ip=20.0.0.3)
+ n2 20: (dummy)
br-in3:
- br-in3 65534/103: (dummy-internal)
- gre31 3010/10: (gre: remote_ip=30.0.0.1)
- gre32 3020/10: (gre: remote_ip=30.0.0.2)
- gre32_l3 3021/10: (gre: layer3=true, remote_ip=30.0.0.2)
- n3 30/13: (dummy)
+ br-in3 65534: (dummy-internal)
+ gre31 3010: (gre: remote_ip=30.0.0.1)
+ gre32 3020: (gre: remote_ip=30.0.0.2)
+ gre32_l3 3021: (gre: packet_type=legacy_l3, remote_ip=30.0.0.2)
+ n3 30: (dummy)
br-p1:
- br-p1 65534/1: (dummy-internal)
- p1-0 2/4: (system)
+ br-p1 65534: (dummy-internal)
+ p1-0 2/none: (patch: peer=p0-1)
br-p2:
- br-p2 65534/2: (dummy-internal)
- p2-0 2/5: (system)
+ br-p2 65534: (dummy-internal)
+ p2-0 2/none: (patch: peer=p0-2)
br-p3:
- br-p3 65534/3: (dummy-internal)
- p3-0 2/6: (system)
+ br-p3 65534: (dummy-internal)
+ p3-0 2/none: (patch: peer=p0-3)
br0:
- br0 65534/100: (dummy-internal)
- p0-1 10/7: (system)
- p0-2 20/8: (system)
- p0-3 30/9: (system)
+ br0 65534: (dummy-internal)
+ p0-1 10/none: (patch: peer=p1-0)
+ p0-2 20/none: (patch: peer=p2-0)
+ p0-3 30/none: (patch: peer=p3-0)
])
### Test L3 forwarding flows
@@ -314,9 +296,9 @@ AT_CHECK([
AT_CHECK([
ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep actions
], [0], [dnl
- packet_type=(0,0),ip,nw_dst=192.168.10.10 actions=output:2010
- packet_type=(0,0),ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
- packet_type=(0,0),ip,nw_dst=192.168.10.30 actions=output:2010
+ ip,nw_dst=192.168.10.10 actions=output:2010
+ ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
+ ip,nw_dst=192.168.10.30 actions=output:2010
packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
packet_type=(1,0x800),nw_dst=192.168.10.30 actions=output:2030
])
@@ -331,6 +313,8 @@ AT_CHECK([
### Inject ICMP Echo request test packets
+ovs-appctl vlog/set any:file:dbg
+
# N1 to N3, via the L2 GRE tunnel between br-in1 and br-in3
AT_CHECK([
ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
@@ -340,13 +324,11 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:4
-recirc_id(0),in_port(11),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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(1))
-recirc_id(0),in_port(6),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(10)
-recirc_id(0),in_port(7),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:9
-tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),13
+recirc_id(0),in_port(br-p1),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p1))
+tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),n3
])
# Clear up megaflow cache
@@ -361,13 +343,11 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:4
-recirc_id(0),in_port(11),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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(1))
-recirc_id(0),in_port(5),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=20.0.0.1,dst=20.0.0.2)),tnl_pop(10)
-recirc_id(0),in_port(7),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:8
-tunnel(src=20.0.0.1,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),12
+recirc_id(0),in_port(br-p1),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=20.0.0.1,dst=20.0.0.2)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p1))
+tunnel(src=20.0.0.1,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),n2
])
# Clear up megaflow cache
@@ -382,13 +362,11 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(12),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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(2))
-recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:5
-recirc_id(0),in_port(4),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(10)
-recirc_id(0),in_port(8),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:7
-tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=3a:6d:d2:09:9c:ab),eth_type(0x0800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:01)),11
+recirc_id(0),in_port(br-p2),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p2))
+tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=3a:6d:d2:09:9c:ab),eth_type(0x0800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:01)),n1
])
# Clear up megaflow cache
@@ -403,17 +381,13 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:4
-recirc_id(0),in_port(12),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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(2))
-recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:5
-recirc_id(0),in_port(4),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(10)
-recirc_id(0),in_port(6),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(10)
-recirc_id(0),in_port(7),eth(dst=aa:55:00:00:00:03),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:9
-recirc_id(0),in_port(8),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:7
-tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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(1))
-tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),13
+recirc_id(0),in_port(br-p1),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(gre_sys)
+recirc_id(0),in_port(br-p2),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p2))
+tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p1))
+tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),n3
])
# Clear up megaflow cache
@@ -428,17 +402,13 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(13),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,tnl_push(tnl_port(10),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(3))
-recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:122, used:0.0s, actions:5
-recirc_id(0),in_port(3),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:122, used:0.0s, actions:6
-recirc_id(0),in_port(4),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:1, bytes:122, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(10)
-recirc_id(0),in_port(5),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:1, bytes:122, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(10)
-recirc_id(0),in_port(8),eth(dst=aa:55:00:00:00:01),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:122, used:0.0s, actions:7
-recirc_id(0),in_port(9),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:122, used:0.0s, actions:8
-tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=1,id=0x800),eth_type(0x0800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:84, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:01),11
-tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=1,id=0x800),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:84, used:0.0s, actions:tnl_push(tnl_port(10),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(2))
+recirc_id(0),in_port(br-p2),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:1, bytes:122, used:0.0s, actions:set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys)
+recirc_id(0),in_port(br-p3),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:1, bytes:122, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,tnl_push(tnl_port(gre_sys),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(br-p3))
+tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x800),eth_type(0x0800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:84, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:01),n1
+tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x800),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:84, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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(br-p2))
])
# Clear up megaflow cache
@@ -453,13 +423,11 @@ AT_CHECK([
ovs-appctl time/warp 1000
AT_CHECK([
- ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
+ ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
], [0], [flow-dump from non-dpdk interfaces:
-recirc_id(0),in_port(13),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(10),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=0x6558))),out_port(3))
-recirc_id(0),in_port(3),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:6
-recirc_id(0),in_port(5),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(10)
-recirc_id(0),in_port(9),eth(dst=aa:55:00:00:00:02),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:136, used:0.0s, actions:8
-tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(10),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),12
+recirc_id(0),in_port(br-p3),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:1, bytes:136, used:0.0s, actions:set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(gre_sys)
+recirc_id(0),in_port(n3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:tnl_push(tnl_port(gre_sys),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=0x6558))),out_port(br-p3))
+tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),n2
])
### Check the received packets