summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_var.h
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-04-19 11:28:43 +0000
committerrrs <rrs@FreeBSD.org>2007-04-19 11:28:43 +0000
commite8a77bd9270dfbfa30aa44607f5f3ecb4e70ee3e (patch)
treed950582b945c3e6f66e506197c41a7fa14d07c72 /sys/netinet/sctp_var.h
parent19613c2bfe0ba59b977ac06457e84b93cceb5045 (diff)
downloadFreeBSD-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.h27
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(); \
+ } \
}
OpenPOWER on IntegriCloud