@mmx01
I have a VM running VyOS I'm using as a packet pusher for a storage network. I'd like to offload it to an old E3 board I'm using as an OPNsense router. But my storage network is 40Gbps, and it's impossible for even a fast board to get that kind of throughput, let alone a dual core E3 clocked at 2.0Ghz (It's the 1220L v2). E.g. my E5s might hit 17Gbps doing VM migration on a good day when everything else is idle.
So I was wondering if anyone is using one of these new fangled packet pushing technologies for 10+ Gbps networks. Unfortunately just found out TNSR doesn't support my Connectx-3s, so my final solution might have to be vanilla, but I'm curious to hear about anyone's all-in solutions, as well.
Which one do you like? What are the advantages / disadvantages? How can I get started? Is any software actually using XDP yet, or is it still primarily in the dev realm?
Edit: It looks for XDP stuff is still rather DIY. However, it appears to be documented rather well. I found some links that might be useful:
How to build a BGP router leveraging XDP:
blog.apnic.net
XDP hands on programming tutorial:
github.com
BPF functions included by kernel version (with complete list of functions):
github.com
XDP supported drivers:
github.com
I have a VM running VyOS I'm using as a packet pusher for a storage network. I'd like to offload it to an old E3 board I'm using as an OPNsense router. But my storage network is 40Gbps, and it's impossible for even a fast board to get that kind of throughput, let alone a dual core E3 clocked at 2.0Ghz (It's the 1220L v2). E.g. my E5s might hit 17Gbps doing VM migration on a good day when everything else is idle.
So I was wondering if anyone is using one of these new fangled packet pushing technologies for 10+ Gbps networks. Unfortunately just found out TNSR doesn't support my Connectx-3s, so my final solution might have to be vanilla, but I'm curious to hear about anyone's all-in solutions, as well.
Which one do you like? What are the advantages / disadvantages? How can I get started? Is any software actually using XDP yet, or is it still primarily in the dev realm?
Edit: It looks for XDP stuff is still rather DIY. However, it appears to be documented rather well. I found some links that might be useful:
How to build a BGP router leveraging XDP:

How to: Build an XDP based BGP peering router | APNIC Blog
Guest Post: XDP allows you to build a high-performance peering router using just Linux, while leveraging various open-source routing daemons.
XDP hands on programming tutorial:
GitHub - xdp-project/xdp-tutorial: XDP tutorial
XDP tutorial. Contribute to xdp-project/xdp-tutorial development by creating an account on GitHub.

BPF functions included by kernel version (with complete list of functions):
bcc/docs/kernel-versions.md at master · iovisor/bcc
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more - iovisor/bcc

XDP supported drivers:
xdp-project/areas/drivers/README.org at main · xdp-project/xdp-project
XDP project collaboration through a git-repo. Contribute to xdp-project/xdp-project development by creating an account on GitHub.

Last edited: