From: Jon Maloy <jon.ma...@ericsson.com>
Date: Wed, 26 Sep 2018 22:28:52 +0200

> From: LUU Duc Canh <canh.d....@dektech.com.au>
> 
> The initial session number when a link is created is based on a random
> value, taken from struct tipc_net->random. It is then incremented for
> each link reset to avoid mixing protocol messages from different link
> sessions.
> 
> However, when a bearer is reset all its links are deleted, and will
> later be re-created using the same random value as the first time.
> This means that if the link never went down between creation and
> deletion we will still sometimes have two subsequent sessions with
> the same session number. In virtual environments with potentially
> long transmission times this has turned out to be a real problem.
> 
> We now fix this by randomizing the session number each time a link
> is created.
> 
> With a session number size of 16 bits this gives a risk of session
> collision of 1/64k. To reduce this further, we also introduce a sanity
> check on the very first STATE message arriving at a link. If this has
> an acknowledge value differing from 0, which is logically impossible,
> we ignore the message. The final risk for session collision is hence
> reduced to 1/4G, which should be sufficient.
> 
> Signed-off-by: LUU Duc Canh <canh.d....@dektech.com.au>
> Signed-off-by: Jon Maloy <jon.ma...@ericsson.com>

Applied.

Reply via email to