From: Jason Wang <jasowang@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH net-next] tun: return NET_XMIT_DROP for dropped packets
Date: Wed, 19 Nov 2014 11:09:33 +0800 [thread overview]
Message-ID: <546C09ED.8000004@redhat.com> (raw)
In-Reply-To: <20141118165359.GA18636@air.redhat.com>
On 11/19/2014 12:53 AM, Amos Kong wrote:
> On Tue, Nov 18, 2014 at 01:20:41PM +0800, Jason Wang wrote:
>> After commit 5d097109257c03a71845729f8db6b5770c4bbedc
>> ("tun: only queue packets on device"), NETDEV_TX_OK was returned for
>> dropped packets. This will confuse pktgen since dropped packets were
>> counted as sent ones.
>>
>> Fixing this by returning NET_XMIT_DROP to let pktgen count it as error
>> packet.
>>
>> Cc: Michael S. Tsirkin <mst@redhat.com>
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>> ---
>> drivers/net/tun.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
>> index e3fa65a..ac53a73 100644
>> --- a/drivers/net/tun.c
>> +++ b/drivers/net/tun.c
>> @@ -819,7 +819,7 @@ drop:
>> skb_tx_error(skb);
>> kfree_skb(skb);
>> rcu_read_unlock();
>> - return NETDEV_TX_OK;
>> + return NET_XMIT_DROP;
> Quoted from linux/drivers/firewire/net.c:
>
> /*
> * FIXME: According to a patch from 2003-02-26, "returning non-zero
> * causes serious problems" here, allegedly. Before that patch,
> * -ERRNO was returned which is not appropriate under Linux 2.6.
> * Perhaps more needs to be done? Stop the queue in serious
> * conditions and restart it elsewhere?
> */
>
> I saw many drivers return NETDEV_TX_OK in xmit for drop packets, eg: virtio_net.c
Well, I think you miss some thing:
- Virtio-net only drop packets when there's a bug in either driver or
hypervisor. Other drivers only drop the bad packets. For pktgen, we can
make sure the packet is good.
- Most of the drivers (included virtio-net but not tun) will stop txq
before the ring is full, this could be detected by pktgen
- Tun keep accepting packets and dropping them even if the socket
receive queue is full.
So we really need NET_XMIT_DROP here to let pktgen know the packets were
not sent correctly.
next prev parent reply other threads:[~2014-11-19 3:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 5:20 [PATCH net-next] tun: return NET_XMIT_DROP for dropped packets Jason Wang
2014-11-18 16:53 ` Amos Kong
2014-11-19 3:09 ` Jason Wang [this message]
2014-11-18 19:53 ` Cong Wang
2014-11-19 3:15 ` Jason Wang
2014-11-19 19:46 ` David Miller
2014-11-19 19:53 ` Cong Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=546C09ED.8000004@redhat.com \
--to=jasowang@redhat.com \
--cc=akong@redhat.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.