2008-08-15 05:25:22

by YanBo

[permalink] [raw]
Subject: Bridge the mesh interface and wired ethernet interface to construct a MPP(Mesh Portals)

Hi,

When I tried to bridge a mesh interface with another wired ethernet
interface to construct a MPP, it seemed they can't communicate each
other.

The test what I do is like below:
1. Mesh node B has connected with another mesh node D
2. Bridge a wired interface A with mesh interface B get a bridge
interface C (assume A's mac address value is larger than B's mac
address value )
3. Set interface D and C in the same IP segment.
When ping C with D
B will broadcast a ARP packet which the addr4 is C's mac address
when D received this broadcast ARP packet, D want do a ARP reply to C
but D found C's address is not in the mesh neighbor table, and then D
will send a path request try to find how to reach C
when B received this path_request, B also don't know who is C, and
then just forward this mesh path request and don't do anything.
then D can't reach C

As we know the bridge's mac address is the same as the the least mac
address of all it's interfaces, so if C's mac address is the same as
B's, then D will reach C. but this is just a coincidence.


so in my opinion, the solution is when the bridge pass the packet from
C to B, B need record C's mac address,. and when D receives the ARP
request that from B. D also need record the path that D->B->C, then
when D try to send ARP reply to C, D just need send the packet to B,
and B also know it can reach C directly and don't need forward this
packet. so C and reach D and D also can reach C. after rough browser
the mesh code, it seemed it hasn't not deal with this situation, so
I'd want ask is there anybody meet the same problem or have better
solution, or is it worth to do? if so I'd like to implement this
function, and the mesh will can be integration with Bridge without
problem. any comments or suggestion is welcome!


Yanbo