From: Daniel Borkmann <daniel@iogearbox.net>
To: Xin Long <lucien.xin@gmail.com>,
network dev <netdev@vger.kernel.org>,
linux-sctp@vger.kernel.org
Cc: davem@davemloft.net,
Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
Vlad Yasevich <vyasevich@gmail.com>
Subject: Re: [PATCH net] sctp: fix the transports round robin issue when init is retransmitted
Date: Thu, 10 Mar 2016 10:48:45 +0100 [thread overview]
Message-ID: <56E142FD.3070105@iogearbox.net> (raw)
In-Reply-To: <8d3cd163c84b30797f1123a7fc8a56f768801a87.1457595117.git.lucien.xin@gmail.com>
On 03/10/2016 08:31 AM, Xin Long wrote:
> prior to this patch, at the beginning if we have two paths in one assoc,
> they may have the same params other than the last_time_heard, it will try
> the paths like this:
>
> 1st cycle
> try trans1 fail.
> then trans2 is selected.(cause it's last_time_heard is after trans1).
>
> 2nd cycle:
> try trans2 fail
> then trans2 is selected.(cause it's last_time_heard is after trans1).
>
> 3rd cycle:
> try trans2 fail
> then trans2 is selected.(cause it's last_time_heard is after trans1).
>
> ....
>
> trans1 will never have change to be selected, which is not what we expect.
> we should keeping round robin all the paths if they are just added at the
> beginning.
>
> So at first every tranport's last_time_heard should be initialized 0, so
> that we ensure they have the same value at the beginning, only by this,
> all the transports could get equal chance to be selected.
>
> Then for sctp_trans_elect_best, it should return the trans_next one when
> *trans == *trans_next, so that we can try next if it fails, but now it
> always return trans. so we can fix it by exchanging these two params when
> we calls sctp_trans_elect_tie().
>
> Fixes: 4c47af4d5eb2 ('net: sctp: rework multihoming retransmission path selection to rfc4960')
> Signed-off-by: Xin Long <lucien.xin@gmail.com>
Seems okay to me. I presume these paths were either all in PF or INACTIVE
state, if not even HBs get through that would actually raise some scores,
so that a good path will be selected again in such case.
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
next prev parent reply other threads:[~2016-03-10 9:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-10 7:31 [PATCH net] sctp: fix the transports round robin issue when init is retransmitted Xin Long
2016-03-10 9:48 ` Daniel Borkmann [this message]
2016-03-10 15:01 ` Marcelo Ricardo Leitner
2016-03-14 1:53 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56E142FD.3070105@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=linux-sctp@vger.kernel.org \
--cc=lucien.xin@gmail.com \
--cc=marcelo.leitner@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=vyasevich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.