diff options
author | rrs <rrs@FreeBSD.org> | 2007-07-17 20:58:26 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-07-17 20:58:26 +0000 |
commit | baae800484b92bf7eee24218fdc96dca410b1846 (patch) | |
tree | 6c79e4122192f2fc2cd2730d66ed9af4e467112a /sys/netinet/sctp_cc_functions.c | |
parent | eeef9fbdacbbff0d2c008a8f385bddf21f2b0f04 (diff) | |
download | FreeBSD-src-baae800484b92bf7eee24218fdc96dca410b1846.zip FreeBSD-src-baae800484b92bf7eee24218fdc96dca410b1846.tar.gz |
- added pre-checks to the bindx call.
- use proper tick gathering macro instead of ticks directly.
- Placed reasonable boundaries on sets that a user can do
that are converted to ticks from ms.
- Fix CMT_PF to always check to be sure CMT is on.
- Fix ticks use of CMT_PF.
- put back code to allow asconfs to be queued while INITs are in flight
and before the assoc is established.
- During window probes, an ack'd packet might be left with the window
probe mark on it causing it to be retransmitted. Change so that
the flight decrease macro clears the window_probe mark.
- Additional logging flight size/reading and ASOC LOG. This
is only enabled if you manually insert things into opt_sctp.h
since its a set of debug code only.
- Found an interesting SMP race in the way data was appended which
could cause a reader to lose a part of a message, had to
reorder when we marked the message was complete to after
the data was appended.
- bug in ADD-IP for the subset bound socket case when the peer has only
one address
- fix ASCONF implicit success/error handling case
- proper support of jails in Freebsd 6>
- copy out the timeval for the 64 bit sparc world on cookie-echo
alignment error crashes without this).
Approved by: re(Ken Smith)
Diffstat (limited to 'sys/netinet/sctp_cc_functions.c')
-rw-r--r-- | sys/netinet/sctp_cc_functions.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/netinet/sctp_cc_functions.c b/sys/netinet/sctp_cc_functions.c index 3bc3b10..b934fd9 100644 --- a/sys/netinet/sctp_cc_functions.c +++ b/sys/netinet/sctp_cc_functions.c @@ -235,7 +235,7 @@ sctp_cwnd_update_after_sack(struct sctp_tcb *stcb, * * Should we stop any running T3 timer here? */ - if (sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == + if (sctp_cmt_on_off && sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == SCTP_ADDR_PF)) { net->dest_state &= ~SCTP_ADDR_PF; net->cwnd = net->mtu * sctp_cmt_pf; @@ -724,7 +724,7 @@ sctp_hs_cwnd_update_after_sack(struct sctp_tcb *stcb, * * Should we stop any running T3 timer here? */ - if (sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == + if (sctp_cmt_on_off && sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == SCTP_ADDR_PF)) { net->dest_state &= ~SCTP_ADDR_PF; net->cwnd = net->mtu * sctp_cmt_pf; @@ -1047,7 +1047,7 @@ between(uint32_t seq1, uint32_t seq2, uint32_t seq3) static inline uint32_t htcp_cong_time(struct htcp *ca) { - return ticks - ca->last_cong; + return sctp_get_tick_count() - ca->last_cong; } static inline uint32_t @@ -1062,7 +1062,7 @@ htcp_reset(struct htcp *ca) ca->undo_last_cong = ca->last_cong; ca->undo_maxRTT = ca->maxRTT; ca->undo_old_maxB = ca->old_maxB; - ca->last_cong = ticks; + ca->last_cong = sctp_get_tick_count(); } #ifdef SCTP_NOT_USED @@ -1099,7 +1099,7 @@ measure_rtt(struct sctp_tcb *stcb, struct sctp_nets *net) static void measure_achieved_throughput(struct sctp_tcb *stcb, struct sctp_nets *net) { - uint32_t now = ticks; + uint32_t now = sctp_get_tick_count(); if (net->fast_retran_ip == 0) net->htcp_ca.bytes_acked = net->net_ack; @@ -1303,7 +1303,7 @@ htcp_init(struct sctp_tcb *stcb, struct sctp_nets *net) net->htcp_ca.alpha = ALPHA_BASE; net->htcp_ca.beta = BETA_MIN; net->htcp_ca.bytes_acked = net->mtu; - net->htcp_ca.last_cong = ticks; + net->htcp_ca.last_cong = sctp_get_tick_count(); } void @@ -1419,7 +1419,7 @@ sctp_htcp_cwnd_update_after_sack(struct sctp_tcb *stcb, * * Should we stop any running T3 timer here? */ - if (sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == + if (sctp_cmt_on_off && sctp_cmt_pf && ((net->dest_state & SCTP_ADDR_PF) == SCTP_ADDR_PF)) { net->dest_state &= ~SCTP_ADDR_PF; net->cwnd = net->mtu * sctp_cmt_pf; @@ -1592,7 +1592,7 @@ sctp_htcp_cwnd_update_after_fr_timer(struct sctp_inpcb *inp, old_cwnd = net->cwnd; sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_EARLY_FR_TMR); - net->htcp_ca.last_cong = ticks; + net->htcp_ca.last_cong = sctp_get_tick_count(); /* * make a small adjustment to cwnd and force to CA. */ |