svn commit: r357051 - head/sys/dev/bge

Gleb Smirnoff glebius at freebsd.org
Fri Jan 24 01:29:52 UTC 2020


On Thu, Jan 23, 2020 at 08:17:46PM -0500, Ryan Stone wrote:
R> On Thu, Jan 23, 2020 at 6:05 PM Gleb Smirnoff <glebius at freebsd.org> wrote:
R> >
R> > On Thu, Jan 23, 2020 at 02:17:33PM -0500, Ryan Stone wrote:
R> > R> What is a driver's responsibility now for entering/leaving the net epoch now?
R> >
R> > For drivers that are 'special', entering the net epoch is necessary. Special
R> > usually means running if_input outside network interrupt context.
R> >
R> > However, there is plan to generalize entering/exiting epoch for taskqueues
R> > and callouts.
R> 
R> Why on earth is it done that way rather than putting the network epoch
R> enter/exit in ether_input?  I'm with Ian; this sounds like a huge
R> layering violation.

Another thing I should have mentioned. Doing this at interrupt level
makes much easier to maintain alternative network stacks, for example
TOE - which now has tons of hacks. Same stands for netgraph. If you
hook ng_ether on, than ether_input is skipped and packet goes to
netgraph, then it can be injected back into network stack from a
different type of node.

-- 
Gleb Smirnoff


More information about the svn-src-head mailing list