Self-learning: avoid sending duplicate packets to Faces over the same physical link
The current self-learning forwarding strategy implementation will broadcasts a discovery Interest to all non-local Faces, except the one (not ad hoc) that Interest was sent in. However, in the default configuration, three multicast faces will be created on the same physical link, Ethernet, UDP4, and UDP6 faces. To avoid sending duplicate packets to the same physical links, self-learning should be able to identify which Faces are connected to the same NIC. How to choose one multicast face? One option is to follow this order: Ethernet > UDP4 > UDP6. To summarize: there are two tasks:
- adding physical interface name to Face
- choose one multicast Face on one physical interface to broadcast a discovery Interest in self-learning
Updated by Junxiao Shi 3 months ago
To avoid sending duplicate packets to the same physical links, self-learning should be able to identify which Faces are connected to the same NIC.
follow this order: Ethernet > UDP4 > UDP6
Davide raised an issue on 20200515 NFD call:
Each transport reaches a potentially different set of upstream nodes, because other nodes may have some of these transports disabled.
You may learn a suboptimal path if you only try one transport at a time.
C----SWITCH----R | / P----/
In this diagram:
- C is the consumer.
- P is the producer. It has Ethernet multicast disabled.
- R is an intermediate node. It supports both Ethernet and UDP.
If C tries Ethernet multicast before UDP multicast, it would learn the path C-R-P.
If C tries both transports at the same time, it could learn a shorter path C-P.