On Thu, 20 Sep 2018 16:02:37 +0300 Иван Иванов <iwan12iwa...@yandex.ru> wrote:

> Hi. I need you advice.
> I have to write app to filter and LB ethernet traffic from 100G to
> 10x10G. What is better to use? eBPF XDP or DPDK?

Interesting use-case of Load-Balancing 100G to 10x 10G.

I would obviously choose XDP, but I'm biased ;-)

I want to stress, that you have to handle, in _your_ BPF prog, how to
load-balance and handle _when_ the overload/overrun problem occurs.  As
you have faster link feeds into slower links, you can overload those
links.

With XDP/BPF you should attach to the BPF tracepoint xdp_devmap_xmit,
which allows you to detect the TX overrun happens (see sample code [1]
and [2]).  And then you need to communicate this info via a BPF-map, to
your Load-Balance decision XDP-prog, so it can take action.

With this tracepoint approach packets will get lost, before an event
happens.  I am considering extending XDP to have another XDP-hook, at
XDP_REDIRECT transition to TX point, which would allow you to re-do a
load-balance decision, then a device TX-queue is full. But we need a
good use-case, before adding such infra-structure (maybe your
use-case?).  This is something Toke and I will be taking about here:
[3] http://vger.kernel.org/lpc-networking.html#session-19 


Sample code#1:
 [1] 
https://github.com/torvalds/linux/blob/master/samples/bpf/xdp_monitor_kern.c#L213-L258

Sample code#2:
 [2] 
https://github.com/torvalds/linux/blob/master/samples/bpf/xdp_redirect_cpu_kern.c#L572-L625

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#1486): https://lists.iovisor.org/g/iovisor-dev/message/1486
Mute This Topic: https://lists.iovisor.org/mt/25803393/21656
Group Owner: iovisor-dev+ow...@lists.iovisor.org
Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to