<div dir="ltr"><div>In addition to Jared's advice, I would recommend calculating PCI-Express bandwidth bus points for whatever platform one is using. <br></div><div><br></div><div>For instance using the Intel X710-DA4, which could be capable in a maximal scenario of 80Gbps of traffic, ensure it's in at least a PCI-E 3.0 x4 slot. And calculate the total number of PCI-E 3.0 x1 (or PCI-E 4.0 if a very new system) lanes that exist and are connected to the CPU. Big difference between some options for Ryzen and Threadripper vs Intel CPUs, towards the lower end of the cost range. <br></div><div><br></div><div>With recent Linux kernels if you have an Intel 510 or 710 series two or four port card in a slot that can't support its full capability, you'll get a warning in dmesg at boot time.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 22, 2020 at 9:30 PM Jared Geiger <<a href="mailto:jared@compuwizz.net">jared@compuwizz.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I use DANOS with Intel XL710 10G NICs in DPDK mode for linux based routing.<div><br></div><div>If you're doing routing protocols, allocate 2 CPU cores to the control plane and then a CPU core per 10G/1G interface for the dataplane, plus an extra core for good measure. So for a 4 x 10G router taking in full routes, 2 cores for control plane, 5 cores for the dataplane. Those cores should be Intel Xeon E5-2600v3/4 or newer and faster the clocks, the better.</div><div><br></div><div>Similar CPU core allocations if you choose TNSR.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 22, 2020 at 3:21 PM Jean St-Laurent via NANOG <<a href="mailto:nanog@nanog.org" target="_blank">nanog@nanog.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Chelsio cards are probably what you are looking for.<br>
<br>
<a href="https://www.chelsio.com/terminator-6-asic/" rel="noreferrer" target="_blank">https://www.chelsio.com/terminator-6-asic/</a><br>
<br>
It's closer to an asic than a traditional nic as the router/firewall rules<br>
are pushed directly into the hardware.<br>
<br>
I don't know how good they are with linux and they seem to be compatible.<br>
<a href="https://www.chelsio.com/linux/" rel="noreferrer" target="_blank">https://www.chelsio.com/linux/</a><br>
<br>
You will need to mess around a bit and fiddle here and there. If you don't<br>
mind using FreeBSD instead of linux, you could achieve a smoother and more<br>
integrated experience.<br>
<br>
Jean<br>
<br>
-----Original Message-----<br>
From: NANOG <nanog-bounces+jean=<a href="mailto:ddostest.me@nanog.org" target="_blank">ddostest.me@nanog.org</a>> On Behalf Of micah<br>
anderson<br>
Sent: Thursday, October 22, 2020 5:31 PM<br>
To: Philip Loenneker <<a href="mailto:Philip.Loenneker@tasmanet.com.au" target="_blank">Philip.Loenneker@tasmanet.com.au</a>>; NANOG<br>
<<a href="mailto:nanog@nanog.org" target="_blank">nanog@nanog.org</a>><br>
Subject: RE: Linux router network cards<br>
<br>
<br>
Thanks for the reply.<br>
<br>
Philip Loenneker <<a href="mailto:Philip.Loenneker@tasmanet.com.au" target="_blank">Philip.Loenneker@tasmanet.com.au</a>> writes:<br>
> Take a look at the Mellanox ConnectX 5 series of cards. They handle <br>
> DPDK, PVRDMA (basically SR-IOV that allows live migration between <br>
> hosts), and can even process packets within the NIC for some<br>
<br>
>From what I can tell, SR-IOV/PVRDMA aren't really useful for me in building<br>
a router that wont be doing any virtualization.<br>
<br>
If the card can do DPDK, can it do XDP?<br>
<br>
> The slidedeck for the presentation is here:<br>
> <a href="https://www.ausnog.net/sites/default/files/ausnog-2019/presentations/1" rel="noreferrer" target="_blank">https://www.ausnog.net/sites/default/files/ausnog-2019/presentations/1</a><br>
> .9_Rhod_Brown_AusNOG2019.pdf<br>
><br>
> It's heavily targeting virtualised workloads but some of the feature sets<br>
apply to bare-metal uses too.<br>
<br>
Yeah, this wont be a virtualized environment, just a router passing packets,<br>
dropping them, handling bgp and collecting flows.<br>
<br>
-- <br>
        micah<br>
<br>
</blockquote></div>
</blockquote></div>