Re: [PATCH bpf-next 03/12] net: Add IFLA_XDP_EGRESS for XDP programs in the egress path
From: Jakub Kicinski <kuba@kernel.org>
Date: 2020-01-30 14:45:21
On Tue, 28 Jan 2020 15:13:43 +0100, Jesper Dangaard Brouer wrote:
On Sun, 26 Jan 2020 14:17:01 -0800 Jakub Kicinski [off-list ref] wrote:quoted
On Sun, 26 Jan 2020 13:49:33 +0100, Jesper Dangaard Brouer wrote:quoted
Yes, please. I want this NIC TX hook to see both SKBs and xdp_frames.Any pointers on what for? Unless we see actual use cases there's a justifiable concern of the entire thing just being an application of "We can solve any problem by introducing an extra level of indirection."I have two use-cases: (1) For XDP easier handling of interface specific setting on egress, e.g. pushing a VLAN-id, instead of having to figure this out in RX hook. (I think this is also David Ahern's use-case)
Is it really useful to have a hook before multi-buffer frames are possible and perhaps TSO? The local TCP performance is going to tank with XDP enabled otherwise.
(2) I want this egress XDP hook to have the ability to signal backpressure. Today we have BQL in most drivers (which is essential to avoid bufferbloat). For XDP_REDIRECT we don't, which we must solve. For use-case(2), we likely need a BPF-helper calling netif_tx_stop_queue(), or a return code that can stop the queue towards the higher layers.
Agreed, although for that use case, I'm not sure if non-XDP frames have to pass trough the hook. Hard to tell as the current patches don't touch on this use case.