Thx for the review, applied to master,
On Wed, Jul 23, 2014 at 9:46 AM, Pravin Shelar <pshe...@nicira.com> wrote: > On Tue, Jul 22, 2014 at 11:36 PM, Alex Wang <al...@nicira.com> wrote: > > Commit 62974663fe (datapath/flow_netlink: Create right mask with > > disabled megaflows) introduced the bug which caused > > ovs_nla_get_match() returns immediately after parsing the flow > > mask for OVS_KEY_ATTR_ENCAP. Consequently, when vlan encapsulated > > packets are present, the corresponding datapath flows will have > > incorrect mask like below. And the incorrect flows could affect > > other non-vlan packets. > > > > ~/ovs# ovs-dpctl dump-flows > > in_port(3/0xffff0000),eth_type(0x8100),encap(), packets:0, > > bytes:0, used:never, actions:2 > > > > This commit fixes the bug by checking and handling the return > > value of the parsing function correctly. > > > > Signed-off-by: Alex Wang <al...@nicira.com> > > Thanks for fixing it. > > Acked-by: Pravin B Shelar <pshe...@nicira.com> > > > --- > > datapath/flow_netlink.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c > > index 5f975a1..445fa88 100644 > > --- a/datapath/flow_netlink.c > > +++ b/datapath/flow_netlink.c > > @@ -938,7 +938,8 @@ int ovs_nla_get_match(struct sw_flow_match *match, > > mask_attrs &= ~(1ULL << > OVS_KEY_ATTR_ETHERTYPE); > > encap = a[OVS_KEY_ATTR_ENCAP]; > > err = parse_flow_mask_nlattrs(encap, a, > &mask_attrs); > > - goto free_newmask; > > + if (err) > > + goto free_newmask; > > } else { > > OVS_NLERR("VLAN frames must have an > exact match on the TPID (mask=%x).\n", > > ntohs(eth_type)); > > -- > > 1.7.9.5 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev