Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 May 2017 21:59:28 +0200
From:      Harry Schmalzbauer <freebsd@omnilan.de>
To:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: ovs-netmap forgotten?
Message-ID:  <592F20A0.4020702@omnilan.de>
In-Reply-To: <5926FFDB.7040900@omnilan.de>
References:  <5926FFDB.7040900@omnilan.de>

next in thread | previous in thread | raw e-mail | index | archive | help
 Bezüglich Harry Schmalzbauer's Nachricht vom 25.05.2017 18:01 (localtime):
>  Hello,
>
> I found lots of interesting papers about research and improvements
> regarding Open vSwitch and netmap (on FreeBSD, e.g.
> http://changeofelia.info.ucl.ac.be/pmwiki/uploads/SummerSchool/Program/poster_001.pdf)
>
> Again, University of Pisa with a famous team arround Luigi Rizzo did
> some highly appreciated coding and presentation, the paper in the link
> is from Gaetano Catalli (cc'd).
>
> But it seems that this work got lost in space...
> openvswitch in ports is quiet old codebase without any
> netmap-integration and a provided patch isn't in our netmap tree:
> https://github.com/cnplab/ovs-netmap/blob/master/0001-datapath-Add-support-for-netmap-VALE.patch
>
> So I guess nobody uses ports/net/openvswitch these days anymore.
>
> I also found a FreeBSD kernel module was written back in 2014. But that
> seems also got lost, which most likely was due to ovs-netmap replacement?
>
> Thanks for any hints,

I made little progress answering my questions myself and still
appreciate any hints, hopefully providing some hints for others getting
into OVS/netmap.

I found the ovs-netmap work, it's part of the standard netmap github
repository
(https://github.com/luigirizzo/netmap) under utils/switch-modules.

In case someody is interested, I prepared a very draft net/openvswitch
port, updated to 2.6.1 and extended by the ovs-netmap patch. Compiles
and runs, but the result isn't fully tested yet nor is the port rellay
correct istelf (haven't fired up portlint) or complete (wanted to
integrate DPDK too...)

Unfortunately it doesn't seem to be what I expected (a
datapath/dataplane implementation).
It seems on FreeBSD we still have to run Open vSwitch in userspace
(which is described in INSTALL.userspace.md – all other documentation
seem to assume you're running linux and have the kernel module loadad).

The description in INSTALL.NETMAP, part of the mentioned patch, brings
up more questions than answers for me, most likely due to a still
considerable ammount of personal knwoledge absence.

I don't get the idea of 'vale-ctl -n', which provides a netmap-only(?)
interface, but even if I imagine one side of the interface to connect to
arbitrary netmap-app, I have no idea what the other side connects to.

And that's my problem with the Open vSwitch integration. I can access an
ovs bridge via netmap-app. But this doesn't improve the severe OVS
limitations running on FreeBSD (doing frame copies in userspace). Hope
someone can confirm I'm wrong?

Thanks,

-harry

P.S.: Like partly mentioned in multiple other questions I posted
recently, I need a way to fire up bhyve with '-s
2,virtio-net,vale0:guestport', while vale0 only distributes frames
filtered by 802.1Q tag. I don't care much where the filtering happens,
but there's not much choice.
Unfortunately, plugging a vlan(4) clone into vale doesn't work, frames
never make it into vale (while using the parent shows results as
expected, so basic setup soud be ok).
Next idea was to utilize Open vSwitch, but that's the most painful
solution to get vlan tags filtered (which could do the nic itself)... I
hoped vale(4) could be utilized by Open vSwitch, but it seems that the
ovs-netmap approach is a completely different thing...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?592F20A0.4020702>