From eab6797fe5e3c39b434297074e4c74248d745f0d Mon Sep 17 00:00:00 2001 From: tuexen Date: Sat, 6 Nov 2010 13:43:18 +0000 Subject: [PATCH] Do not resend DATA chunks without delay when dropped by the peer and the CRC was correct. MFC after: 3 days. --- sys/netinet/sctp_input.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index 8dffd4df963d..e30f12b801cd 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -3115,6 +3115,10 @@ process_chunk_drop(struct sctp_tcb *stcb, struct sctp_chunk_desc *desc, if ((tp1) && (tp1->sent < SCTP_DATAGRAM_ACKED)) { uint8_t *ddp; + if (((flg & SCTP_BADCRC) == 0) && + ((flg & SCTP_FROM_MIDDLE_BOX) == 0)) { + return (0); + } if ((stcb->asoc.peers_rwnd == 0) && ((flg & SCTP_FROM_MIDDLE_BOX) == 0)) { SCTP_STAT_INCR(sctps_pdrpdiwnp);