Vector Packet Processing (VPP) portability on FreeBSD

Luigi Rizzo rizzo at iet.unipi.it
Mon May 10 14:39:32 UTC 2021


[repost since it appears to be blocked]

On Mon, May 10, 2021 at 2:42 PM Rainer Duffner <rainer at ultra-secure.de> wrote:
>
>
>
> > Am 10.05.2021 um 13:08 schrieb Francois ten Krooden <ftk at Nanoteq.com>:
> >
> > Greetings
> >
> > We have a vested interest in high-speed IPsec VPN on FreeBSD. We have started with the porting of VPP (https://fd.io/) to FreeBSD.
> >
> > Currently we have VPP compiled and running with netmap. The speeds we measure are nowhere near the performance of a 10Gbps link, at around 350kpps for 1500 byte IPv4 packets. We suspect the biggest issue is related to how VPP implements huge pages (Linux) and our modifications to support super pages on FreeBSD.

350kpps is way too low for being related to tlb
and page size issues.

I suspect that you are
either using the "emulated" netmap mode,
which runs on top of mbufs and may involve
extra data copies on the receive path,
or the test itself is e.g. using TCP and congestion
control or limited window size throttle down
the rate.

I'd retry the test with some open loop traffic
source/sink,  and using first all possible low level
APIs (sockets/mbufs; emulated netmap; native netmap; your vpp port)
with small and large packets and increasing packet rates, to see where
the limits are with each. That should give you good hints to figure
out what is making the performance so bad.
Even better if you can run the test between one known-good endpoint so
you can test separately the tx and tx sides.

Cheers
Luigi


More information about the freebsd-net mailing list