lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 03 Mar 2011 17:29:39 +0800 From: Wei Yongjun <yjwei@...fujitsu.com> To: David Miller <davem@...emloft.net>, Vlad Yasevich <vladislav.yasevich@...com>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>, lksctp <linux-sctp@...r.kernel.org> CC: Mingyuan Zhu <liyha.zhu@...il.com>, Neil Horman <nhorman@...driver.com> Subject: [PATCH] sctp: fix the fast retransmit limit If chunk is still lost after fast retransmit, SCTP stack will never allow the second fast retransmit of this chunk, even if the peer need we do this. This chunk will be retransmit until the rtx timeout. This limit is introduce by the following patch: sctp: reduce memory footprint of sctp_chunk structure (c226ef9b83694311327f3ab0036c6de9c22e9daf) This patch revert this limit and removed useless SCTP_DONT_FRTX. Signed-off-by: Wei Yongjun <yjwei@...fujitsu.com> --- include/net/sctp/structs.h | 1 - net/sctp/outqueue.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index cc9185c..82a0f84 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -751,7 +751,6 @@ struct sctp_chunk { #define SCTP_CAN_FRTX 0x0 #define SCTP_NEED_FRTX 0x1 -#define SCTP_DONT_FRTX 0x2 __u16 rtt_in_progress:1, /* This chunk used for RTT calc? */ has_tsn:1, /* Does this chunk have a TSN yet? */ has_ssn:1, /* Does this chunk have a SSN yet? */ diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 8c6d379..7ed5862 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c @@ -657,7 +657,7 @@ redo: * after it is retransmitted. */ if (chunk->fast_retransmit == SCTP_NEED_FRTX) - chunk->fast_retransmit = SCTP_DONT_FRTX; + chunk->fast_retransmit = SCTP_CAN_FRTX; q->empty = 0; break; @@ -679,7 +679,7 @@ redo: if (rtx_timeout || fast_rtx) { list_for_each_entry(chunk1, lqueue, transmitted_list) { if (chunk1->fast_retransmit == SCTP_NEED_FRTX) - chunk1->fast_retransmit = SCTP_DONT_FRTX; + chunk1->fast_retransmit = SCTP_CAN_FRTX; } } -- 1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists