diff options
author | Randall Stewart <rrs@FreeBSD.org> | 2007-05-28 11:17:24 +0000 |
---|---|---|
committer | Randall Stewart <rrs@FreeBSD.org> | 2007-05-28 11:17:24 +0000 |
commit | d61a0ae066be824dce80cfa38759df8373b32fbc (patch) | |
tree | d5292e14a920c4cac31f0eb379628b79f9c77442 /sys/netinet/sctp_structs.h | |
parent | a160e6302c5935e6337924cc19576b4405a4372b (diff) | |
download | src-d61a0ae066be824dce80cfa38759df8373b32fbc.tar.gz src-d61a0ae066be824dce80cfa38759df8373b32fbc.zip |
- fixed autclose to not allow setting on 1-2-1 model.
- bounded cookie-life to 1 second minimum in socket option set.
- Delayed_ack_time becomes delayed_ack per new socket api document.
- Improve port number selection, we now use low/high bounds and
no chance of a endless loop. Only one call to random per bind
as well.
- fixes so set_peer_primary pre-screens addresses to be
valid to this host.
- maxseg did not allow setting on an assoc basis. We needed
to thus track and use an association value instead of a inp value.
- Fixed ep get of HB status to report back properly.
- use settings flag to tell if assoc level hb is on off not
the timer.. since the timer may still run if unconf address
are present.
- check for crazy ENABLE/DISABLE conditions.
- set and get of pmtud (fixed path mtu) not always taking into account ovh.
- Getting PMTU info on stcb only needs to return PMTUD_ENABLED if
any net is doing PMTU discovery.
- Panic or warning fixed to not do so when a valid ip frag is
taking place.
- sndrcvinfo appearing in both inp and stcb was full size, instead
of the non-pad version. This saves about 92 bytes from each struct
by carefully converting to use the smaller version.
- one-2-one model get(maxseg) would always get ep value, never the
tcb's value.
- The delayed ack time could be under a tick, this fixes so
it bounds it to at least 1 tick for platforms whos tick
is more than a ms.
- Fragment interleave level set to wrong default value.
- Fragment interleave could not set level 0.
- Defered stream reset was broken due to a guard check and ntohl issue.
- Found two lock order reversals and fixed.
- Tighten up address checking, if the user gives an address the sa_len
had better be set properly.
- Get asoc by assoc-id would return a locked tcb when it was asked
not to if the tcb was in the restart hash.
- sysctl to dig down and get more association details
Reviewed by: gnn
Notes
Notes:
svn path=/head/; revision=170056
Diffstat (limited to 'sys/netinet/sctp_structs.h')
-rw-r--r-- | sys/netinet/sctp_structs.h | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/sys/netinet/sctp_structs.h b/sys/netinet/sctp_structs.h index 5611808703be..e50ccc5fa6cb 100644 --- a/sys/netinet/sctp_structs.h +++ b/sys/netinet/sctp_structs.h @@ -58,17 +58,6 @@ struct sctp_timer { uint32_t stopped_from; }; -struct sctp_nonpad_sndrcvinfo { - uint16_t sinfo_stream; - uint16_t sinfo_ssn; - uint16_t sinfo_flags; - uint32_t sinfo_ppid; - uint32_t sinfo_context; - uint32_t sinfo_timetolive; - uint32_t sinfo_tsn; - uint32_t sinfo_cumtsn; - sctp_assoc_t sinfo_assoc_id; -}; struct sctp_foo_stuff { struct sctp_inpcb *inp; @@ -472,6 +461,26 @@ struct sctp_tsn_log { uint16_t flgs; }; + + +/* This struct is here to cut out the compatiabilty + * pad that bulks up both the inp and stcb. The non + * pad portion MUST stay in complete sync with + * sctp_sndrcvinfo... i.e. if sinfo_xxxx is added + * this must be done here too. + */ +struct sctp_nonpad_sndrcvinfo { + uint16_t sinfo_stream; + uint16_t sinfo_ssn; + uint16_t sinfo_flags; + uint32_t sinfo_ppid; + uint32_t sinfo_context; + uint32_t sinfo_timetolive; + uint32_t sinfo_tsn; + uint32_t sinfo_cumtsn; + sctp_assoc_t sinfo_assoc_id; +}; + /* * Here we have information about each individual association that we track. * We probably in production would be more dynamic. But for ease of @@ -487,7 +496,7 @@ struct sctp_association { struct timeval time_last_rcvd; struct timeval time_last_sent; struct timeval time_last_sat_advance; - struct sctp_sndrcvinfo def_send; /* default send parameters */ + struct sctp_nonpad_sndrcvinfo def_send; /* timers and such */ struct sctp_timer hb_timer; /* hb timer */ @@ -695,6 +704,7 @@ struct sctp_association { uint32_t my_rwnd; uint32_t my_last_reported_rwnd; uint32_t my_rwnd_control_len; + uint32_t sctp_frag_point; uint32_t total_output_queue_size; |