Subject: Re: More details on why received UDP packets are treated as errors?

From: Benjamin Poirier <[email-masked]>
Date: Tue, 30 Jul 2013 16:38:10 -0400

On 2013/07/29 13:21, Eric Dumazet wrote:
> On Mon, 2013-07-29 at 11:21 -0700, Ben Greear wrote:
> > We have a test case on 3.9.9+ (local patches applied) where sending from
> > VETH interface, through peer VETH bridged (with our own emulator bridge module)
> > to physical interface, which is then looped to another physical interface (B).
> > The VETH and the wired B interface are sending UDP traffic to each other.
> > Routing rules should be configured such that this all works appropriately.
> > 
> > Replacing our bridging module with a user-space bridge has same behaviour.
> > 
> > This setup works on the 3.7.y kernel, but we only get one-way traffic
> > (B to VETH) on 3.9.9+.
> > 
> > I sniffed the B port, and traffic appears to be sent and received
> > properly (ie, no checksum errors, etc).  But, our user-space app
> > shows no received UDP frames on B, and netstat -s gives the
> > output below.
> > 
> > Is there any way to get more details about what these 'packet receive errors'
> > are caused by using normal-ish tools?
> 
> You could try dropwatch for this kind of obscure drops
> 
> https://fedorahosted.org/dropwatch/

If the drop happens in __udp_queue_rcv_skb() you can also get some info from
the udp_fail_queue_rcv_skb tracepoint. See "296f7ea udp: add tracepoints for
queueing skb to rcvbuf (v3.1-rc1)".