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

Reply via email to