On Fri, Oct 7, 2011 at 4:42 PM, Ben Pfaff <b...@nicira.com> wrote:
> Commit b063d9f0 "datapath: Use unicast Netlink sockets for upcalls" that
> introduced an 'upcall_pid' member into struct dpif_linux_vport, struct
> dpif_linux_dp, and struct dpif_linux_flow neglected to do so only if the
> member was nonzero.  This caused every datapath, vport, and flow operation
> to supply an upcall_pid.  In particular, the netdev_set_config() called at
> startup when a vport already existed caused the upcall_pid for that vport
> to be reset to 0, which in turn caused all packets received on the vport to
> be dropped instead of forwarded to ovs-vswitchd.
>
> Reported-by: Shih-Hao Li <s...@nicira.com>

I think we actually want to distinguish between unset and zero.  When
the listen_mask indicates that a packet type shouldn't be received
then we intentionally generate an upcall_pid of 0 to shut off those
types of upcalls.  Most of dpif-linux.c deals with this by simply
always including the appropriate upcall_pid but that was missed for
the calls in netdev-vport.  At this point, nothing ever turns off
parts of listen_mask, so it doesn't really matter but that was the
intention.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to