On Fri, Sep 16, 2011 at 01:02:19PM -0700, Jesse Gross wrote: > On Fri, Sep 16, 2011 at 9:42 AM, Ben Pfaff <b...@nicira.com> wrote: > > 'dp_ifindex' is never used in the fast path, only in Netlink handling > > and in the slow path that sends packets that miss up to userspace. ??We > > could get rid of dp_ifindex, replacing it by a function that obtains > > the ifindex from vport numbered OVSP_LOCAL or returns 0 if there isn't > > one (which could only happen in the slow path). ??When the slow path > > sees a return value of 0, it would just drop the packet. > > I think it's actually even simpler than that - we should be able to > just replace dp_ifindex with calls to get the ifindex of OVSP_LOCAL > and it should always be available. All uses other than upcalls are > definitely OK because both they and the initialization of the datapath > are protected by genl_mutex. Packets received on the datapath device > are also fine because in order for the packet to be received the > device (and all of its members) must be visible on the current CPU.
I agree that the device must be visible, but that doesn't mean that anything has been assigned to dp->ports[OVSP_LOCAL] yet. The former happens in internal_dev_create(), the latter only happens later in the caller (in new_vport()). I guess we could do it earlier? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev