freifunk-gluon / l3roamd

BSD 2-Clause "Simplified" License
12 stars 6 forks source link

clientmgr: reduce connection dropouts when Multicast Packet is being dropped #10

Closed christf closed 7 years ago

christf commented 7 years ago

this is achieved by changing the state machine to go from IP_ACTIVE-state to IP_TENTATIVE instead of IP_INACTIVE. Also the IP_Check-Interval is reduced from 5s to 4s guaranteeing that at least two checks are happening during an NA_TIMEOUT raising the chance for the client to not be blocked too early.

This also renames IP_CHECKCLIENT_TIMEOUT to IP_CHECKCLIENT_INTERVAL.

neocturne commented 7 years ago

I have no idea how the state machine works... is there some explanation somewhere?

matwei commented 7 years ago

I have no idea how the state machine works... is there some explanation somewhere?

@NeoRaider Do you mean how a state machine works or how this state machine works?

neocturne commented 7 years ago

How the l3roamd client IP state machine works, I'm not very familar with the l3roamd code yet. A state diagram would be great, but I'd also accept a simple listing of states and transition triggers.

matwei commented 7 years ago

I just hacked a dot file from the source in clientmgr.c that produces the following (add and delete mean the addresses in the vector): l3roamd-fsm The graph shows the state transitions and the functions that cause the state transition. For checkclient() I have added the condition.

christf commented 7 years ago

This will be replaced by entirely different code.