On Friday, March 09, 2012 19:12:03 Gabriel Kerneis wrote:
When we receive OGMs with PRIMARIES_FIRST_HOP flags on different interfaces, we know that it came from the same neighbor, just from different interfaces. We have two links to this neighbor.
I think my primary misunderstanding comes from this concept of “primary interface”. It might be due to my lack of knowledge about Batman, but it definitely looks like a hack to me: why do you need this symmetry breaking in the first place?
I believe the rest is only implementation details layered on top of this assumption.
Maybe there is some explanation that I have overlooked in the wiki? I have not found, for instance, how the primary interface is chosen.
The concept of a primary interface goes back into the early days of batman and primarily is an optimization to reduce overhead. At some point we realized that it is not necessary to flood the mesh with OGMs from each and every interface we have. Nearby nodes might want to know about all interfaces to select the best one. Nodes that are far away don't care which interface is connected to what other interface. They only care about a route to their destination. This concept is briefly explained here[1] (section 2.1.6 and 2.1.7).
What interface is going to be the primary interface does not matter at all. For the sake of simplicty batman chooses the first interface to be the primary interface but it could be any interface you prefer. The key point is that only the primary interface is known in the entire mesh whereas secondary interfaces are known by single hop neighbors only.
Regards, Marek
[1] http://downloads.open-mesh.org/batman/papers/batman-status.pdf