On Fri, Feb 8, 2019 at 12:26 PM Mahesh Bandewar (महेश बंडेवार) <mahe...@google.com> wrote: > > On Wed, Feb 6, 2019 at 8:51 PM Mahesh Bandewar (महेश बंडेवार) > <mahe...@google.com> wrote: > > > > On Tue, Feb 5, 2019 at 11:36 AM Michael Chan <michael.c...@broadcom.com> > > wrote: > > > I've looked at this a little more. The blackhole_dev is not IFF_UP | > > > IFF_RUNNING, right? May be that's why the packets are never getting > > > to the xmit function? > > Yes, so I added those two flags and ended up writing a test-module for > > the device (which I will include while posting the patch-series). > > However, adding those flags is also not sufficient since the qdisc is > > initialized to noop_qdisc so qdisc enqueue will drop packets before > > hitting the ndo_start_xmit(). > > I have another version of the fix (with help from Eric) and this > should hit the .ndo_start_xmit() of the blackhole_dev. I'm adding > these flags during the setup and then calling dev_activate() to change > noop qdisc to null qdisc. Please give this patch set a try and let me > know if the blackhole_dev xmit path gets exercised in your test > scenario.
The new version still works in the sense that no oversize packets are seen in the NIC driver's xmit function. But I still don't see any packets hitting the blackhole's xmit function. I'm not 100% sure but I think the blackhole dev has no IP address and so the UDP packets are dropped in ip_finish_output2() because there is no neigh. Something like that.