diff options
author | rrs <rrs@FreeBSD.org> | 2007-04-14 09:44:09 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-04-14 09:44:09 +0000 |
commit | fb6f6fd9a183da8573afa302e42cdf7684785a7d (patch) | |
tree | 083a217af386adf4fcec65b47183061eed4b0685 /sys/netinet/sctp_input.c | |
parent | 571c5243e40d0546bb093ffb58ebf6e6476cfaba (diff) | |
download | FreeBSD-src-fb6f6fd9a183da8573afa302e42cdf7684785a7d.zip FreeBSD-src-fb6f6fd9a183da8573afa302e42cdf7684785a7d.tar.gz |
- fix source address selection when picking an acceptable address
- name change of prefered -> preferred
- CMT fast recover code added.
- Comment fixes in CMT.
- We were not giving a reason of cant_start_asoc per socket api
if we failed to get init/or/cookie to bring up an assoc. Change
so we don't just give a generic "comm lost" but look at actual
states of dying assoc.
- change "crc32" arguments to "crc32c" to silence strict/noisy
compiler warnings when crc32() is also declared
- A few minor tweaks to get the portable stuff truely portable
for sctp6_usrreq.c :-D
- one-2-one style vrf match problem.
- window recovery would leave chks marked for retran
during window probes on the sent queue. This would then
cause an out-of-order problem and assure that the flight
size "problem" would occur.
- Solves a flight size logging issue that caused rwnd
overruns, flight size off as well as false retransmissions.g
- Macroize the up and down of flight size.
- Fix a ECNE bug in its counting.
- The strict_sacks options was causing aborts when window probing
was active, fix to make strict sacks a bit smarter about what
the next unsent TSN is.
- Fixes a one-2-one wakeup bug found by Martin Kulas.
- If-defed out form, Andre's copy routines pending his
commit of at least m_last().. need to adjust for 6.2 as
well.. since m_last won't exist.
Reviewed by: gnn
Diffstat (limited to 'sys/netinet/sctp_input.c')
-rw-r--r-- | sys/netinet/sctp_input.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c index afb8590..d451d86 100644 --- a/sys/netinet/sctp_input.c +++ b/sys/netinet/sctp_input.c @@ -2616,26 +2616,14 @@ process_chunk_drop(struct sctp_tcb *stcb, struct sctp_chunk_desc *desc, /* fix counts and things */ #ifdef SCTP_FLIGHT_LOGGING - sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN, + sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN_PDRP, tp1->whoTo->flight_size, tp1->book_size, (uintptr_t) stcb, tp1->rec.data.TSN_seq); #endif - if (tp1->whoTo->flight_size >= tp1->book_size) - tp1->whoTo->flight_size -= tp1->book_size; - else - tp1->whoTo->flight_size = 0; - - if (stcb->asoc.total_flight >= tp1->book_size) { - stcb->asoc.total_flight -= tp1->book_size; - if (stcb->asoc.total_flight_count > 0) - stcb->asoc.total_flight_count--; - } else { - stcb->asoc.total_flight = 0; - stcb->asoc.total_flight_count = 0; - } - tp1->snd_count--; + sctp_flight_size_decrease(tp1); + sctp_total_flight_decrease(stcb, tp1); } { /* audit code */ unsigned int audit; @@ -4883,8 +4871,6 @@ sctp_skip_csum_4: } #endif /* IPSEC */ - - /* * common chunk processing */ |