[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20190416.213221.1503669459429997143.davem@davemloft.net>
Date: Tue, 16 Apr 2019 21:32:21 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: tuong.t.lien@...tech.com.au
Cc: jon.maloy@...csson.com, maloy@...jonn.com, ying.xue@...driver.com,
netdev@...r.kernel.org, tipc-discussion@...ts.sourceforge.net
Subject: Re: [net] tipc: fix link established but not in session
From: Tuong Lien <tuong.t.lien@...tech.com.au>
Date: Tue, 16 Apr 2019 10:48:07 +0700
> According to the link FSM, when a link endpoint got RESET_MSG (- a
> traditional one without the stopping bit) from its peer, it moves to
> PEER_RESET state and raises a LINK_DOWN event which then resets the
> link itself. Its state will become ESTABLISHING after the reset event
> and the link will be re-established soon after this endpoint starts to
> send ACTIVATE_MSG to the peer.
>
> There is no problem with this mechanism, however the link resetting has
> cleared the link 'in_session' flag (along with the other important link
> data such as: the link 'mtu') that was correctly set up at the 1st step
> (i.e. when this endpoint received the peer RESET_MSG). As a result, the
> link will become ESTABLISHED, but the 'in_session' flag is not set, and
> all STATE_MSG from its peer will be dropped at the link_validate_msg().
> It means the link not synced and will sooner or later face a failure.
>
> Since the link reset action is obviously needed for a new link session
> (this is also true in the other situations), the problem here is that
> the link is re-established a bit too early when the link endpoints are
> not really in-sync yet. The commit forces a resync as already done in
> the previous commit 91986ee166cf ("tipc: fix link session and
> re-establish issues") by simply varying the link 'peer_session' value
> at the link_reset().
>
> Acked-by: Jon Maloy <jon.maloy@...csson.com>
> Signed-off-by: Tuong Lien <tuong.t.lien@...tech.com.au>
Applied.
Powered by blists - more mailing lists