Hi,
On Tue, Dec 08, 2015 at 05:47:22PM +0800, [email protected] wrote:
> From: yzhu1 <[email protected]>
>
> This feature is introduced in the commit 5aa93bc "sctp: Implement
> quick failover draft from tsvwg". This feature should be disabled
> if the quick failover feature is disabled.
>
> Signed-off-by: yzhu1 <[email protected]>
> ---
> net/sctp/associola.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/net/sctp/associola.c b/net/sctp/associola.c
> index 559afd0..7438625 100644
> --- a/net/sctp/associola.c
> +++ b/net/sctp/associola.c
> @@ -795,7 +795,8 @@ void sctp_assoc_control_transport(struct sctp_association
> *asoc,
> * active state and set cwnd to 1 MTU, see SCTP
> * Quick failover draft section 5.1, point 5
> */
> - if (transport->state == SCTP_PF) {
> + if ((asoc->pf_retrans < asoc->max_retrans) &&
> + (transport->state == SCTP_PF)) {
> ulp_notify = false;
> transport->cwnd = asoc->pathmtu;
> }
Didn't you confuse asoc->max_retrans with Path.Max.Retrans?
That draft refers to asoc->pf_retrans having to be bigger than
Path.Max.Retrans in order to disable PF, and asoc->max_retrans is
another thing, it's originated from net->sctp.max_retrans_association.
The check is performed later in the code:
+ if ((transport->state != SCTP_PF) &&
+ (asoc->pf_retrans < transport->pathmaxrxt) &&
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ (transport->error_count > asoc->pf_retrans)) {
This check should avoid that state transition as it will avoid the path
from entereing SCTP_PF state at all.
transport->pathmaxrst is originated from net->sctp.max_retrans_path.
Btw, you had indentantion issues with your patch. Extra () that aren't
needed and the second line should start at the column right after the
initial ( in the first line. Please run scripts/checkpatch.pl on it next
time.
Marcelo
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html