Looks Good. Ethan
On Mon, Apr 18, 2011 at 10:13 AM, Ben Pfaff <[email protected]> wrote: > Just setting the tun_id field isn't enough--it's also necessary to set > the tun_id_mask. Otherwise the call to cls_rule_zero_wildcarded_fields() > at the end of ofputil_cls_rule_from_match() will zero out the tun_id again. > > This was broken by commit 8368c090cab "Implement arbitrary bitwise masks > for tun_id field" back in January. (This makes me wonder whether we can > drop support for tun_id_from_cookie now.) > > Reported-by: Dan Wendlandt <[email protected]> > --- > lib/ofp-util.c | 2 +- > tests/ofproto.at | 8 ++++++-- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/lib/ofp-util.c b/lib/ofp-util.c > index c49b079..1e9db1d 100644 > --- a/lib/ofp-util.c > +++ b/lib/ofp-util.c > @@ -137,7 +137,7 @@ ofputil_cls_rule_from_match(const struct ofp_match *match, > wc->nw_dst_mask = ofputil_wcbits_to_netmask(ofpfw >> OFPFW_NW_DST_SHIFT); > > if (flow_format == NXFF_TUN_ID_FROM_COOKIE && !(ofpfw & NXFW_TUN_ID)) { > - rule->flow.tun_id = htonll(ntohll(cookie) >> 32); > + cls_rule_set_tun_id(rule, htonll(ntohll(cookie) >> 32)); > } > > if (ofpfw & OFPFW_DL_DST) { > diff --git a/tests/ofproto.at b/tests/ofproto.at > index 9506756..fc7ff57 100644 > --- a/tests/ofproto.at > +++ b/tests/ofproto.at > @@ -48,10 +48,14 @@ AT_CHECK([ovs-ofctl dump-flows br0 | STRIP_XIDS], [0], > [NXST_FLOW reply: > ]) > AT_CHECK([echo 'in_port=1,actions=0' | ovs-ofctl add-flows br0 -]) > AT_CHECK([ovs-ofctl add-flow br0 in_port=0,actions=1]) > -AT_CHECK([ovs-ofctl dump-flows br0 | STRIP_XIDS | STRIP_DURATION], [0], [dnl > -NXST_FLOW reply: > +dnl Tests for a bug in which ofproto ignored tun_id in tun_id_from_cookie > +dnl flow_mod commands. > +AT_CHECK([ovs-ofctl add-flow -F tun_id_from_cookie br0 > tun_id=1,actions=mod_vlan_vid:4]) > +AT_CHECK([ovs-ofctl dump-flows br0 | STRIP_XIDS | STRIP_DURATION | sort], > [0], [dnl > cookie=0x0, duration=?s, table_id=0, n_packets=0, n_bytes=0, in_port=1 > actions=output:0 > cookie=0x0, duration=?s, table_id=0, n_packets=0, n_bytes=0, in_port=65534 > actions=output:1 > + cookie=0x100000000, duration=?s, table_id=0, n_packets=0, n_bytes=0, > tun_id=0x1 actions=mod_vlan_vid:4 > +NXST_FLOW reply: > ]) > AT_CHECK([ovs-ofctl del-flows br0]) > AT_CHECK([ovs-ofctl dump-flows br0 | STRIP_XIDS], [0], [NXST_FLOW reply: > -- > 1.7.1 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
