We agree to the proposal to always match on packet_type in the datapath. It also makes sense to suppress packet_type=eth matches in *OpenFlow* flow entries.
However, we have noticed that the same format_match() function is apparently also used in formatting Megaflow entries, e.g. in the context of ofproto/trace: > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=1,len=0}),flags(df|key)),in_port(6081),skb_mark(0), > eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata1,tun_metadata2=NP,in_port=1,nw_ecn=0,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata1,tun_metadata2=NP,in_port=1,nw_ecn=0,nw_frag=no > Datapath actions: > set(tunnel(tun_id=0x0,dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0x1,len=0}),flags(df|key))),6081 > ]) With your changes the megaflows exclude the packet_type=(0,0) field even though the datapath flow entry does include it when printed. We think this mismatch would be quite confusing for users. Can the match_format function be parameterized to distinguish OF from datapath matches? Or can the context be implied from the match content, e.g. the presence of a mandatory datapath-specific field such as reicrc_id? > -----Original Message----- > From: ovs-dev-boun...@openvswitch.org > [mailto:ovs-dev-boun...@openvswitch.org] On Behalf Of Ben Pfaff > Sent: Tuesday, 13 June, 2017 00:29 > To: d...@openvswitch.org > Cc: Ben Pfaff <b...@ovn.org> > Subject: [ovs-dev] [PATCH 06/31] fixup: Always match on packet_type in > datapath flows. > > The packet type is even more basic to a packet than L2 fields, which OVS > has always matched on for a long time. It simplifies reasoning about > flow translation to simply always include the match in ODP translation. > > At the same time, when we're displaying an OpenFlow flow, as opposed to > a datapath flow, there is no point in displaying the match on the packet > type if it's the default one, so omit it. > > Signed-off-by: Ben Pfaff <b...@ovn.org> > --- > include/openvswitch/match.h | 3 + > lib/flow.c | 2 +- > lib/match.c | 21 +++- > ofproto/ofproto-dpif-xlate.c | 1 + > tests/dpif-netdev.at | 81 +++++++-------- > tests/ofproto-dpif.at | 230 > +++++++++++++++++++++---------------------- > tests/pmd.at | 6 +- > tests/tunnel.at | 18 ++-- > 8 files changed, 193 insertions(+), 169 deletions(-) > > diff --git a/include/openvswitch/match.h b/include/openvswitch/match.h > index 9e15da24d14b..58ca5848b127 100644 > --- a/include/openvswitch/match.h > +++ b/include/openvswitch/match.h > @@ -117,6 +117,9 @@ void match_set_ct_ipv6_dst_masked(struct match *, const > struct in6_addr *, > const struct in6_addr *); > > void match_set_packet_type(struct match *, ovs_be32 packet_type); > +void match_set_default_packet_type(struct match *); > +bool match_has_default_packet_type(const struct match *); > + > void match_set_skb_priority(struct match *, uint32_t skb_priority); > void match_set_dl_type(struct match *, ovs_be16); > void match_set_dl_src(struct match *, const struct eth_addr ); > diff --git a/lib/flow.c b/lib/flow.c > index 218ba6fa53c7..cbd73f95b98a 100644 > --- a/lib/flow.c > +++ b/lib/flow.c > @@ -1457,7 +1457,6 @@ flow_wildcards_init_for_packet(struct flow_wildcards > *wc, > WC_MASK_FIELD(wc, tunnel.tp_dst); > WC_MASK_FIELD(wc, tunnel.gbp_id); > WC_MASK_FIELD(wc, tunnel.gbp_flags); > - WC_MASK_FIELD(wc, packet_type); > > if (!(flow->tunnel.flags & FLOW_TNL_F_UDPIF)) { > if (flow->tunnel.metadata.present.map) { > @@ -1489,6 +1488,7 @@ flow_wildcards_init_for_packet(struct flow_wildcards > *wc, > > /* actset_output wildcarded. */ > > + WC_MASK_FIELD(wc, packet_type); > WC_MASK_FIELD(wc, dl_dst); > WC_MASK_FIELD(wc, dl_src); > WC_MASK_FIELD(wc, dl_type); > diff --git a/lib/match.c b/lib/match.c > index ec27bc117383..0e23eb6e6069 100644 > --- a/lib/match.c > +++ b/lib/match.c > @@ -483,6 +483,25 @@ match_set_packet_type(struct match *match, ovs_be32 > packet_type) > match->wc.masks.packet_type = OVS_BE32_MAX; > } > > +/* If 'match' does not match on any packet type, make it match on Ethernet > + * packets (the default packet type, as specified by OpenFlow). */ > +void > +match_set_default_packet_type(struct match *match) > +{ > + if (!match->wc.masks.packet_type) { > + match_set_packet_type(match, htonl(PT_ETH)); > + } > +} > + > +/* Returns true if 'match' matches only Ethernet packets (the default packet > + * type, as specified by OpenFlow). */ > +bool > +match_has_default_packet_type(const struct match *match) > +{ > + return (match->flow.packet_type == htonl(PT_ETH) > + && match->wc.masks.packet_type == OVS_BE32_MAX); > +} > + > void > match_set_dl_type(struct match *match, ovs_be16 dl_type) > { > @@ -1256,7 +1275,7 @@ match_format(const struct match *match, > format_be16_masked(s, "ct_tp_dst", f->ct_tp_dst, > wc->masks.ct_tp_dst); > } > > - if (wc->masks.packet_type) { > + if (wc->masks.packet_type && !match_has_default_packet_type(match)) { > format_packet_type_masked(s, f->packet_type, wc->masks.packet_type); > ds_put_char(s, ','); > if (pt_ns(f->packet_type) == OFPHTN_ETHERTYPE) { > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index dabdcffc2a89..a94e9f689c1b 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -6126,6 +6126,7 @@ xlate_wc_init(struct xlate_ctx *ctx) > flow_wildcards_init_catchall(ctx->wc); > > /* Some fields we consider to always be examined. */ > + WC_MASK_FIELD(ctx->wc, packet_type); > WC_MASK_FIELD(ctx->wc, in_port); > WC_MASK_FIELD(ctx->wc, dl_type); > if (is_ip_any(&ctx->xin->flow)) { > diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at > index d6f92eb19bb2..a526b85165bc 100644 > --- a/tests/dpif-netdev.at > +++ b/tests/dpif-netdev.at > @@ -68,16 +68,16 @@ m4_define([DPIF_NETDEV_DUMMY_IFACE], > AT_CHECK([ovs-ofctl add-flow br1 action=normal]) > ovs-appctl time/stop > ovs-appctl time/warp 5000 > - 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: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([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)']) > + AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > + AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > ovs-appctl time/warp 100 > sleep 1 # wait for forwarders process packets > > AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl > -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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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,28 +95,29 @@ m4_define([DPIF_NETDEV_MISS_FLOW_INSTALL], > AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) > > AT_CHECK([ovs-ofctl add-flow br0 action=normal]) > - 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(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([ovs-appctl netdev-dummy/receive p1 > 'in_port(1),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > + ovs-appctl ofproto/trace > 'in_port(1),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' > sleep 1 > > AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1], [0], [dnl > > skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(sr > c=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,co > de=0) > ]) > AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl > -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),packet_type(ns=0,id=0),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. > AT_CHECK([ovs-appctl upcall/disable-megaflows], [0], [megaflows disabled > ]) > - 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(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([ovs-appctl netdev-dummy/receive p1 > 'in_port(1),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > sleep 1 > > AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1], [0], [dnl > > skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(sr > c=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,co > de=0) > ]) > AT_CHECK([filter_flow_install < ovs-vswitchd.log | strip_xout], [0], [dnl > -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),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(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(0x0 > 800),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),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 > @@ -136,14 +137,14 @@ m4_define([DPIF_NETDEV_MISS_FLOW_DUMP], > AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg]) > > AT_CHECK([ovs-ofctl add-flow br0 action=normal]) > - 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(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([ovs-appctl netdev-dummy/receive p1 > 'in_port(1),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > sleep 1 > > AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1], [0], [dnl > > skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(sr > c=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,co > de=0) > ]) > AT_CHECK([filter_flow_dump < ovs-vswitchd.log | strip_xout], [0], [dnl > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=*),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos= > 0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, > used:never, actions: <del> > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type( > ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos > =0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, > used:never, actions: <del> > ]) > > # Now, the same again without megaflows. > @@ -151,15 +152,15 @@ > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label > ]) > AT_CHECK([ovs-appctl upcall/disable-ufid], [0], [Datapath dumping tersely > using UFID disabled > ], []) > - 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(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([ovs-appctl netdev-dummy/receive p1 > 'in_port(1),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) > sleep 1 > > AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1], [0], [dnl > > skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(sr > c=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,co > de=0) > ]) > AT_CHECK([filter_flow_dump < ovs-vswitchd.log | strip_xout], [0], [dnl > - > skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=*),e > th(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:0, bytes:0, used:never, actions: <del> > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=*),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos= > 0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, > used:never, actions: <del> > +skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0), > 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(typ > e=8,code=0), packets:0, bytes:0, used:never, actions: <del> > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type( > ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos > =0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, > used:never, actions: <del> > ]) > > OVS_VSWITCHD_STOP > @@ -201,16 +202,16 @@ type=drop rate=1 burst_size=2 > ]) > > ovs-appctl time/warp 5000 > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > sleep 1 # wait for forwarders process packets > > # Meter 1 is measuring packets, allowing one packet per second with > @@ -230,16 +231,16 @@ meter:2 flow_count:1 packet_in_count:5 > byte_in_count:300 duration:0.0s bands: > # Advance time by 1/2 second > ovs-appctl time/warp 500 > > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -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: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)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > -AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no > ),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),packet_type(ns=0,id=0),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,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > +AT_CHECK([ovs-appctl netdev-dummy/receive p8 > 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,prot > o=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60]) > sleep 1 # wait for forwarders process packets > > # Meter 1 is measuring packets, allowing one packet per second with > @@ -258,10 +259,10 @@ meter:2 flow_count:1 packet_in_count:10 > byte_in_count:600 duration:0.0s bands: > ]) > > AT_CHECK([cat ovs-vswitchd.log | filter_flow_install | > strip_xout_keep_actions], [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), actions:meter(0),7 > -recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), actions:8 > -recirc_id(0),in_port(7),eth_type(0x0800),ipv4(frag=no), actions:meter(1),1 > -recirc_id(0),in_port(8),eth_type(0x0800),ipv4(frag=no), actions:2 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:meter(0),7 > +recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:8 > +recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:meter(1),1 > +recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:2 > ]) > > OVS_VSWITCHD_STOP > diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at > index 5a1b6e7e7b12..e73bce80a9d9 100644 > --- a/tests/ofproto-dpif.at > +++ b/tests/ofproto-dpif.at > @@ -43,12 +43,12 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p7 > 'in_port(7),eth(src=50:54:00:00:00: > 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),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> > +recirc_id(0),in_port(3),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -477,9 +477,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows | sed > 's/dp_hash(.*\/0x1)/dp_hash(0xXXXX\/0x1)/' | sed > 's/packets.*actions:1/actions:1/' | > strip_ufid | strip_used | sort], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), > packets:15, bytes:630, used:0.0s, > actions:hash(hash_l4(0)),recirc(0x1) > -recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),eth_type(0x0800),ipv4(frag=no), > actions:10 > -recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),eth_type(0x0800),ipv4(frag=no), > actions:11 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), > packets:15, bytes:630, used:0.0s, > actions:hash(hash_l4(0)),recirc(0x1) > +recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:10 > +recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:11 > ]) > > AT_CHECK([ovs-appctl revalidator/purge], [0]) > @@ -493,8 +493,8 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows | sed > 's/dp_hash(.*\/0x1)/dp_hash(0xXXXX\/0x1)/' | strip_ufid | strip_used | sort], > [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), > packets:15, bytes:630, used:0.0s, > actions:hash(hash_l4(0)),recirc(0x2) > -recirc_id(0x2),dp_hash(0xXXXX/0x1),in_port(1),eth_type(0x0800),ipv4(frag=no), > packets:15, bytes:630, used:0.0s, actions:11 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), > packets:15, bytes:630, used:0.0s, > actions:hash(hash_l4(0)),recirc(0x2) > +recirc_id(0x2),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:15, bytes:630, used:0.0s, > actions:11 > ]) > > OVS_VSWITCHD_STOP > @@ -4030,9 +4030,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), > packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),5 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:0, bytes:0, used:never, actions:6 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, > actions:set(tcp(dst=81)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), > packets:0, bytes:0, used:never, > actions:set(tcp(dst=81)),5 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:0, bytes:0, used:never, actions:6 > ]) > > mode=drop > @@ -4048,9 +4048,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(frag=first), packets:0, > bytes:0, used:never, actions:drop > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(frag=later), packets:0, > bytes:0, used:never, actions:drop > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, > actions:set(tcp(dst=81)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=first), > packets:0, bytes:0, used:never, actions:drop > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=later), > packets:0, bytes:0, used:never, actions:drop > ]) > > mode=nx-match > @@ -4066,9 +4066,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), > packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),2 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:0, bytes:0, used:never, actions:6 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), > packets:0, bytes:0, used:never, > actions:set(tcp(dst=81)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), > packets:0, bytes:0, used:never, > actions:set(tcp(dst=81)),2 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:0, bytes:0, used:never, actions:6 > ]) > > OVS_VSWITCHD_STOP > @@ -4141,9 +4141,9 @@ dnl wildcard and the set_field action have a mask of > 0xFF. Up to (including) > dnl OVS-2.5, the wildcards and set_field mask are shared internally. > AT_CHECK([ovs-appctl dpctl/dump-flows | sed > 's/used:[[0-9]].[[0-9]]*s/used:0.001s/'], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=33419/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=33419/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:74, used:0.001s, actions:1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=33419/0xff), > packets:0, bytes:0, > used:never, actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=33419/0xff), > packets:0, bytes:0, > used:never, actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:74, used:0.001s, actions:1 > ]) > > AT_CHECK([ovs-appctl revalidator/purge], [0]) > @@ -4156,9 +4156,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows | sed > 's/used:[[0-9]].[[0-9]]*s/used:0.001s/'], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:38, used:0.001s, actions:1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:38, used:0.001s, actions:1 > ]) > > AT_CHECK([ovs-appctl revalidator/purge], [0]) > @@ -4171,9 +4171,9 @@ done > > AT_CHECK([ovs-appctl dpctl/dump-flows | sed > 's/used:[[0-9]].[[0-9]]*s/used:0.001s/'], [0], [dnl > flow-dump from non-dpdk interfaces: > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > -recirc_id(0),in_port(90),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:34, used:0.001s, actions:1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), > packets:0, bytes:0, used:never, > actions:set(tcp(src=42/0xff)),1 > +recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), > packets:1, bytes:34, used:0.001s, actions:1 > ]) > > OVS_VSWITCHD_STOP > @@ -7203,21 +7203,21 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p2 > 'in_port(2),eth(src=50:54:00:00:00: > AT_CHECK([ovs-appctl netdev-dummy/receive p3 > 'in_port(3),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)']) > ovs-appctl revalidator/wait > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, > used:never, actions:drop > -recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, > used:never, actions:drop > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, actions:drop > +recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, actions:drop > ]) > > AT_CHECK([ovs-appctl dpif/dump-flows br1 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(3),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, > used:never, actions:drop > +recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, actions:drop > ]) > > AT_CHECK([ovs-appctl dpif/dump-flows -m br0 | strip_ufid | strip_used | > sort], [0], [dnl > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p1),packet_type( > ns=0,id=*),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.1/ > 0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:0, bytes:0, used:never, actions:drop > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p2),packet_type( > ns=0,id=*),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.2/ > 0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=0/0,code=0/0), > packets:0, bytes:0, used:never, actions:drop > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p1),packet_type > (ns=0,id=0),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.1 > /0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:0, bytes:0, used:never, > actions:drop > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p2),packet_type > (ns=0,id=0),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.2 > /0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=0/0,code=0/0), > packets:0, bytes:0, used:never, > actions:drop > ]) > > AT_CHECK([ovs-appctl dpif/dump-flows -m br1 | strip_ufid | strip_used | > sort], [0], [dnl > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p3),packet_type( > ns=0,id=*),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(0x0800),ipv4(src=10.0.0.2/0.0. > 0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:0, bytes:0, used:never, actions:drop > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p3),packet_type > (ns=0,id=0),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(0x0800),ipv4(src=10.0.0.2/0.0 > .0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:0, bytes:0, used:never, actions:drop > ]) > > OVS_VSWITCHD_STOP > @@ -7240,7 +7240,7 @@ m4_define([OFPROTO_DPIF_GET_FLOW], > > UFID=`sed -n 's/\(ufid:[[-0-9a-fA-F]]*\).*/\1/p' stdout` > AT_CHECK([ovs-appctl dpctl/get-flow $UFID], [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, > used:never, actions:drop > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, actions:drop > ]) > > OVS_VSWITCHD_STOP > @@ -7277,8 +7277,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),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,t > tl=32/0xff,bos=1/1), actions:userspace(pid=0,slow_path(controller)) > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -7316,8 +7316,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),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,t > tl=32/0xff,bos=1/1), actions:userspace(pid=0,slow_path(controller)) > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -7372,15 +7372,15 @@ dummy@ovs-dummy: hit:13 missed:2 > ]) > > AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used], > [0], [dnl > -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 > +recirc_id(0),in_port(100),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:101,3,2 > +recirc_id(0),in_port(101),packet_type(ns=0,id=0),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 > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(100),packet_type > (ns=0,id=*),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.1 > /0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:9, bytes:378, used:0.0s, > actions:101,3,2 > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(100),packet_typ > e(ns=0,id=0),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0. > 1/0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:9, bytes:378, used:0.0s, > actions:101,3,2 > ]) > AT_CHECK([grep -e 'in_port(101).*packets:4' ovs-vswitchd.log | strip_ufid | > filter_flow_dump], [0], [dnl > - > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(101),packet_type > (ns=0,id=*),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.2 > /0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:4, bytes:168, used:0.0s, > actions:100,2,3 > +skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(101),packet_typ > e(ns=0,id=0),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0. > 2/0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), > packets:4, bytes:168, used:0.0s, > actions:100,2,3 > ]) > > AT_CHECK([ovs-ofctl dump-ports br0 pbr0], [0], [dnl > @@ -7437,7 +7437,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),in_port(100),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), > actions:101,set(ipv4(src=255.255.255.254)),2 > +recirc_id(0),in_port(100),packet_type(ns=0,id=0),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 '|ofproto_dpif_xlate|WARN|' ovs-vswitchd.log | sed > "s/^.*|WARN|//"], [0], [dnl > @@ -7480,7 +7480,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),in_port(1),eth_type(0x0800),ipv4(frag=no), actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7497,8 +7497,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7516,8 +7516,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2/255.255.255.252,frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7535,8 +7535,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:1:2:3:4:5,frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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 > @@ -7554,7 +7554,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),in_port(1),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7570,8 +7570,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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]) > @@ -7592,8 +7592,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),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 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -7619,8 +7619,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),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/0x > fc,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/0x > fc,frag=no),icmp(type=8,code=0), actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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]) > @@ -7651,8 +7651,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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]) > @@ -7675,8 +7675,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -7713,8 +7713,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),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> > +recirc_id(0),in_port(7),packet_type(ns=0,id=0),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),packet_type(ns=0,id=0),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 > @@ -7732,8 +7732,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7752,8 +7752,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7771,8 +7771,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7796,7 +7796,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),in_port(1),eth_type(0x0800),ipv4(frag=no), actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7818,8 +7818,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=11,pcp=7/0x0),encap(eth_type(0x0800),ipv4(frag=no)), > actions: > <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7838,8 +7838,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7856,8 +7856,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7883,8 +7883,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7915,9 +7915,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0xfd/0x3,frag=no), > actions: <del> > +recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0x1,ttl=64,frag=no), > actions: <del> > +recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0xfd,ttl=128,frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7935,8 +7935,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),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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2/255.255.255.252,frag=no), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,ttl=64,frag=no), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -7956,8 +7956,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),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 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), > actions:2 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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 > @@ -7987,12 +7987,12 @@ 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 > -skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(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(0x0 > 800),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),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(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(0x0 > 800),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 > +skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),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),ct_state(-new-est-rel-rpl-inv-trk-snat- > dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),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),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=*),e > th(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:126, used:0.0s, actions:2 > - > skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=*),e > th(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), packets:3, bytes:126, used:0.0s, actions:drop > +skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0), > 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(typ > e=8,code=0), packets:3, bytes:126, used:0.0s, actions:2 > +skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0), > 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), packets:3, bytes:126, used:0.0s, actions:drop > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP]) > @@ -8561,8 +8561,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),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 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128), > actions:2 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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 > @@ -8608,7 +8608,7 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p0 > 'in_port(1),eth(src=50:54:00:00:00: > > 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),in_port(1),eth_type(0x8100),vlan(vid=10),encap(eth_type(0x0800),ipv4(frag=no)), > actions: <del> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=10),encap(eth_type(0x0800),ipv4(frag=no)), > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -8636,7 +8636,7 @@ for i in 1 2; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:2, bytes:28, used:0.0s, > actions:push_vlan(vid=3,pcp=0),100 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:2, > bytes:28, used:0.0s, actions:push_vlan(vid=3,pcp=0),100 > ]) > > AT_CHECK([ovs-ofctl add-flow br0 > priority=60000,in_port=1,actions=mod_vlan_vid:4,output:local]) > @@ -8649,11 +8649,11 @@ for i in 1 2 3; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:5, bytes:70, used:0.0s, > actions:push_vlan(vid=4,pcp=0),100 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:5, > bytes:70, used:0.0s, actions:push_vlan(vid=4,pcp=0),100 > ]) > > AT_CHECK([grep 'modify' ovs-vswitchd.log | strip_ufid ], [0], [dnl > -dpif|DBG|dummy@ovs-dummy: put[[modify]] > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=*),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:push_vlan(vid=4,pcp=0),100 > +dpif|DBG|dummy@ovs-dummy: put[[modify]] > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=0),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:push_vlan(vid=4,pcp=0),100 > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -8681,7 +8681,7 @@ for i in 1 2; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:2, bytes:28, used:0.0s, > actions:100 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:2, > bytes:28, used:0.0s, actions:100 > ]) > > # Delete the flow. Then check that the datapath flow is modified to > @@ -8697,7 +8697,7 @@ for i in 1 2 3; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:5, bytes:70, used:0.0s, > actions:drop > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:5, > bytes:70, used:0.0s, actions:drop > ]) > > # Add a flow that matches the non-presence of a vlan tag, and check > @@ -8712,7 +8712,7 @@ for i in 1 2 3; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:8, bytes:112, used:0.0s, > actions:100 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:8, > bytes:112, used:0.0s, actions:100 > ]) > > # Check that VLAN packets will not hit the same datapath megaflow. > @@ -8725,17 +8725,17 @@ for i in 1 2; do > done > > AT_CHECK([ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x1234), packets:8, bytes:112, used:0.0s, > actions:100 > -recirc_id(0),in_port(1),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), > packets:2, bytes:36, used:0.0s, actions:drop > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:8, > bytes:112, used:0.0s, actions:100 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), > packets:2, bytes:36, > used:0.0s, actions:drop > ]) > > # 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),eth_type(0x1234), > actions:100 > -dpif|DBG|dummy@ovs-dummy: put[[modify]] > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=*),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),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=*),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),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), > actions:drop > +dpif_netdev|DBG|flow_add: > recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), actions:100 > +dpif|DBG|dummy@ovs-dummy: put[[modify]] > skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=0),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),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns > =0,id=0),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),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), > actions:drop > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -9060,10 +9060,10 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p2 > 'in_port(2),eth(src=50:54:00:00:00: > > > AT_CHECK([cat ovs-vswitchd.log | strip_ufid | filter_flow_install], [0], [dnl > -ct_state(+new-est+trk),recirc_id(0x1),in_port(2),eth_type(0x0800),ipv4(frag=no), > actions:drop > -ct_state(-new+est+trk),recirc_id(0x1),in_port(2),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:1 > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct(commit),2 > -recirc_id(0),in_port(2),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct,recirc(0x1) > +ct_state(+new-est+trk),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:drop > +ct_state(-new+est+trk),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:1 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct(commit),2 > +recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct,recirc(0x1) > ]) > > OVS_VSWITCHD_STOP > @@ -9469,9 +9469,9 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p2 > 'in_port(2),eth(src=50:54:00:00:00: > ovs-appctl revalidator/wait > > AT_CHECK([cat ovs-vswitchd.log | strip_ufid | filter_flow_install], [0], [dnl > -ct_state(+rpl+trk),ct_label(0x1),recirc_id(0x1),in_port(2),eth_type(0x0800),ipv4(frag=no), > actions:1 > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=no),udp(src=1), > actions:ct(commit,label=0x1),2 > -recirc_id(0),in_port(2),eth_type(0x0800),ipv4(frag=no), > actions:ct,recirc(0x1) > +ct_state(+rpl+trk),ct_label(0x1),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:1 > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no),udp(src=1), > actions:ct(commit,label=0x1),2 > +recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > actions:ct,recirc(0x1) > ]) > > OVS_VSWITCHD_STOP > @@ -9495,7 +9495,7 @@ dnl Start a new connection from port 1. > 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(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=n > o),udp(src=1,dst=2)']) > > AT_CHECK([cat ovs-vswitchd.log | strip_ufid | filter_flow_install], [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct(commit) > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), > actions:ct(commit) > ]) > > OVS_VSWITCHD_STOP > @@ -9781,7 +9781,7 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1 > 'recirc_id(0),in_port(1),eth_type(0 > ovs-appctl time/warp 5000 > > AT_CHECK([strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used], > [0], [dnl > -recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=later), > actions:drop > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=later), > actions:drop > ]) > > dnl Change the flow table. This will trigger revalidation of all the flows. > diff --git a/tests/pmd.at b/tests/pmd.at > index 40138332a679..d041dce96d25 100644 > --- a/tests/pmd.at > +++ b/tests/pmd.at > @@ -194,7 +194,7 @@ AT_CHECK([grep -A 1 'miss upcall' ovs-vswitchd.log | tail > -n 1], [0], [dnl > > skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(sr > c=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,co > de=0) > ]) > AT_CHECK([cat ovs-vswitchd.log | filter_flow_install | strip_xout], [0], [dnl > -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> > +recirc_id(0),in_port(1),packet_type(ns=0,id=0),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 5], [0], [dnl > @@ -303,8 +303,8 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) > > dnl Make sure that both flows have been installed > AT_CHECK([ovs-appctl dpctl/dump-flows | flow_dump_prepend_pmd], [0], [dnl > -0 recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:0, > bytes:0, used:never, actions:userspace(pid=0,slow_path(controller)) > -1 recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), packets:0, > bytes:0, used:never, actions:userspace(pid=0,slow_path(controller)) > +0 > recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, > actions:userspace(pid=0,slow_path(controller)) > +1 > recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, > actions:userspace(pid=0,slow_path(controller)) > ]) > > AT_CHECK([cat ofctl_monitor.log], [0], [dnl > diff --git a/tests/tunnel.at b/tests/tunnel.at > index 222fb8d1a603..447c7205f224 100644 > --- a/tests/tunnel.at > +++ b/tests/tunnel.at > @@ -82,28 +82,28 @@ AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl > dnl Tunnel CE and encapsulated packet CE > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(s > rc=192.168.0.1,dst=192.168.0.2,proto=6,tos=3,ttl=64,frag=no),tcp(src=8,dst=9)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum- > key,in_port=1,nw_ecn=3,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=3,nw_frag=no > Datapath actions: 2 > ]) > > dnl Tunnel CE and encapsulated packet ECT(1) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(s > rc=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum- > key,in_port=1,nw_ecn=1,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=1,nw_frag=no > Datapath actions: set(ipv4(tos=0x3/0x3)),2 > ]) > > dnl Tunnel CE and encapsulated packet ECT(2) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(s > rc=192.168.0.1,dst=192.168.0.2,proto=6,tos=2,ttl=64,frag=no),tcp(src=8,dst=9)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum- > key,in_port=1,nw_ecn=2,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=2,nw_frag=no > Datapath actions: set(ipv4(tos=0x3/0x3)),2 > ]) > > dnl Tunnel CE and encapsulated packet Non-ECT > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(s > rc=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum- > key,in_port=1,nw_ecn=0,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=0,nw_frag=no > Datapath actions: drop > ]) > OVS_VSWITCHD_STOP(["/dropping tunnel packet marked ECN CE but is not ECN > capable/d"]) > @@ -490,14 +490,14 @@ AT_CHECK([tail -1 stdout], [0], > dnl Option match > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}),flags(df|key)),in_port(6081),skb_mar > k(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no > Datapath actions: 2 > ]) > > dnl Skip unknown option > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}{class=0xffff,type=2,len=4,0xc}),flags(d > f|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no > Datapath actions: 2 > ]) > > @@ -531,7 +531,7 @@ AT_CHECK([ovs-ofctl add-tlv-map br0 > "{class=0xffff,type=3,len=8}->tun_metadata3" > AT_CHECK([ovs-ofctl add-flow br0 tun_metadata3=0x1234567890abcdef,actions=2]) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=3,len=8,0x1234567890abcdef}),flags(df|key)),in_p > ort(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata3=0x1234567890abcdef,in_port=1,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata3=0x1234567890abcdef,in_port=1,nw_frag=no > Datapath actions: 2 > ]) > > @@ -640,13 +640,13 @@ NXST_FLOW reply: > > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x12345678}),flags(df|key)),in_port(6081), > skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0,tun_metadata1=NP,tun_metadata2=NP,in_port=1,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata0,tun_metadata1=NP,tun_metadata2=NP,in_port=1,nw_frag=no > Datapath actions: 2 > ]) > > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=1,len=0}),flags(df|key)),in_port(6081),skb_mark(0), > eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,packet_type=(0,0),ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata1,tun_metadata2=NP,in_port=1,nw_ecn=0,nw_frag=no > + [Megaflow: > recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df- > csum+key,tun_metadata1,tun_metadata2=NP,in_port=1,nw_ecn=0,nw_frag=no > Datapath actions: > set(tunnel(tun_id=0x0,dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0x1,len=0}),flags(df|key))),6081 > ]) > > -- > 2.10.2 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev