[TEST/REVIEW] ng_ipfw: node to glue together ipfw(4) and netgraph(4)

Gleb Smirnoff glebius at freebsd.org
Wed Jan 19 00:45:34 PST 2005


On Tue, Jan 18, 2005 at 02:27:47PM -0800, Julian Elischer wrote:
J> firstly.. I was thinking that there are several good ways to mesh the 
J> ipfw/divert/netgraph
J> stuff.
J> 
J> Firstly there is the possibility of making the ipfw stuff a netgraph 
J> node itself..

Yes, but this is a separate node. I'm working on a node doing opposite
thing, it will allow to filter netgraph traffic using an arbitrary
ipfw chain.

J> (yes I know there is such a node (based on ipfw-1) out there.)

If you are speaking about a node from BWMAN, then it is not based on
ipfw. It uses its own filter engine, AFAIK.

J> then as for getting stuff out of ipfw, maybe divert itself could be 
J> changed to be
J> a netgraph method. In this way, you'd open netgtraph sockets instead of 
J> divert sockets.
J> 
J> Alternatively there could be a possibility where netgraph could open 
J> hooks of a particular number
J> and that would be the equivalant of openning a divert hook of that number..
J> 
J> Looks good but I'm not convinced that it needs a whole new keyword of we 
J> tap in through the divert mechanism.

Divert is a socket, and ng_ipfw is not. We tap thru a direct call to netgraph.

I think, divert is designed for userland interaction. It is possible to use
it for netgraph (via ng_ksocket), but this adds overhead of passing the socket
layer, and I believe not all bugs are caught in this setup. That's why I prefer
two different keywords, which do completely different things.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE


More information about the freebsd-net mailing list