On Wed, Apr 04, 2012 at 02:42:12PM +0200, Antonio Quartulli wrote:
A client that connects to the mesh network is not visible to any node until it has been announced by its serving node in the next TT diff sent out by means of the next OGM.
During this period the client is not able to communicate to anyone because no node has a route towards it yet. This is usually acceptable in networks with short OGM interval (=the maximum waiting time before the next announcement), but it is definitely problematic in networks where the OGM interval has been set to an higher value (e.g. 5 seconds). The client, that probably issued an ARP or DHCP request upon connection will suffer from several timeouts before being able to communicate with the rest of the network.
This patch enable nodes to detect such "new born" clients and to add a temporary route towards them in order to be able to communicate. If the client is not claimed by any node within a certain amount of time, it will then be deleted.
Roaming operations have been adapted accordingly in order to be let clients switch serving node even during the first OGM interval (when they have not been announced yet)
Signed-off-by: Antonio Quartulli ordex@autistici.org
main.h | 2 + packet.h | 15 +++---- routing.c | 26 +++++++++--- soft-interface.c | 6 ++- soft-interface.h | 2 +- translation-table.c | 111 +++++++++++++++++++++++++++++++++++++++++---------- translation-table.h | 4 +- types.h | 1 + 8 files changed, 130 insertions(+), 37 deletions(-)
We definitely need to keep TEMP entries away from global CRC computation and full table response! So please, drop this patchset. I'll send a new one later.
Cheers,
/me acting as schizophrenic