Problem with ng_ether packet flow..
Andrew Riabtsev
resident at b-o.ru
Fri May 7 00:37:13 PDT 2004
Hi Jian-Wei,
Thursday, May 6, 2004, 6:46:16 PM, you wrote:
JWW> Hi, I spent times to figure out the packet flow with ng_ether, like this:
JWW> upper layer
JWW> |
JWW> ^
JWW> [ether_demux]
JWW> ^
JWW> |
JWW> +---<---[ng_ether_rcvdata]--<-- 'upper' --<--,
JWW> ^ \
JWW> <--[bdg_forward]--<--+ ng_tee
JWW> | /
JWW> +--->---[ng_ether_input]---->-- 'lower' -->--`
JWW> ^
JWW> [ether_input]
JWW> ^
JWW> |
JWW> device
JWW> Why the [ng_ether_rcvdata] won't check if packets should travel to
JWW> the [bdg_forward] when they are bridged packets?
This is how it should work, you get entrance to low level network
(lower hook) and upper level (upper). To bridge or not to bridge
figuring out with ng_bridge or other ng_* modules is up to you to
decide.
And what is a strange direct link between [ether_demux] and
[ether_input]? When connecting anything to upper or lower hooks of
ng_ether this link no longer exists. Or you have changed code of ng_ether
and/or if_ethersubr.c then probably you should ask yourself why it's
not working, is it? :)
JWW> i.e. Should the packet flow be changed to this one?
JWW> upper layer
JWW> |
JWW> ^
JWW> [ether_demux]
JWW> ^
JWW> <--[bdg_forward]--<--+
JWW> |
JWW> +---<---[ng_ether_rcvdata]--<-- 'upper' --<--,
JWW> ^ \
JWW> | ng_tee
JWW> | /
JWW> +--->---[ng_ether_input]---->-- 'lower' -->--`
JWW> ^
JWW> [ether_input]
JWW> ^
JWW> |
JWW> device
JWW> Sincerely Yours,
JWW> Jian-Wei Wang
JWW> _______________________________________________
JWW> freebsd-net at freebsd.org mailing list
JWW> http://lists.freebsd.org/mailman/listinfo/freebsd-net
JWW> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
--
Andrew mailto:resident at b-o.ru
More information about the freebsd-net
mailing list