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