ovs-netmap forgotten?

Vincenzo Maffione v.maffione at gmail.com
Wed May 31 22:39:46 UTC 2017


Hi Harry,
  OVS integration with netmap is very patchy and Linux only. Most
importantly, it is not the right way to go, for a number of reasons.
The real solution would be to integrate netmap into OVS would be to follow
the DPDK-OVS approach: this means implementing the switching logic
completely in userspace, in this case using the netmap API. This has not
been implemented nor sketched so far.

`vale-ctl -n valeXXX:YYY` just creates a persistent VALE port (YYY)
attached to the VALE switch XXX.
There is no difference with an ephemeral VALE port, apart for the fact that
the persistent one is visible with ifconfig.

It does not really make sense to attach a VLAN interface to VALE, since the
VLAN driver does not have netmap support, so you lose all the advantage of
using netmap and VALE.
In your case the best solution I see is to write a custom netmap
application that forwards the packets between a netmap-supported NIC and
one or more VMs, doing the VLAN stripping in software.

Cheers,
  Vincenzo

2017-05-31 21:59 GMT+02:00 Harry Schmalzbauer <freebsd at omnilan.de>:

>  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...
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"




-- 
Vincenzo Maffione


More information about the freebsd-net mailing list