Hi, On 01/23/2015 11:25 AM, Sun Paul wrote: ...
I would like to check the behave in LKSCTP. we are running DIAMETER message over SCTP, and we have set the parameter "net.sctp.association_max_retrans = 4" in the LinuxOS. We noticed that when remote peer have retry to send the same request for 4 times, the LKSCTP will initiate an ABORT chunk with reason "association exceeded its max_retrans count". We would like to know whether this is the correct behavior? is there any other option that we can alter in order to avoid the ABORT chunk being sent?
I don't recall the RFC saying to send an ABORT, but let me double check in the mean time. Hmm, untested, but could you try something like that? diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index fef2acd..5ce198d 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c @@ -584,7 +584,8 @@ static void sctp_cmd_assoc_failed(sctp_cmd_seq_t *commands, sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, SCTP_ULPEVENT(event)); - if (asoc->overall_error_count >= asoc->max_retrans) { + if (asoc->overall_error_count >= asoc->max_retrans && + error != SCTP_ERROR_NO_ERROR) { abort = sctp_make_violation_max_retrans(asoc, chunk); if (abort) sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html