Looks good to me, thanks.

Acked-by: Daniele Di Proietto <[email protected]>

2016-06-09 17:46 GMT-07:00 Jesse Gross <[email protected]>:

> When debug logging is enabled, dpif-netdev can print each flow as it is
> installed, which it currently does using OpenFlow match formatting.
> Compared
> to ODP formatting, there generally isn't too much difference since the
> fields are largely the same but it is inconsistent with other logging in
> dpif-netdev as well as the analogous functions that deal with the kernel.
>
> However, in some cases there is a difference between the two formats, such
> as in the cases of input port or tunnel metadata. For input port, datapath
> format helped detect that the generated masks were incorrect. As for
> tunnels,
> at the moment, it's possible to convert between the two formats on demand
> as
> we have a global metadata table. In the future, though this won't be
> possible
> as the metadata table becomes per-bridge which the datapath won't have
> access
> to.
>
> Signed-off-by: Jesse Gross <[email protected]>
> ---
>  lib/dpif-netdev.c     |  22 +++++++--
>  tests/dpif-netdev.at  |  14 +++---
>  tests/ofproto-dpif.at | 130
> +++++++++++++++++++++++++-------------------------
>  tests/pmd.at          |   2 +-
>  4 files changed, 90 insertions(+), 78 deletions(-)
>
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index f42d2da..8d39d9e 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -2120,22 +2120,34 @@ dp_netdev_flow_add(struct dp_netdev_pmd_thread
> *pmd,
>                  dp_netdev_flow_hash(&flow->ufid));
>
>      if (OVS_UNLIKELY(VLOG_IS_DBG_ENABLED())) {
> -        struct match match;
>          struct ds ds = DS_EMPTY_INITIALIZER;
> +        struct ofpbuf key_buf, mask_buf;
> +        struct odp_flow_key_parms odp_parms = {
> +            .flow = &match->flow,
> +            .mask = &match->wc.masks,
> +            .support = dp_netdev_support,
> +        };
> +
> +        ofpbuf_init(&key_buf, 0);
> +        ofpbuf_init(&mask_buf, 0);
>
> -        match.tun_md.valid = false;
> -        match.flow = flow->flow;
> -        miniflow_expand(&flow->cr.mask->mf, &match.wc.masks);
> +        odp_flow_key_from_flow(&odp_parms, &key_buf);
> +        odp_parms.key_buf = &key_buf;
> +        odp_flow_key_from_mask(&odp_parms, &mask_buf);
>
>          ds_put_cstr(&ds, "flow_add: ");
>          odp_format_ufid(ufid, &ds);
>          ds_put_cstr(&ds, " ");
> -        match_format(&match, &ds, OFP_DEFAULT_PRIORITY);
> +        odp_flow_format(key_buf.data, key_buf.size,
> +                        mask_buf.data, mask_buf.size,
> +                        NULL, &ds, false);
>          ds_put_cstr(&ds, ", actions:");
>          format_odp_actions(&ds, actions, actions_len);
>
>          VLOG_DBG_RL(&upcall_rl, "%s", ds_cstr(&ds));
>
> +        ofpbuf_uninit(&key_buf);
> +        ofpbuf_uninit(&mask_buf);
>          ds_destroy(&ds);
>      }
>
> diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at
> index ab83634..6af0f64 100644
> --- a/tests/dpif-netdev.at
> +++ b/tests/dpif-netdev.at
> @@ -67,10 +67,10 @@ m4_define([DPIF_NETDEV_DUMMY_IFACE],
>     sleep 1  # wait for forwarders process packets
>
>     AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=2,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=7,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=8,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(2),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>
>     OVS_VSWITCHD_STOP
> @@ -95,7 +95,7 @@ m4_define([DPIF_NETDEV_MISS_FLOW_INSTALL],
>
>  
> skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
>  ])
>     AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>
>     # Now, the same again without megaflows.
> @@ -108,8 +108,8 @@
> recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=
>
>  
> skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
>  ])
>     AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -pkt_mark=0,recirc_id=0,dp_hash=0,skb_priority=0,ct_state=0,ct_zone=0,ct_mark=0,ct_label=0,icmp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
> actions: <del>
>  ])
>
>     OVS_VSWITCHD_STOP
> diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
> index 638d269..0057441 100644
> --- a/tests/ofproto-dpif.at
> +++ b/tests/ofproto-dpif.at
> @@ -42,13 +42,13 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p7
> 'in_port(7),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p7
> 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0e),eth_type(0x0800),ipv4(src=10.0.0.6,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  ovs-appctl time/warp 200 100
>  sleep 1
> -AT_CHECK([grep 'in_port=[[348]]' ovs-vswitchd.log | filter_flow_install |
> strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=3,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=3,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=4,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0d,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=4,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0e,nw_frag=no,
> actions: <del>
> -recirc_id=0,rarp,in_port=4,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=ff:ff:ff:ff:ff:ff,
> actions: <del>
> -recirc_id=0,rarp,in_port=4,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=ff:ff:ff:ff:ff:ff,
> actions: <del>
> +AT_CHECK([grep 'in_port([[348]])' ovs-vswitchd.log | filter_flow_install
> | strip_xout], [0], [dnl
> +recirc_id(0),in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(3),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(4),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0d),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(4),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0e),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(4),eth(src=50:54:00:00:00:09,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8035),
> actions: <del>
> +recirc_id(0),in_port(4),eth(src=50:54:00:00:00:0b,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8035),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6114,8 +6114,8 @@ for dl_src in 00 01; do
>  done
>  sleep 1  # wait for the datapath flow installed
>  AT_CHECK_UNQUOTED([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=60:66:66:66:66:00,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,
> actions:userspace(pid=0,slow_path(controller))
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=60:66:66:66:66:01,mpls_bos=0,mpls_lse1=82208,
> actions:userspace(pid=0,slow_path(controller))
> +recirc_id(0),in_port(1),eth(src=60:66:66:66:66:00),eth_type(0x8847),mpls(label=20,tc=0,ttl=32,bos=0,label=20,tc=0,ttl=32,bos=1),
> actions:userspace(pid=0,slow_path(controller))
> +recirc_id(0),in_port(1),eth(src=60:66:66:66:66:01),eth_type(0x8847),mpls(label=20/0x0,tc=0/0,ttl=32/0x0,bos=0/1,label=20/0xfffff,tc=0/7,ttl=32/0xff,bos=1/1),
> actions:userspace(pid=0,slow_path(controller))
>  ])
>
>  OVS_VSWITCHD_STOP
> @@ -6153,8 +6153,8 @@ for dl_src in 00 01; do
>  done
>  sleep 1  # wait for the datapath flow installed
>  AT_CHECK_UNQUOTED([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=60:66:66:66:66:00,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,
> actions:userspace(pid=0,slow_path(controller))
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=60:66:66:66:66:01,mpls_bos=0,mpls_lse1=82208,
> actions:userspace(pid=0,slow_path(controller))
> +recirc_id(0),in_port(1),eth(src=60:66:66:66:66:00),eth_type(0x8847),mpls(label=20,tc=0,ttl=32,bos=0,label=20,tc=0,ttl=32,bos=1),
> actions:userspace(pid=0,slow_path(controller))
> +recirc_id(0),in_port(1),eth(src=60:66:66:66:66:01),eth_type(0x8847),mpls(label=20/0x0,tc=0/0,ttl=32/0x0,bos=0/1,label=20/0xfffff,tc=0/7,ttl=32/0xff,bos=1/1),
> actions:userspace(pid=0,slow_path(controller))
>  ])
>
>  OVS_VSWITCHD_STOP
> @@ -6209,8 +6209,8 @@ dummy@ovs-dummy: hit:13 missed:2
>  ])
>
>  AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,ip,in_port=100,vlan_tci=0x0000,nw_frag=no, actions:101,3,2
> -recirc_id=0,ip,in_port=101,vlan_tci=0x0000,nw_frag=no, actions:100,2,3
> +recirc_id(0),in_port(100),eth_type(0x0800),ipv4(frag=no), actions:101,3,2
> +recirc_id(0),in_port(101),eth_type(0x0800),ipv4(frag=no), actions:100,2,3
>  ])
>
>  AT_CHECK([grep -e 'in_port(100).*packets:9' ovs-vswitchd.log | strip_ufid
> | filter_flow_dump], [0], [dnl
> @@ -6274,7 +6274,7 @@ dummy@ovs-dummy: hit:0 missed:1
>  ])
>
>  AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,ip,in_port=100,vlan_tci=0x0000,nw_src=192.168.0.1,nw_frag=no,
> actions:101,set(ipv4(src=255.255.255.254)),2
> +recirc_id(0),in_port(100),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no),
> actions:101,set(ipv4(src=255.255.255.254)),2
>  ])
>
>  AT_CHECK([grep -e '|nx_match|WARN|' ovs-vswitchd.log | sed
> "s/^.*|WARN|//"], [0], [dnl
> @@ -6317,7 +6317,7 @@ sleep 1
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_frag=no, actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6334,8 +6334,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6353,8 +6353,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,icmp,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.4,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.2/30,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=
> 10.0.0.2/255.255.255.252,frag=no), actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6372,8 +6372,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:5:4:3:2:1,dst=2001:db8:3c4d:1:2:3:4:1,label=0,proto=99,tclass=0x70,hlimit=64,frag=no)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ipv6,in_port=1,vlan_tci=0x0000,ipv6_src=2001:db8:3c4d:1:2:3:4:5,nw_frag=no,
> actions: <del>
> -recirc_id=0,ipv6,in_port=1,vlan_tci=0x0000,ipv6_src=2001:db8:3c4d:5:4:3:2:1/62,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:1:2:3:4:5,frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:5:4:3:2:1/ffff:ffff:ffff:fffc::,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6391,7 +6391,7 @@ sleep 1
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,icmp,in_port=1,vlan_tci=0x0000,nw_frag=no,icmp_type=0x8/0xff,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6407,8 +6407,8 @@ m4_define([OFPROTO_DPIF_MEGAFLOW_NORMAL],
>     AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>     sleep 1
>     AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>     OVS_VSWITCHD_STOP
>     AT_CLEANUP])
> @@ -6429,8 +6429,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log |
> strip_xout_keep_actions], [0], [dnl
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,mpls_label=11,mpls_tc=3,mpls_ttl=64,mpls_bos=1,
> actions:push_mpls(label=11,tc=3,ttl=64,bos=0,eth_type=0x8847),2
> -recirc_id=0,mpls,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,mpls_bos=1,
> actions:pop_mpls(eth_type=0x800),2
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1),
> actions:push_mpls(label=11,tc=3,ttl=64,bos=0,eth_type=0x8847),2
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x8847),mpls(label=11/0x0,tc=3/0,ttl=64/0x0,bos=1/1),
> actions:pop_mpls(eth_type=0x800),2
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6456,8 +6456,8 @@ m4_define([CHECK_MEGAFLOW_NETFLOW],
>    AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>    sleep 1
>    AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -recirc_id=0,icmp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_frag=no,icmp_type=0x8/0xff,icmp_code=0x0/0xff,
> actions: <del>
> -recirc_id=0,icmp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_src=10.0.0.4,nw_dst=10.0.0.3,nw_tos=0,nw_frag=no,icmp_type=0x8/0xff,icmp_code=0x0/0xff,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0),
> actions: <del>
>  ])
>    OVS_APP_EXIT_AND_WAIT([test-netflow])
>    OVS_VSWITCHD_STOP])
> @@ -6488,8 +6488,8 @@ m4_define([OFPROTO_DPIF_MEGAFLOW_NORMAL_ACB_BOND],
>     AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>     sleep 1
>     AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0],
> [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>     OVS_VSWITCHD_STOP
>     AT_CLEANUP])
> @@ -6512,8 +6512,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6550,8 +6550,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p7
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p7
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=7,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=7,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(7),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6569,8 +6569,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6589,8 +6589,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6608,8 +6608,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6633,7 +6633,7 @@ sleep 1
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_frag=no, actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6655,8 +6655,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,dl_vlan=11,nw_frag=no, actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,nw_frag=no, actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x8100),vlan(vid=11,pcp=7/0x0),encap(eth_type(0x0800),ipv4(frag=no)),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6675,8 +6675,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.2,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.4,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6693,8 +6693,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.2,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.4,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6720,8 +6720,8 @@ done
>  sleep 1
>  dnl The original flow is missing due to a revalidation.
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:09,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:0b,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6752,9 +6752,9 @@ sleep 1
>  AT_CHECK([ovs-appctl netdev-dummy/receive p3
> 'in_port(3),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0x1,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_ecn=1,nw_frag=no, actions:
> <del>
> -recirc_id=0,ip,in_port=3,vlan_tci=0x0000,nw_tos=0,nw_ecn=1,nw_ttl=64,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=3,vlan_tci=0x0000,nw_tos=252,nw_ecn=1,nw_ttl=128,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(tos=0xfd/0x3,frag=no),
> actions: <del>
> +recirc_id(0),in_port(3),eth_type(0x0800),ipv4(tos=0x1,ttl=64,frag=no),
> actions: <del>
> +recirc_id(0),in_port(3),eth_type(0x0800),ipv4(tos=0xfd,ttl=128,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6772,8 +6772,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'])
>  sleep 1
>  AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl
> -recirc_id=0,icmp,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.4,nw_ttl=64,nw_frag=no,
> actions: <del>
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,nw_src=10.0.0.2/30,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=
> 10.0.0.2/255.255.255.252,frag=no), actions: <del>
> +recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,ttl=64,frag=no),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6793,8 +6793,8 @@ dnl The first packet is essentially a no-op, as the
> new destination MAC is the
>  dnl same as the original.  The second entry actually updates the
> destination
>  dnl MAC.
>  AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_dst=50:54:00:00:00:0a,nw_frag=no,
> actions:2
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000,dl_dst=50:54:00:00:00:0c,nw_frag=no,
> actions:set(eth(dst=50:54:00:00:00:0a)),2
> +recirc_id(0),in_port(1),eth(dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no),
> actions:2
> +recirc_id(0),in_port(1),eth(dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no),
> actions:set(eth(dst=50:54:00:00:00:0a)),2
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -6824,8 +6824,8 @@ table=0 in_port=1,ip,nw_dst=10.0.0.3 actions=drop
>     done
>     sleep 1
>     AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -pkt_mark=0,recirc_id=0,dp_hash=0,skb_priority=0,ct_state=0,ct_zone=0,ct_mark=0,ct_label=0,icmp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0,
> actions:2
> -pkt_mark=0,recirc_id=0,dp_hash=0,skb_priority=0,ct_state=0,ct_zone=0,ct_mark=0,ct_label=0,icmp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:0b,dl_dst=50:54:00:00:00:0c,nw_src=10.0.0.4,nw_dst=10.0.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0,
> actions:drop
> +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
> actions:2
> +skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
> actions:drop
>  ])
>     AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_dump | grep
> 'packets:3'], [0], [dnl
>  
> skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
> packets:3, bytes:180, used:0.0s, actions:2
> @@ -7349,8 +7349,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'recirc_id(0),in_port(1),eth(src=f2
>  AT_CHECK([ovs-appctl revalidator/purge], [0])
>
>  AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install |
> strip_used], [0], [dnl
> -recirc_id=0,icmp6,in_port=1,vlan_tci=0x0000,nw_frag=no,icmp_type=0x80/0xff,
> actions:2
> -recirc_id=0,icmp6,in_port=1,vlan_tci=0x0000,nw_frag=no,icmp_type=0x81/0xff,
> actions:3
> +recirc_id(0),in_port(1),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128),
> actions:2
> +recirc_id(0),in_port(1),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129),
> actions:3
>  ])
>
>  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl
> @@ -7395,8 +7395,8 @@ AT_CHECK([ovs-ofctl add-flow br0
> "vlan_tci=0x000a/0x0fff,action=output:local"])
>  AT_CHECK([ovs-appctl netdev-dummy/receive p0
> 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=10,pcp=0),encap(eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0))'])
>
>  OVS_WAIT_UNTIL([grep flow_add: ovs-vswitchd.log])
> -AT_CHECK([grep 'in_port=[[1]]' ovs-vswitchd.log | filter_flow_install |
> strip_xout], [0], [dnl
> -recirc_id=0,ip,in_port=1,dl_vlan=10,nw_frag=no, actions: <del>
> +AT_CHECK([grep 'in_port([[1]])' ovs-vswitchd.log | filter_flow_install |
> strip_xout], [0], [dnl
> +recirc_id(0),in_port(1),eth_type(0x8100),vlan(vid=10),encap(eth_type(0x0800),ipv4(frag=no)),
> actions: <del>
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> @@ -7506,7 +7506,7 @@ recirc_id(0),in_port(1),eth_type(0x1234), packets:8,
> bytes:480, used:0.0s, actio
>  # Check that VLAN packets will not hit the same datapath megaflow.
>
>  AT_CHECK([ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x1234))'])
> -OVS_WAIT_UNTIL([grep 'flow_add:.*dl_vlan=99' ovs-vswitchd.log])
> +OVS_WAIT_UNTIL([grep 'flow_add:.*vlan(vid=99' ovs-vswitchd.log])
>
>  for i in 1 2; do
>      ovs-appctl netdev-dummy/receive p1
> 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x1234))'
> @@ -7520,10 +7520,10 @@
> recirc_id(0),in_port(1),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0
>  # Check that the new flow matches the CFI bit, while both vid and pcp
>  # are wildcarded.
>  AT_CHECK([grep '\(modify\)\|\(flow_add\)' ovs-vswitchd.log | strip_ufid
> ], [0], [dnl
> -dpif_netdev|DBG|flow_add:
> recirc_id=0,in_port=1,vlan_tci=0x0000,dl_type=0x1234, actions:100
> +dpif_netdev|DBG|flow_add: recirc_id(0),in_port(1),eth_type(0x1234),
> actions:100
>  dpif|DBG|dummy@ovs-dummy: put[[modify]]
> skb_priority(0/0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x1234)
>  dpif|DBG|dummy@ovs-dummy: put[[modify]]
> skb_priority(0/0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(1),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x1234),
> actions:100
> -dpif_netdev|DBG|flow_add:
> recirc_id=0,in_port=1,dl_vlan=99,dl_type=0x1234, actions:drop
> +dpif_netdev|DBG|flow_add:
> recirc_id(0),in_port(1),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)),
> actions:drop
>  ])
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
> diff --git a/tests/pmd.at b/tests/pmd.at
> index a9e6783..3d219ff 100644
> --- a/tests/pmd.at
> +++ b/tests/pmd.at
> @@ -167,7 +167,7 @@ AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log |
> tail -n 1], [0], [dnl
>
>  
> skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00:00:00:77,dst=50:54:00:00:01:78),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
>  ])
>  AT_CHECK([cat ovs-vswitchd.log | filter_flow_install | strip_xout], [0],
> [dnl
> -recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:77,dl_dst=50:54:00:00:01:78,nw_frag=no,
> actions: <del>
> +recirc_id(0),in_port(1),eth(src=50:54:00:00:00:77,dst=50:54:00:00:01:78),eth_type(0x0800),ipv4(frag=no),
> actions: <del>
>  ])
>
>  AT_CHECK([ovs-appctl dpif-netdev/pmd-stats-show | sed
> SED_NUMA_CORE_PATTERN | sed '/cycles/d' | grep pmd -A 4], [0], [dnl
> --
> 2.5.0
>
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to