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> [EMAIL PROTECTED] mailing list
JWW> http://lists.freebsd.org/mailman/listinfo/freebsd-net
JWW> To unsubscribe, send any mail to "[EMAIL PROTECTED]"



-- 

 Andrew                            mailto:[EMAIL PROTECTED]

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to