[ovs-dev] RFC: the meaning of LINUX_DATAPATH and HAVE_IF_DL

Ben Pfaff blp at nicira.com
Tue Feb 4 21:53:58 UTC 2014


On Thu, Jan 23, 2014 at 4:55 PM, Ben Pfaff <blp at nicira.com> wrote:
> On Thu, Jan 23, 2014 at 04:45:34PM -0800, Luigi Rizzo wrote:
>> On Thu, Jan 23, 2014 at 4:43 PM, Ben Pfaff <blp at nicira.com> wrote:
>>
>> > On Fri, Jan 24, 2014 at 01:29:32AM +0100, Daniele Di Proietto wrote:
>> > > I'll just attach the patch (just for a quick preview, it is not ready
>> > jet)
>> > > that builds the userspace components for the kernel datapath in FreeBSD.
>> > We
>> > > provide some linux functionalities (netlink and epoll) through wrappers
>> > > (not included here) so that LINUX_DATAPATH is true. What we may need is a
>> > > better way to understand which features are present to exclude some
>> > blocks
>> > > inside LINUX_DATAPATH.
>> >
>> > From reading this, it looks like the BSD kernel datapath port also
>> > uses Netlink as the communication channel to the kernel.  Is that
>> > correct?
>> >
>>
>> correct. daniele implemented netlink generic sockets
>> for FreeBSD as a kernel module as part of the work.
>
> OK, that explains why there are interesting boundaries being crossed
> here.
>
> How about this:
>
>         - Replace LINUX_DATAPATH by NETLINK_DATAPATH, since that seems
>           to describe the relationship better.
>
>         - Instead of (LINUX_DATAPATH && !HAVE_IF_DL), write just
>           __linux__.  In the cases I looked at, the interface didn't
>           seem too likely to be of interest outside Linux.
>
>         - Where individual features seem to be sensibly testable, do
>           that.
>
>         - If the FreeBSD kernel datapath port makes it to upstream
>           FreeBSD, or otherwise achieves some kind of widespread
>           adoption, then we might eventually want to rename dpif-linux
>           to dpif-netlink.


Does this make sense to everyone?
-- 
"I don't normally do acked-by's.  I think it's my way of avoiding
getting blamed when it all blows up."               Andrew Morton



More information about the dev mailing list