Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jul 2022 07:49:13 -0500 (CDT)
From:      Lewis Donzis <lew@perftech.com>
To:        Santiago Martinez <sm@codenetworks.net>
Cc:        sthaug@nethelp.no, lutz@donnerhacke.de, nc@FreeBSD.org,  freebsd-net <freebsd-net@FreeBSD.org>
Subject:   Re: How does FreeBSD expect to compete in a DPDK/VPP world?
Message-ID:  <1813911169.3387869.1658494153987.JavaMail.zimbra@donzis.com>
In-Reply-To: <40f829a2-51c4-e993-e70e-ca8be1a0d3d8@codenetworks.net>
References:  <e936d60dab9699e33ff467c55d42c2d5@FreeBSD.org> <20220721161647.GA7879@belenus.iks-jena.de> <20220721.193816.806320685105925842.sthaug@nethelp.no> <40f829a2-51c4-e993-e70e-ca8be1a0d3d8@codenetworks.net>

next in thread | previous in thread | raw e-mail | index | archive | help
DPDK (and VPP) works fine on FreeBSD.  We've been using it in our carrier products since 2015 at least, and more recently in a consumer/SMB product as well.  DPDK's buffer model resembles FreeBSD's more than Linux's, and when drivers are ported to DPDK, they more often than not start with the FreeBSD drivers.

We prefer FreeBSD to Linux for many reasons, one of which is that we developed mods to iflib to allow DPDK to share the hardware with the kernel and, in my opinion, it works better than the Linux KNI.  In fact, FreeBSD's kernel networking runs quite a bit faster with DPDK controlling the hardware.

And we also support MPLS packets, but because it's DPDK code, it has no place in the kernel.  Handling MPLS packets is a triviality and could probably be added to the FreeBSD kernel pretty easily; it's managing all the protocols on top (RSVP, OSPF, LDP, etc.) that makes it complicated.

I wish more DPDK-based products used FreeBSD as their kernel so there would be a larger community supporting it.



----- On Jul 22, 2022, at 3:56 AM, Santiago Martinez sm@codenetworks.net wrote:

> I think there is a mix of things here.
> 
> For the VXLAN or MPLS this depends on the role of BSD.
> 
> For DC with leaf and spine deployment, nowadays VXLAN is good enough, as
> we can terminate the VXLAN on FreeBSD + Bhyve.
> 
> Now if you are in a transport network or need to terminate services
> (L2VPN, L3VPN, VPLS ,EVPNoMPLS) then MPLS and SR-MPLS are required for
> the data-plane and RSVP, BGP-LU and ISIS/OSPF with SR extension for the
> control plane. Some networks are still running LDP but nobody will
> deploy a greenfield on or a modern network on it.
> 
> On the DKDP and VPP, the intention is to bypass the kernel, so i don't
> see why FreeBSD itself should come with a solution for that apart from
> making sure DPDK and VPP work on FreeBSD. The last time i spoke with
> somebody from Intel, the response was that DPDK was is good shape (For
> FreeBSD), but also I remember some email on this list saying that some
> things are missing. Not sure what the current status for VPP.
> 
> Regards.
> 
> Santi
> 
> 
> On 7/21/22 19:38, sthaug@nethelp.no wrote:
>>>> Not that I work at an ISP or tech company in a networking role, I don't.
>>>> Heck, adding even MPLS support has been on my bucket list for a while, but
>>>> am too lazy to get started. I do want to move to a networking-based role at
>>>> $DAYJOB, but we'll see about that.
>>> MPLS is outdated (performance-wise) and (functionally) replaced by vxLan, or
>>> do I miss something?
>> No idea what you mean by outdated (performance-wise). Yes, I know the
>> initial claims for MPLS touted faster packet switching times - but
>> that hasn't been relevant for many years.
>>
>> MPLS is about functionality. Yes, there is some functionality overlap
>> with VXLAN - but the overlap is certainly not complete. Personally,
>> I'd love to see an MPLS implementation in FreeBSD.
>>
>> Steinar Haug, Nethelp consulting, sthaug@nethelp.no



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1813911169.3387869.1658494153987.JavaMail.zimbra>