Thread (32 messages) 32 messages, 8 authors, 2016-09-21

Re: [PATCH net-next 7/8] net/mlx5e: XDP TX forwarding support

flat view

From: Tom Herbert <hidden>
Date: 2016-09-20 19:21:56

On Tue, Sep 20, 2016 at 11:59 AM, Jesper Dangaard Brouer
[off-list ref] wrote:
On Tue, 20 Sep 2016 10:39:20 -0700
Eric Dumazet [off-list ref] wrote:
quoted
On Tue, 2016-09-20 at 09:45 -0700, Alexei Starovoitov wrote:
quoted
because 'div by zero' is an abnormal situation that shouldn't be exploited.
Meaning if xdp program is doing DoS prevention and it has a bug that
attacker can now exploit by sending a crafted packet that causes
'div by zero' and kernel will warn then attack got successful.
Therefore it has to be silent drop.
A silent drop means a genuine error in a BPF program might be never
caught, since a tracepoint might never be enabled.
I do see your point. But we can document our way out of it.
quoted
quoted
tracpoint in such case is great, since the user can do debugging with it
and even monitoring 24/7 and if suddenly the control plan sees a lot
of such trace_xdp_abotred events, it can disable that tracepoint to avoid
spam and adjust the program or act on attack some other way.
Hardcoded warnings and counters are not generic enough for all
the use cases people want to throw at XDP.
The tracepoints idea is awesome, in a sense that it's optional.

Note that tracepoints are optional in a kernel.
Well, that is a good thing, as it can be compiled out (as that provides
an option for zero cost).

quoted
Many existing supervision infrastructures collect device snmp
counters, and run as unprivileged programs.
A supervision infrastructures is a valid use-case. It again indicate
that such XDP stats need to structured, not just a random driver
specific ethtool counter, to make it easy for such collection daemons.
I am currently adding a structure to define an XDP hook (plan to post
patches shortly). Counters can be added to that in a uniform fashion
that doesn't need code in every driver.

Tom
quoted
tracepoints might not fit the need here, compared to a mere
tx_ring->tx_drops++
I do see your point.  I really liked the tracepoint idea, but now I'm
uncertain again...


I do have a use-case where I want to use the NIC HW-RX-ingress-overflow
and TX-overflow drop indicators, but I don't want to tie it into this
discussion.  The abort and error indicators a not relevant for that
use-case.

--
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help