diff options
author | rrs <rrs@FreeBSD.org> | 2007-04-19 11:28:43 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-04-19 11:28:43 +0000 |
commit | e8a77bd9270dfbfa30aa44607f5f3ecb4e70ee3e (patch) | |
tree | d950582b945c3e6f66e506197c41a7fa14d07c72 /sys/netinet/sctp_var.h | |
parent | 19613c2bfe0ba59b977ac06457e84b93cceb5045 (diff) | |
download | FreeBSD-src-e8a77bd9270dfbfa30aa44607f5f3ecb4e70ee3e.zip FreeBSD-src-e8a77bd9270dfbfa30aa44607f5f3ecb4e70ee3e.tar.gz |
- More work on making send lock contention.
- Removed free-oqueue cache.
- Fix counter for sq entries
- Increased the amount of information retained
on ASOC_TSN logging on the association.
- Made it so with the ASOC_TSN logging on
sending or recieving an abort we dump the log.
- Went through and added invariant's around some
panic's that needed them.
- decrements went to atomic_subtact_int instead of add -1
- Removed residual count increment that threw off a
strm oq count.
- Tracks and complaints if we don't have a LAST fragment and
clean up the sp structure.
- Track a new stat that counts number of abandoned msgs that
happen if you close without reading.
- Fix lookup of frag point to be aware of a 0 assoc-id.
Reviewed by: gnn
Diffstat (limited to 'sys/netinet/sctp_var.h')
-rw-r--r-- | sys/netinet/sctp_var.h | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/sys/netinet/sctp_var.h b/sys/netinet/sctp_var.h index 7cccacd..b5f9ad4 100644 --- a/sys/netinet/sctp_var.h +++ b/sys/netinet/sctp_var.h @@ -77,30 +77,15 @@ extern struct pr_usrreqs sctp_usrreqs; } #define sctp_free_a_strmoq(_stcb, _strmoq) { \ - if (((_stcb)->asoc.free_strmoq_cnt > sctp_asoc_free_resc_limit) || \ - (sctppcbinfo.ipi_free_strmoq > sctp_system_free_resc_limit)) { \ - SCTP_ZONE_FREE(sctppcbinfo.ipi_zone_strmoq, (_strmoq)); \ - SCTP_DECR_STRMOQ_COUNT(); \ - } else { \ - TAILQ_INSERT_TAIL(&(_stcb)->asoc.free_strmoq, (_strmoq), next); \ - (_stcb)->asoc.free_strmoq_cnt++; \ - atomic_add_int(&sctppcbinfo.ipi_free_strmoq, 1); \ - } \ + SCTP_ZONE_FREE(sctppcbinfo.ipi_zone_strmoq, (_strmoq)); \ + SCTP_DECR_STRMOQ_COUNT(); \ } #define sctp_alloc_a_strmoq(_stcb, _strmoq) { \ - if (TAILQ_EMPTY(&(_stcb)->asoc.free_strmoq)) { \ - (_strmoq) = SCTP_ZONE_GET(sctppcbinfo.ipi_zone_strmoq, struct sctp_stream_queue_pending); \ - if ((_strmoq)) { \ - SCTP_INCR_STRMOQ_COUNT(); \ - } \ - } else { \ - (_strmoq) = TAILQ_FIRST(&(_stcb)->asoc.free_strmoq); \ - TAILQ_REMOVE(&(_stcb)->asoc.free_strmoq, (_strmoq), next); \ - atomic_subtract_int(&sctppcbinfo.ipi_free_strmoq, 1); \ - SCTP_STAT_INCR(sctps_cached_strmoq); \ - (_stcb)->asoc.free_strmoq_cnt--; \ - } \ + (_strmoq) = SCTP_ZONE_GET(sctppcbinfo.ipi_zone_strmoq, struct sctp_stream_queue_pending); \ + if ((_strmoq)) { \ + SCTP_INCR_STRMOQ_COUNT(); \ + } \ } |