summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_uio.h
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-04-15 11:58:26 +0000
committerrrs <rrs@FreeBSD.org>2007-04-15 11:58:26 +0000
commit0eed90f74a4d72aafe54a3effbef2ce8080f753b (patch)
tree66b3a65021698d30bae86cfd4452df34a0c14ca2 /sys/netinet/sctp_uio.h
parent31175191f1c5ebf0c19db84ff5d57aa96207de48 (diff)
downloadFreeBSD-src-0eed90f74a4d72aafe54a3effbef2ce8080f753b.zip
FreeBSD-src-0eed90f74a4d72aafe54a3effbef2ce8080f753b.tar.gz
- Add more comments to sctps_stats struture in sctp_uio.h
- Fix bug that prevented EEOR mode from working and simplified the can_we_split code in the process. - Reduce lock contention for the tcb_send_lock. I did this especially for EEOR mode, still need to look at why I need a lock when removing from the tailq and the ->next is NOT null. A lock fixes it but it implies a bug yet exists. - Activated Andre's proposed changes to better use the mbuf infrastructure. - Fixed places that were not using the aloc macro's to take advantage of the per assoc cache. - Adds ifdef fix so any logging will enable stat_logging to get the right data structures in place (suggested by Max Laier).
Diffstat (limited to 'sys/netinet/sctp_uio.h')
-rw-r--r--sys/netinet/sctp_uio.h118
1 files changed, 72 insertions, 46 deletions
diff --git a/sys/netinet/sctp_uio.h b/sys/netinet/sctp_uio.h
index 4130493..3efd7ed 100644
--- a/sys/netinet/sctp_uio.h
+++ b/sys/netinet/sctp_uio.h
@@ -762,7 +762,7 @@ struct sctpstat {
/* input statistics: */
u_long sctps_recvpackets; /* total input packets */
u_long sctps_recvdatagrams; /* total input datagrams */
- u_long sctps_recvpktwithdata;
+ u_long sctps_recvpktwithdata; /* total packets that had data */
u_long sctps_recvsacks; /* total input SACK chunks */
u_long sctps_recvdata; /* total input DATA chunks */
u_long sctps_recvdupdata; /* total input duplicate DATA chunks */
@@ -787,45 +787,58 @@ struct sctpstat {
* chunks */
u_long sctps_sendfastretrans; /* total output fast retransmitted
* DATA chunks */
- u_long sctps_sendmultfastretrans; /* U-del */
+ u_long sctps_sendmultfastretrans; /* total FR's that happened
+ * more than once to same
+ * chunk (u-del multi-fr
+ * algo). */
u_long sctps_sendheartbeat; /* total output HB chunks */
u_long sctps_sendecne; /* total output ECNE chunks */
u_long sctps_sendauth; /* total output AUTH chunks FIXME */
u_long sctps_senderrors;/* ip_output error counter */
/* PCKDROPREP statistics: */
- u_long sctps_pdrpfmbox; /* */
- u_long sctps_pdrpfehos; /* */
- u_long sctps_pdrpmbda; /* */
- u_long sctps_pdrpmbct; /* */
- u_long sctps_pdrpbwrpt; /* */
- u_long sctps_pdrpcrupt; /* */
- u_long sctps_pdrpnedat; /* */
- u_long sctps_pdrppdbrk; /* */
- u_long sctps_pdrptsnnf; /* */
- u_long sctps_pdrpdnfnd; /* */
- u_long sctps_pdrpdiwnp; /* */
- u_long sctps_pdrpdizrw; /* */
- u_long sctps_pdrpbadd; /* */
- u_long sctps_pdrpmark; /* */
+ u_long sctps_pdrpfmbox; /* Packet drop from middle box */
+ u_long sctps_pdrpfehos; /* P-drop from end host */
+ u_long sctps_pdrpmbda; /* P-drops with data */
+ u_long sctps_pdrpmbct; /* P-drops, non-data, non-endhost */
+ u_long sctps_pdrpbwrpt; /* P-drop, non-endhost, bandwidth rep only */
+ u_long sctps_pdrpcrupt; /* P-drop, not enough for chunk header */
+ u_long sctps_pdrpnedat; /* P-drop, not enough data to confirm */
+ u_long sctps_pdrppdbrk; /* P-drop, where process_chunk_drop said break */
+ u_long sctps_pdrptsnnf; /* P-drop, could not find TSN */
+ u_long sctps_pdrpdnfnd; /* P-drop, attempt reverse TSN lookup */
+ u_long sctps_pdrpdiwnp; /* P-drop, e-host confirms zero-rwnd */
+ u_long sctps_pdrpdizrw; /* P-drop, midbox confirms no space */
+ u_long sctps_pdrpbadd; /* P-drop, data did not match TSN */
+ u_long sctps_pdrpmark; /* P-drop, TSN's marked for Fast Retran */
/* timeouts */
- u_long sctps_timoiterator; /* */
- u_long sctps_timodata; /* */
- u_long sctps_timowindowprobe; /* */
- u_long sctps_timoinit; /* */
- u_long sctps_timosack; /* */
- u_long sctps_timoshutdown; /* */
- u_long sctps_timoheartbeat; /* */
- u_long sctps_timocookie;/* */
- u_long sctps_timosecret;/* */
- u_long sctps_timopathmtu; /* */
- u_long sctps_timoshutdownack; /* */
- u_long sctps_timoshutdownguard; /* */
- u_long sctps_timostrmrst; /* */
- u_long sctps_timoearlyfr; /* */
- u_long sctps_timoasconf;/* */
- u_long sctps_timoautoclose; /* */
- u_long sctps_timoassockill; /* */
- u_long sctps_timoinpkill; /* */
+ u_long sctps_timoiterator; /* Number of iterator timers that
+ * fired */
+ u_long sctps_timodata; /* Number of T3 data time outs */
+ u_long sctps_timowindowprobe; /* Number of window probe (T3) timers
+ * that fired */
+ u_long sctps_timoinit; /* Number of INIT timers that fired */
+ u_long sctps_timosack; /* Number of sack timers that fired */
+ u_long sctps_timoshutdown; /* Number of shutdown timers that
+ * fired */
+ u_long sctps_timoheartbeat; /* Number of heartbeat timers that
+ * fired */
+ u_long sctps_timocookie;/* Number of times a cookie timeout fired */
+ u_long sctps_timosecret;/* Number of times an endpoint changed its
+ * cookie secret */
+ u_long sctps_timopathmtu; /* Number of PMTU timers that fired */
+ u_long sctps_timoshutdownack; /* Number of shutdown ack timers that
+ * fired */
+ u_long sctps_timoshutdownguard; /* Number of shutdown guard timers
+ * that fired */
+ u_long sctps_timostrmrst; /* Number of stream reset timers that
+ * fired */
+ u_long sctps_timoearlyfr; /* Number of early FR timers that
+ * fired */
+ u_long sctps_timoasconf;/* Number of times an asconf timer fired */
+ u_long sctps_timoautoclose; /* Number of times auto close timer
+ * fired */
+ u_long sctps_timoassockill; /* Number of asoc free timers expired */
+ u_long sctps_timoinpkill; /* Number of inp free timers expired */
/* Early fast retransmission counters */
u_long sctps_earlyfrstart;
u_long sctps_earlyfrstop;
@@ -851,13 +864,22 @@ struct sctpstat {
u_long sctps_naglesent; /* nagle allowed sending */
u_long sctps_naglequeued; /* nagle does't allow sending */
u_long sctps_maxburstqueued; /* max burst dosn't allow sending */
- u_long sctps_ifnomemqueued; /* */
+ u_long sctps_ifnomemqueued; /* look ahead tells us no memory in
+ * interface ring buffer OR we had a
+ * send error and are queuing one
+ * send. */
u_long sctps_windowprobed; /* total number of window probes sent */
- u_long sctps_lowlevelerr;
- u_long sctps_lowlevelerrusr;
- u_long sctps_datadropchklmt;
- u_long sctps_datadroprwnd;
- u_long sctps_ecnereducedcwnd;
+ u_long sctps_lowlevelerr; /* total times an output error causes
+ * us to clamp down on next user send. */
+ u_long sctps_lowlevelerrusr; /* total times sctp_senderrors were
+ * caused from a user send from a user
+ * invoked send not a sack response */
+ u_long sctps_datadropchklmt; /* Number of in data drops due to
+ * chunk limit reached */
+ u_long sctps_datadroprwnd; /* Number of in data drops due to rwnd
+ * limit reached */
+ u_long sctps_ecnereducedcwnd; /* Number of times a ECN reduced the
+ * cwnd */
u_long sctps_vtagexpress; /* Used express lookup via vtag */
u_long sctps_vtagbogus; /* Collision in express lookup. */
u_long sctps_primary_randry; /* Number of times the sender ran dry
@@ -867,12 +889,16 @@ struct sctpstat {
u_long sctps_wu_sacks_sent; /* Window Update only sacks sent */
u_long sctps_sends_with_flags; /* number of sends with sinfo_flags
* !=0 */
- u_long sctps_sends_with_unord;
- u_long sctps_sends_with_eof;
- u_long sctps_sends_with_abort;
- u_long sctps_protocol_drain_calls;
- u_long sctps_protocol_drains_done;
- u_long sctps_read_peeks;
+ u_long sctps_sends_with_unord /* number of undordered sends */ ;
+ u_long sctps_sends_with_eof; /* number of sends with EOF flag set */
+ u_long sctps_sends_with_abort; /* number of sends with ABORT flag set */
+ u_long sctps_protocol_drain_calls; /* number of times protocol
+ * drain called */
+ u_long sctps_protocol_drains_done; /* number of times we did a
+ * protocol drain */
+ u_long sctps_read_peeks;/* Number of times recv was called with peek */
+ u_long sctps_cached_chk;/* Number of cached chunks used */
+ u_long sctps_cached_strmoq; /* Number of cached stream oq's used */
};
#define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1)
OpenPOWER on IntegriCloud