What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc?

Ryan Stone rysto32 at gmail.com
Mon Sep 17 15:50:01 UTC 2012


I know that there have been a lot of discussions about fixing how
packets are handed off to ifnets due to the current methods being
extremely race-prone.  Has there been any consensus on how the problem
is going to be solved?

In my particular case, I've seen an if_bridge interface whose if_snd
queue is full, and once an ifnet reaches that point it will never
transmit anything ever again unless its driver manually calls the
start method somehow.

As a short-term fix I'm temped to call to if_start in IFQ_HANDOFF_ADJ
even if IFQ_ENQUEUE returns an error, to ensure that the queue will be
drained eventually, but I'm wondering if people are actively working
on longer-term fixes.


More information about the freebsd-net mailing list