Looks good to me, thanks! Acked-by: Jarno Rajahalme <jrajaha...@nicira.com>
Pushed to master, Jarno On Sep 17, 2014, at 2:14 PM, Daniele Di Proietto <ddiproie...@vmware.com> wrote: > This optimization should give a small performance benefit to the userspace > datapath. > > Signed-off-by: Daniele Di Proietto <ddiproie...@vmware.com> > --- > ofproto/ofproto-dpif-xlate.c | 25 ++++++-- > tests/classifier.at | 20 +++---- > tests/dpif-netdev.at | 16 ++--- > tests/ofproto-dpif.at | 136 +++++++++++++++++++++---------------------- > tests/tunnel.at | 8 +-- > 5 files changed, 110 insertions(+), 95 deletions(-) > > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index 57afa80..1d46456 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -352,6 +352,7 @@ static struct xport *get_ofp_port(const struct xbridge *, > ofp_port_t ofp_port); > static struct skb_priority_to_dscp *get_skb_priority(const struct xport *, > uint32_t skb_priority); > static void clear_skb_priorities(struct xport *); > +static size_t count_skb_priorities(const struct xport *); > static bool dscp_from_skb_priority(const struct xport *, uint32_t > skb_priority, > uint8_t *dscp); > > @@ -2578,10 +2579,13 @@ compose_output_action__(struct xlate_ctx *ctx, > ofp_port_t ofp_port, > flow_pkt_mark = flow->pkt_mark; > flow_nw_tos = flow->nw_tos; > > - if (dscp_from_skb_priority(xport, flow->skb_priority, &dscp)) { > - wc->masks.nw_tos |= IP_DSCP_MASK; > - flow->nw_tos &= ~IP_DSCP_MASK; > - flow->nw_tos |= dscp; > + if (count_skb_priorities(xport)) { > + memset(&wc->masks.skb_priority, 0xff, sizeof wc->masks.skb_priority); > + if (dscp_from_skb_priority(xport, flow->skb_priority, &dscp)) { > + wc->masks.nw_tos |= IP_DSCP_MASK; > + flow->nw_tos &= ~IP_DSCP_MASK; > + flow->nw_tos |= dscp; > + } > } > > if (xport->is_tunnel) { > @@ -3671,6 +3675,8 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t > ofpacts_len, > break; > > case OFPACT_ENQUEUE: > + memset(&wc->masks.skb_priority, 0xff, > + sizeof wc->masks.skb_priority); > xlate_enqueue_action(ctx, ofpact_get_ENQUEUE(a)); > break; > > @@ -3777,10 +3783,14 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t > ofpacts_len, > break; > > case OFPACT_SET_QUEUE: > + memset(&wc->masks.skb_priority, 0xff, > + sizeof wc->masks.skb_priority); > xlate_set_queue_action(ctx, ofpact_get_SET_QUEUE(a)->queue_id); > break; > > case OFPACT_POP_QUEUE: > + memset(&wc->masks.skb_priority, 0xff, > + sizeof wc->masks.skb_priority); > flow->skb_priority = ctx->orig_skb_priority; > break; > > @@ -4018,6 +4028,12 @@ dscp_from_skb_priority(const struct xport *xport, > uint32_t skb_priority, > return pdscp != NULL; > } > > +static size_t > +count_skb_priorities(const struct xport *xport) > +{ > + return hmap_count(&xport->skb_priorities); > +} > + > static void > clear_skb_priorities(struct xport *xport) > { > @@ -4195,7 +4211,6 @@ xlate_actions(struct xlate_in *xin, struct xlate_out > *xout) > > flow_wildcards_init_catchall(wc); > memset(&wc->masks.in_port, 0xff, sizeof wc->masks.in_port); > - memset(&wc->masks.skb_priority, 0xff, sizeof wc->masks.skb_priority); > memset(&wc->masks.dl_type, 0xff, sizeof wc->masks.dl_type); > if (is_ip_any(flow)) { > wc->masks.nw_frag |= FLOW_NW_FRAG_MASK; > diff --git a/tests/classifier.at b/tests/classifier.at > index 710060f..4d23be5 100644 > --- a/tests/classifier.at > +++ b/tests/classifier.at > @@ -40,22 +40,22 @@ table=0 in_port=3 priority=0,ip,action=drop > AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no > + [Megaflow: recirc_id=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no > Datapath actions: 1 > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_dst=0.0.0.0/2.0.0.0,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_dst=0.0.0.0/2.0.0.0,nw_frag=no > Datapath actions: drop > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80 > + [Megaflow: recirc_id=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80 > Datapath actions: drop > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=0x1/0x1 > + [Megaflow: > recirc_id=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=0x1/0x1 > Datapath actions: 2 > ]) > OVS_VSWITCHD_STOP > @@ -83,7 +83,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) > # nw_dst and nw_src should be on by default > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no > Datapath actions: drop > ]) > > @@ -98,28 +98,28 @@ AT_CHECK([ovs-vsctl set Flow_Table t0 > prefixes=nw_dst,nw_dst], [1], [], > AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst], [0]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no > Datapath actions: drop > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no > + [Megaflow: recirc_id=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no > Datapath actions: 1 > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80 > + [Megaflow: recirc_id=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80 > Datapath actions: drop > ]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_src=0x0/0x1,tp_dst=0x40/0xfff0 > + [Megaflow: > recirc_id=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_src=0x0/0x1,tp_dst=0x40/0xfff0 > Datapath actions: 3 > ]) > AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=none], [0]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.3.16,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,tcp,in_port=1,nw_dst=10.1.3.16,nw_frag=no > + [Megaflow: recirc_id=0,tcp,in_port=1,nw_dst=10.1.3.16,nw_frag=no > Datapath actions: 3 > ]) > OVS_VSWITCHD_STOP(["/'prefixes' with incompatible field: ipv6_label/d"]) > diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at > index 83a4e61..af7845c 100644 > --- a/tests/dpif-netdev.at > +++ b/tests/dpif-netdev.at > @@ -44,10 +44,10 @@ ovs-appctl time/warp 100 > sleep 1 # wait for forwarders process packets > > AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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,skb_priority=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,skb_priority=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,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> > ]) > > OVS_VSWITCHD_STOP > @@ -68,7 +68,7 @@ AT_CHECK([cat ovs-vswitchd.log | grep -A 1 'miss upcall' | > 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: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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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:09,dl_dst=50:54:00:00:00:0a,nw_frag=no, > actions: <del> > ]) > > # Now, the same again without megaflows. > @@ -82,7 +82,7 @@ > skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00: > ]) > AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > pkt_mark=0,recirc_id=0,skb_priority=0,icmp,tun_id=0,tun_src=0.0.0.0,tun_dst=0.0.0.0,tun_tos=0,tun_ttl=0,,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,mpls_label=0,mpls_tc=0,mpls_ttl=0,mpls_bos=0,mpls_lse1=0,mpls_lse2=0,icmp_type=8,icmp_code=0, > actions: <del> > -recirc_id=0,skb_priority=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:09,dl_dst=50:54:00:00:00:0a,nw_frag=no, > actions: <del> > ]) > > OVS_VSWITCHD_STOP > @@ -103,7 +103,7 @@ AT_CHECK([cat ovs-vswitchd.log | grep -A 1 'miss upcall' > | 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: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([cat ovs-vswitchd.log | FILTER_FLOW_DUMP | STRIP_XOUT], [0], [dnl > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/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/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),recirc_id(0),dp_hash(0/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/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. > @@ -117,7 +117,7 @@ > skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),in_port(1),eth(src=50:54:00: > ]) > AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_DUMP | STRIP_XOUT], [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:0, bytes:0, used:never, actions: <del> > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/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/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),recirc_id(0),dp_hash(0/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/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 > diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at > index 107f363..181e740 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([cat ovs-vswitchd.log | grep 'in_port=[[348]]' | FILTER_FLOW_INSTALL > | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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,skb_priority=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,skb_priority=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,skb_priority=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,skb_priority=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> > +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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -192,7 +192,7 @@ table=2 ip > actions=set_field:192.168.3.91->ip_src,output(11) > AT_CHECK([ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > Datapath actions: > 10,set(ipv4(src=192.168.3.91)),11,set(ipv4(src=192.168.3.90)),13 > ]) > OVS_VSWITCHD_STOP > @@ -208,7 +208,7 @@ table=1 tcp > actions=set_field:91->tp_src,output(11),clear_actions > AT_CHECK([ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt]) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=9'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: recirc_id=0,skb_priority=0,tcp,in_port=1,nw_frag=no,tp_src=8 > + [Megaflow: recirc_id=0,tcp,in_port=1,nw_frag=no,tp_src=8 > Datapath actions: 10,set(tcp(src=91)),11 > ]) > OVS_VSWITCHD_STOP > @@ -234,7 +234,7 @@ AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_ds > # Must match on the source address to be able to restore it's value for > # the second bucket > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11 > ]) > OVS_VSWITCHD_STOP > @@ -261,7 +261,7 @@ AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_ds > # Must match on the source address to be able to restore it's value for > # the third bucket > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11 > ]) > OVS_VSWITCHD_STOP > @@ -442,7 +442,7 @@ AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 > 'group_id=1234,type=all,bucket=o > AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip > actions=write_actions(load:0xffffffff->NXM_NX_REG1[[]],move:NXM_NX_REG1[[]]->NXM_NX_REG2[[]],group:1234)']) > AT_CHECK([ovs-appctl ofproto/trace br0 > 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: > recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no > Datapath actions: > set(ipv4(src=255.255.255.255)),10,set(ipv4(src=192.168.0.1)),11 > ]) > OVS_VSWITCHD_STOP > @@ -518,19 +518,19 @@ table=1 in_port=1 action=dec_ttl,output:3 > AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=2,frag=no)' > -generate], [0], [stdout]) > AT_CHECK([tail -4 stdout], [0], > - [Megaflow: recirc_id=0,skb_priority=0,ip,in_port=1,nw_ttl=2,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_ttl=2,nw_frag=no > Datapath actions: set(ipv4(ttl=1)),2,4 > This flow is handled by the userspace slow path because it: > - Sends "packet-in" messages to the OpenFlow controller. > ]) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=3,frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: recirc_id=0,skb_priority=0,ip,in_port=1,nw_ttl=3,nw_frag=no > + [Megaflow: recirc_id=0,ip,in_port=1,nw_ttl=3,nw_frag=no > Datapath actions: set(ipv4(ttl=2)),2,set(ipv4(ttl=1)),3,4 > ]) > AT_CHECK([ovs-appctl ofproto/trace ovs-dummy > 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'], > [0], [stdout]) > AT_CHECK([tail -2 stdout], [0], > - [Megaflow: recirc_id=0,skb_priority=0,ipv6,in_port=1,nw_ttl=128,nw_frag=no > + [Megaflow: recirc_id=0,ipv6,in_port=1,nw_ttl=128,nw_frag=no > Datapath actions: set(ipv6(hlimit=127)),2,set(ipv6(hlimit=126)),3,4 > ]) > > @@ -4627,21 +4627,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 | sort | STRIP_USED], [0], [dnl > -skb_priority(0),recirc_id(0),in_port(1),eth_type(0x0800),ipv4(frag=no), > packets:0, bytes:0, used:never, actions:drop > -skb_priority(0),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),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 > ]) > > AT_CHECK([ovs-appctl dpif/dump-flows br1 | sort | STRIP_USED], [0], [dnl > -skb_priority(0),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),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, > used:never, actions:drop > ]) > > AT_CHECK([ovs-appctl dpif/dump-flows -m br0 | sort | STRIP_USED], [0], [dnl > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(p1),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),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(p2),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),recirc_id(0),dp_hash(0/0),in_port(p1),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),recirc_id(0),dp_hash(0/0),in_port(p2),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 | sort | STRIP_USED], [0], [dnl > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(p3),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),recirc_id(0),dp_hash(0/0),in_port(p3),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 > @@ -4676,7 +4676,7 @@ done > sleep 1 # wait for the datapath flow installed > for dl_src in 00 01; do > AT_CHECK_UNQUOTED([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | grep > "$dl_src," | STRIP_USED], [0], [dnl > -recirc_id=0,skb_priority=0,mpls,in_port=1,dl_src=60:66:66:66:66:$dl_src,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,mpls_lse2=0, > actions:userspace(pid=0,slow_path(controller)) > +recirc_id=0,mpls,in_port=1,dl_src=60:66:66:66:66:$dl_src,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,mpls_lse2=0, > actions:userspace(pid=0,slow_path(controller)) > ]) > done > > @@ -4716,7 +4716,7 @@ done > sleep 1 # wait for the datapath flow installed > for dl_src in 00 01; do > AT_CHECK_UNQUOTED([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | grep > "$dl_src," | STRIP_USED], [0], [dnl > -recirc_id=0,skb_priority=0,mpls,in_port=1,dl_src=60:66:66:66:66:$dl_src,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,mpls_lse2=0, > actions:userspace(pid=0,slow_path(controller)) > +recirc_id=0,mpls,in_port=1,dl_src=60:66:66:66:66:$dl_src,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=0,mpls_lse1=82208,mpls_lse2=0, > actions:userspace(pid=0,slow_path(controller)) > ]) > done > > @@ -4770,15 +4770,15 @@ dummy@ovs-dummy: hit:13 missed:2 > ]) > > AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_USED], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=100,nw_frag=no, actions:101,3,2 > -recirc_id=0,skb_priority=0,ip,in_port=101,nw_frag=no, actions:100,2,3 > +recirc_id=0,ip,in_port=100,nw_frag=no, actions:101,3,2 > +recirc_id=0,ip,in_port=101,nw_frag=no, actions:100,2,3 > ]) > > AT_CHECK([cat ovs-vswitchd.log | grep -e 'in_port(100).*packets:9' | > FILTER_FLOW_DUMP], [0], [dnl > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(100),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:540, used:0.0s, actions:101,3,2 > +skb_priority(0/0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(100),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:540, used:0.0s, actions:101,3,2 > ]) > AT_CHECK([cat ovs-vswitchd.log | grep -e 'in_port(101).*packets:4' | > FILTER_FLOW_DUMP], [0], [dnl > -skb_priority(0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(101),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:240, used:0.0s, actions:100,2,3 > +skb_priority(0/0),skb_mark(0/0),recirc_id(0),dp_hash(0/0),in_port(101),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:240, used:0.0s, actions:100,2,3 > ]) > > AT_CHECK([ovs-ofctl dump-ports br0 pbr0], [0], [dnl > @@ -4829,7 +4829,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4846,8 +4846,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:0b/ff:ff:00:00:00:02,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:0b/ff:ff:00:00:00:02,nw_frag=no, > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4865,8 +4865,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,icmp,in_port=1,nw_src=10.0.0.4,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.2/0.0.0.2,nw_frag=no, > actions: <del> > +recirc_id=0,icmp,in_port=1,nw_src=10.0.0.4,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.2/0.0.0.2,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4884,8 +4884,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ipv6,in_port=1,ipv6_src=2001:db8:3c4d:1:2:3:4:5,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ipv6,in_port=1,ipv6_src=2001:db8:3c4d:5:4:3:2:1/ffff:ffff:0:4::,nw_frag=no, > actions: <del> > +recirc_id=0,ipv6,in_port=1,ipv6_src=2001:db8:3c4d:1:2:3:4:5,nw_frag=no, > actions: <del> > +recirc_id=0,ipv6,in_port=1,ipv6_src=2001:db8:3c4d:5:4:3:2:1/ffff:ffff:0:4::,nw_frag=no, > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4903,7 +4903,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,icmp,in_port=1,nw_frag=no,icmp_type=0x8/0xff, > actions: <del> > +recirc_id=0,icmp,in_port=1,nw_frag=no,icmp_type=0x8/0xff, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4917,8 +4917,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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=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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4936,8 +4936,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,mpls,in_port=1,dl_src=50:54:00:00:00:09,mpls_label=11,mpls_tc=3,mpls_ttl=64,mpls_bos=1,mpls_lse1=0,mpls_lse2=0, > actions: <del> > -recirc_id=0,skb_priority=0,mpls,in_port=1,dl_src=50:54:00:00:00:0b,mpls_label=11,mpls_tc=3,mpls_ttl=64,mpls_bos=1,mpls_lse1=0,mpls_lse2=0, > actions: <del> > +recirc_id=0,mpls,in_port=1,dl_src=50:54:00:00:00:09,mpls_label=11,mpls_tc=3,mpls_ttl=64,mpls_bos=1,mpls_lse1=0,mpls_lse2=0, > actions: <del> > +recirc_id=0,mpls,in_port=1,dl_src=50:54:00:00:00:0b,mpls_label=11,mpls_tc=3,mpls_ttl=64,mpls_bos=1,mpls_lse1=0,mpls_lse2=0, > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -4966,8 +4966,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], > [dnl > -recirc_id=0,skb_priority=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,skb_priority=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,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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP]) > @@ -4990,8 +4990,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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=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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5011,8 +5011,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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=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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5049,8 +5049,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=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,skb_priority=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,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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5068,8 +5068,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:0b/ff:ff:00:00:00:02,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:0b/ff:ff:00:00:00:02,nw_frag=no, > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5088,8 +5088,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:0b,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:0b,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5107,8 +5107,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_src=50:54:00:00:00:0b,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:09,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,dl_src=50:54:00:00:00:0b,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5131,7 +5131,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5153,8 +5153,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_vlan=11,nw_frag=no, actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,vlan_tci=0x0000/0x1fff,nw_frag=no, > actions: <del> > +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> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5173,8 +5173,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.2,nw_frag=no, actions: > <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.4,nw_frag=no, actions: > <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.2,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.4,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5191,8 +5191,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.2,nw_frag=no, actions: > <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.4,nw_frag=no, actions: > <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.2,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.4,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5218,8 +5218,8 @@ done > sleep 1 > dnl The original flow is missing due to a revalidation. > AT_CHECK([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:0b,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:09,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:0b,nw_frag=no, > actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5250,9 +5250,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_ecn=1,nw_frag=no, actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=3,nw_tos=0,nw_ecn=1,nw_ttl=64,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=3,nw_tos=252,nw_ecn=1,nw_ttl=128,nw_frag=no, > actions: <del> > +recirc_id=0,ip,in_port=1,nw_ecn=1,nw_frag=no, actions: <del> > +recirc_id=0,ip,in_port=3,nw_tos=0,nw_ecn=1,nw_ttl=64,nw_frag=no, actions: > <del> > +recirc_id=0,ip,in_port=3,nw_tos=252,nw_ecn=1,nw_ttl=128,nw_frag=no, actions: > <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5270,8 +5270,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_XOUT], [0], [dnl > -recirc_id=0,skb_priority=0,icmp,in_port=1,nw_src=10.0.0.4,nw_ttl=64,nw_frag=no, > actions: <del> > -recirc_id=0,skb_priority=0,ip,in_port=1,nw_src=10.0.0.2/0.0.0.2,nw_frag=no, > actions: <del> > +recirc_id=0,icmp,in_port=1,nw_src=10.0.0.4,nw_ttl=64,nw_frag=no, actions: > <del> > +recirc_id=0,ip,in_port=1,nw_src=10.0.0.2/0.0.0.2,nw_frag=no, actions: <del> > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > @@ -5291,8 +5291,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([cat ovs-vswitchd.log | FILTER_FLOW_INSTALL | STRIP_USED], [0], [dnl > -recirc_id=0,skb_priority=0,ip,in_port=1,dl_dst=50:54:00:00:00:0a,nw_frag=no, > actions:2 > -recirc_id=0,skb_priority=0,ip,in_port=1,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,ip,in_port=1,dl_dst=50:54:00:00:00:0a,nw_frag=no, actions:2 > +recirc_id=0,ip,in_port=1,dl_dst=50:54:00:00:00:0c,nw_frag=no, > actions:set(eth(dst=50:54:00:00:00:0a)),2 > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > diff --git a/tests/tunnel.at b/tests/tunnel.at > index be1269d..b2ab6cb 100644 > --- a/tests/tunnel.at > +++ b/tests/tunnel.at > @@ -81,28 +81,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(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,tp_src=0,tp_dst=0,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=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: > pkt_mark=0,recirc_id=0,skb_priority=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,in_port=1,nw_ecn=3,nw_frag=no > + [Megaflow: > pkt_mark=0,recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,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(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,tp_src=0,tp_dst=0,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=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: > pkt_mark=0,recirc_id=0,skb_priority=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,in_port=1,nw_ecn=1,nw_frag=no > + [Megaflow: > pkt_mark=0,recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,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(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,tp_src=0,tp_dst=0,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=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: > pkt_mark=0,recirc_id=0,skb_priority=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,in_port=1,nw_ecn=2,nw_frag=no > + [Megaflow: > pkt_mark=0,recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,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(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,tp_src=0,tp_dst=0,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=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: > pkt_mark=0,recirc_id=0,skb_priority=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,in_port=1,nw_ecn=0,nw_frag=no > + [Megaflow: > pkt_mark=0,recirc_id=0,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_ttl=64,,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"]) > -- > 2.1.0.rc1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev