[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGUzgdJOLmOyd9dd=Ht-qgZ9B-or59pDwaUY28DrbnL4BKFPcw@mail.gmail.com>
Date: Thu, 14 Feb 2013 12:50:30 +0100
From: Sebastian Pöhn <sebastian.poehn@...glemail.com>
To: netdev@...r.kernel.org
Subject: tuntap: Overload handling
I am having a look on the tun driver to realize an userspace network
driver ( TAP + UIO ). Maybe that's not the use-case tun is intended
for.
What I've noticed is that in tun.c Line 741
static netdev_tx_t tun_net_xmit(struct sk_buff *skb, struct net_device *dev)
/* Limit the number of packets queued by dividing txq length with the
* number of queues.
*/
if (skb_queue_len(&tfile->socket.sk->sk_receive_queue)
>= dev->tx_queue_len / tun->numqueues)
goto drop;
If a frame can not be tx it is dropped by the driver.
Wouldn't it be more correct to netif_tx_stop_queue() so that packet
drops are performed by the overlying traffic control code?
Of course this is not very likely in virtual environments but as soon
as any real network hop is involved it could be important.
(I also had a look on some two year old version of tun.c. There
queue/tx stopping was done correctly.)
---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists