diff options
author | rrs <rrs@FreeBSD.org> | 2006-12-14 17:02:55 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2006-12-14 17:02:55 +0000 |
commit | 3de80805ffbf0e87c0ff547698814193edb8bd14 (patch) | |
tree | 940611c208a2462c47614c0688becd97244ad6fe /sys/netinet/sctp_uio.h | |
parent | d398e83b8a941f854ec49ad93c3694c17b0f8e88 (diff) | |
download | FreeBSD-src-3de80805ffbf0e87c0ff547698814193edb8bd14.zip FreeBSD-src-3de80805ffbf0e87c0ff547698814193edb8bd14.tar.gz |
1) Fixes on a number of different collision case LOR's.
2) Fix all "magic numbers" to be constants.
3) A collision case that would generate two associations to
the same peer due to a missing lock is fixed.
4) Added tracking of where timers are stopped.
Approved by: gnn
Diffstat (limited to 'sys/netinet/sctp_uio.h')
-rw-r--r-- | sys/netinet/sctp_uio.h | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/sys/netinet/sctp_uio.h b/sys/netinet/sctp_uio.h index 0c308ae..f12f0b9 100644 --- a/sys/netinet/sctp_uio.h +++ b/sys/netinet/sctp_uio.h @@ -853,13 +853,13 @@ struct sctpstat { u_long sctps_cmt_randry;/* Same for above */ u_long sctps_slowpath_sack; /* Sacks the slow way */ u_long sctps_wu_sacks_sent; /* Window Update only sacks sent */ - u_long sctps_locks_in_rcv; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcva; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcvb; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcvc; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcvd; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcve; /* How man so_rcv buf locks we did */ - u_long sctps_locks_in_rcvf; /* How man so_rcv buf locks we did */ + 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; }; #define SCTP_STAT_INCR(_x) SCTP_STAT_INCR_BY(_x,1) @@ -884,6 +884,47 @@ union sctp_sockstore { struct sockaddr sa; }; +struct xsctp_inpcb { + uint32_t last; + uint16_t local_port; + uint16_t number_local_addresses; + uint32_t number_associations; + uint32_t flags; + uint32_t features; + uint32_t total_sends; + uint32_t total_recvs; + uint32_t total_nospaces; + /* add more endpoint specific data here */ +}; + +struct xsctp_tcb { + uint16_t remote_port; + uint16_t number_local_addresses; + uint16_t number_remote_addresses; + uint16_t number_incomming_streams; + uint16_t number_outgoing_streams; + uint32_t state; + uint32_t total_sends; + uint32_t total_recvs; + uint32_t local_tag; + uint32_t remote_tag; + uint32_t initial_tsn; + uint32_t highest_tsn; + uint32_t cumulative_tsn; + uint32_t cumulative_tsn_ack; + /* add more association specific data here */ +}; + +struct xsctp_laddr { + union sctp_sockstore address; + /* add more local address specific data */ +}; + +struct xsctp_raddr { + union sctp_sockstore address; + uint16_t state; + /* add more remote address specific data */ +}; /* * Kernel defined for sctp_send |