aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/sctputil.c
diff options
context:
space:
mode:
authorRandall Stewart <rrs@FreeBSD.org>2007-06-13 01:31:53 +0000
committerRandall Stewart <rrs@FreeBSD.org>2007-06-13 01:31:53 +0000
commit9a97252585e1be47aa6f9154de1f54eab7dffe47 (patch)
tree8d5bbe40650c2eb2f33e58ff8a55f66ae96d6c38 /sys/netinet/sctputil.c
parent8004e6ecc811b69d6c31e52e63cfef2eb8ec4608 (diff)
downloadsrc-9a97252585e1be47aa6f9154de1f54eab7dffe47.tar.gz
src-9a97252585e1be47aa6f9154de1f54eab7dffe47.zip
- Fixed cookie handling to calc an RTO when
its an INIT collision case. - Fixed RTO calc to maintain a seperate variable to track if a RTO calc as been done, this allows the RTO var to be doubled during initial timeouts. - Reduces the amount of stack used by process control. - Use a constant for the peer chunk overhead. - Name change to spell candidate correctly.
Notes
Notes: svn path=/head/; revision=170642
Diffstat (limited to 'sys/netinet/sctputil.c')
-rw-r--r--sys/netinet/sctputil.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c
index fb2e1adb0c3d..b2f9f99ff53d 100644
--- a/sys/netinet/sctputil.c
+++ b/sys/netinet/sctputil.c
@@ -2576,7 +2576,7 @@ sctp_calculate_rto(struct sctp_tcb *stcb,
/***************************/
o_calctime = calc_time;
/* this is Van Jacobson's integer version */
- if (net->RTO) {
+ if (net->RTO_measured) {
calc_time -= (net->lastsa >> SCTP_RTT_SHIFT); /* take away 1/8th when
* shift=3 */
#ifdef SCTP_RTTVAR_LOGGING
@@ -2596,6 +2596,7 @@ sctp_calculate_rto(struct sctp_tcb *stcb,
}
} else {
/* First RTO measurment */
+ net->RTO_measured = 1;
net->lastsa = calc_time << SCTP_RTT_SHIFT; /* Multiply by 8 when
* shift=3 */
net->lastsv = calc_time;