On Mon, Apr 28, 2014 at 11:53:51PM -0700, Alex Wang wrote:
> Based on the policy of 'OVS_VPORT_ATTR_UPCALL_PID', if upcall should
> not be sent to userspace (i.e. the number of handler threads is zero),
> the netlink message for creating vport should be an one-element array of
> value 0.  However, dpif_linux_port_add__() fails to obey it and generates
> zero-payload netlink message which causes the netlink transaction failing
> with ERANGE error.
> 
> This is particularly bad when the 'flow-restore-wait' is set during upgrade,
> since number of handler threads is not set in dpif-linux module and ovs is
> not able to add port in datapath until the 'flow-restore-wait' is disabled.
> Connection may lose due to this bug.
> 
> This bug was introduced by commit 1579cf677fc (dpif-linux: Implement the
> API functions to allow multiple handler threads read upcall.).
> 
> This commit fixes the bug by fixing the dpif_linux_port_add__() to generate
> the correct netlink message when the number of handler threads is not set.
> 
> Bug #1239914.
> Bug #1240598.
> Bug #1240626.
> 
> Reported-by: Gurucharan Shetty <gshe...@nicira.com>
> Signed-off-by: Alex Wang <al...@nicira.com>

Good catch.

Acked-by: Ben Pfaff <b...@nicira.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to