On Fri, Jul 1, 2022 at 3:29 PM Daniel Borkmann <daniel@xxxxxxxxxxxxx> wrote: > > On 7/1/22 11:57 AM, Eric Dumazet wrote: > > On Fri, Jul 1, 2022 at 11:43 AM Johan Almbladh > > <johan.almbladh@xxxxxxxxxxxxxxxxx> wrote: > >> > >> The byte queue limits (BQL) mechanism is intended to move queuing from > >> the driver to the network stack in order to reduce latency caused by > >> excessive queuing in hardware. However, when transmitting or redirecting > >> a packet with XDP, the qdisc layer is bypassed and there are no > >> additional queues. Since netif_xmit_stopped() also takes BQL limits into > >> account, but without having any alternative queuing, packets are > >> silently dropped. > >> > >> This patch modifies the drop condition to only consider cases when the > >> driver itself cannot accept any more packets. This is analogous to the > >> condition in __dev_direct_xmit(). Dropped packets are also counted on > >> the device. > > > > This means XDP packets are able to starve other packets going through a qdisc, > > DDOS attacks will be more effective. > > > > in-driver-XDP use dedicated TX queues, so they do not have this > > starvation issue. > > > > This should be mentioned somewhere I guess. > > +1, Johan, could you add this as comment and into commit description in a v2 > of your fix? Definitely should be clarified that it's limited to generic XDP. Thanks for the review. Daniel, I will prepare a v2 shortly. Thanks, Johan