summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_structs.h
Commit message (Collapse)AuthorAgeFilesLines
* MFC r310590:tuexen2016-12-291-4/+6
| | | | | | | Whitespace changes. The toolchain for processing the sources has been updated. No functional change.
* MFC r309682:tuexen2016-12-181-11/+10
| | | | | | | | | Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. This made a couple of bugs visible in handling SSN wrap-arounds when using DATA chunks. Now bulk transfer seems to work fine... This fixes the issue reported in https://github.com/sctplab/usrsctp/issues/111
* MFC r309607:tuexen2016-12-181-5/+2
| | | | | | | | Whitespace changes. The tools using to generate the sources has been updated and produces different whitespaces. Commit this seperately to avoid intermixing these with real code changes.
* MFC r303792:tuexen2016-08-111-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix various bugs in relation to the I-DATA chunk support This is joint work with rrs. MFC r303793: Mark an unused parameter as such. MFC r303798: Don't modify a structure without holding a reference count on it. MFC r303813: Remove stream queue entry consistently from wheel. While there, improve the handling of drain. MFC r303819: Consistently check for unsent data on the stream queues. MFC r303831: Fix a locking issue found by stress testing with tsctp. The inp read lock neeeds to be held when considering control->do_not_ref_stcb. MFC r303834: Fix the sending of FORWARD-TSN and I-FORWARD-TSN chunks. The last SID/SSN pair wasn't filled in. Thanks to Julian Cordes for providing a packetdrill script triggering the issue and making me aware of the bug. Approved by: re (kib)
* Use a separate MID counter for ordered und unordered messages for eachtuexen2016-06-081-3/+6
| | | | | | | | outgoing stream. Thanks to Jens Hoelscher for reporting the issue. MFC after: 1 week
* Get struct sctp_net_route in-sync with struct route again.tuexen2016-06-031-0/+1
|
* Fix a bug introduced by the implementation of I-DATA support.tuexen2016-05-131-5/+0
| | | | | | | | | | There was the requirement that two structures are in sync, which is not valid anymore. Therefore don't rely on this in the code anymore. Thanks to Radek Malcic for reporting the issue. He found this when using the userland stack. MFC after: 1 week
* netinet/sctp*: minor spelling fixes in comments.pfg2016-05-021-1/+1
| | | | | | No functional change. Reviewed by: tuexen
* This is work done by Michael Tuexen and myself at the IETF. Thisrrs2016-04-071-10/+26
| | | | | | | | | adds the new I-Data (Interleaved Data) message. This allows a user to be able to have complete freedom from Head Of Line blocking that was previously there due to the in-ability to send multiple large messages without the TSN's being in sequence. The code as been tested with Michaels various packet drill scripts as well as inter-networking between the IETF's location in Argentina and Germany.
* Get struct sctp_net_route in sync with struct route again.tuexen2016-01-041-3/+5
|
* Fix several problems with Stream Reset.rrs2015-07-221-2/+13
| | | | | | | | | 1) We were not handling (or sending) the IN_PROGRESS case if the other side (or our side) was not able to reset (awaiting more data). 2) We would improperly send a stream-reset when we should not. Not waiting until the TSN had been assigned when data was inqueue. Reviewed by: tuexen
* Improve the selection of the destination address of SACK chunks.tuexen2015-03-261-1/+0
| | | | | | | | This fixes https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196755 and is joint work with rrs@. MFC after: 1 week
* Add a SCTP socket option to limit the cwnd for each path.tuexen2015-03-101-0/+1
| | | | MFC after: 1 month
* This is the SCTP specific companion oftuexen2014-12-041-3/+1
| | | | | https://svnweb.freebsd.org/changeset/base/275358 which was provided by Hans Petter Selasky.
* Do the renaming of sb_cc to sb_ccc in a way with less code changes bytuexen2014-12-021-1/+1
| | | | | | | | | using a macro. This is an alternate approach to https://svnweb.freebsd.org/changeset/base/275326 which is easier to handle upstream. Discussed with: rrs, glebius
* Merge from projects/sendfile:glebius2014-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Introduce a notion of "not ready" mbufs in socket buffers. These mbufs are now being populated by some I/O in background and are referenced outside. This forces following implications: - An mbuf which is "not ready" can't be taken out of the buffer. - An mbuf that is behind a "not ready" in the queue neither. - If sockbet buffer is flushed, then "not ready" mbufs shouln't be freed. o In struct sockbuf the sb_cc field is split into sb_ccc and sb_acc. The sb_ccc stands for ""claimed character count", or "committed character count". And the sb_acc is "available character count". Consumers of socket buffer API shouldn't already access them directly, but use sbused() and sbavail() respectively. o Not ready mbufs are marked with M_NOTREADY, and ready but blocked ones with M_BLOCKED. o New field sb_fnrdy points to the first not ready mbuf, to avoid linear search. o New function sbready() is provided to activate certain amount of mbufs in a socket buffer. A special note on SCTP: SCTP has its own sockbufs. Unfortunately, FreeBSD stack doesn't yet allow protocol specific sockbufs. Thus, SCTP does some hacks to make itself compatible with FreeBSD: it manages sockbufs on its own, but keeps sb_cc updated to inform the stack of amount of data in them. The new notion of "not ready" data isn't supported by SCTP. Instead, only a mechanical substitute is done: s/sb_cc/sb_ccc/. A proper solution would be to take away struct sockbuf from struct socket and allow protocols to implement their own socket buffers, like SCTP already does. This was discussed with rrs@. Sponsored by: Netflix Sponsored by: Nginx, Inc.
* Chunk IDs are 8 bit entities, not 16 bit.tuexen2014-09-151-2/+2
| | | | | | | Thanks to Peter Kasting from Google for drawing my attention to it. MFC after: 3 days
* Add support for the SCTP_PR_STREAM_STATUS and SCTP_PR_ASSOC_STATUStuexen2014-08-131-0/+10
| | | | | | | | | socket options. This includes managing the correspoing stat counters. Add the SCTP_DETAILED_STR_STATS kernel option to control per policy counters on every stream. The default is off and only an aggregated counter is available. This is sufficient for the RTCWeb usecase. MFC after: 1 week
* Add support for the SCTP_AUTH_SUPPORTED and SCTP_ASCONF_SUPPORTEDtuexen2014-08-121-4/+2
| | | | | | socket options. Add also a sysctl to control the support of ASCONF. MFC after: 1 week
* Add support for the SCTP_RECONFIG_SUPPORTED and the correspondingtuexen2014-08-041-2/+1
| | | | | | sysctl controlling the negotiation of the RE-CONFIG extension. MFC after: 3 days
* Add support for the SCTP_PKTDROP_SUPPORTED socket option andtuexen2014-08-031-5/+1
| | | | | | | the corresponding sysctl variable. The default is off, since the specification is not an RFC yet. MFC after: 1 week
* Add SCTP socket option SCTP_NRSACK_SUPPORTED to control thetuexen2014-08-031-4/+1
| | | | | | | | NRSACK extension. The default will still be off, since it it not an RFC (yet). Changing the sysctl name will be in a separate commit. MFC after: 1 week
* Add support for the SCTP_PR_SUPPORTED socket option as specified intuexen2014-08-021-3/+2
| | | | | | | http://tools.ietf.org/html/draft-ietf-tsvwg-sctp-prpolicies Add also a sysctl controlling the default of the end-points. MFC after: 1 week
* Cleanup the ECN configuration handling and provide an SCTP sockettuexen2014-08-021-1/+1
| | | | | | | option for controlling ECN on future associations and get the status on current associations. A simialar pattern will be used for controlling SCTP extensions in upcoming commits.
* Remove redundant field pr_sctp_on.tuexen2013-09-031-2/+0
| | | | MFC after: 1 week
* Make also the features of the association 64-bit.tuexen2013-08-221-1/+1
| | | | | | | | | When exporting to xinpcb, just export the lower 32-bit. Using there also 64-bits will break the ABI and will be committed separetly. MFC after: 2 weeks X-MFC with: 254248
* Cleanup the handling of address scopes. Announce in the INIT/INIT-ACKtuexen2013-02-091-11/+1
| | | | | | | only the supported address types. While there, do some whitespace cleanups. MFC after: 1 week
* Add per outgoing stream accounting for chunks in the sendtuexen2012-11-071-0/+1
| | | | | | | | and sent queue. This provides no functional change, but is a preparation for an upcoming stream reset improvement. Done with rrs@. MFC after: 1 week
* Move from early SSN assignment to late SSN assignment.tuexen2012-11-051-2/+1
| | | | | | | | This doesn't change functionality, but makes upcoming change much easier. Developed with rrs@ at the IETF 85. MFC after: 1 week
* Don't include a structure containing a flexible array in anothertuexen2012-09-071-2/+2
| | | | | | structure. MFC after: 10 days
* Use consistent text at the begining of the files.tuexen2012-05-231-6/+4
| | | | MFC after: 3 days
* Make stream our stream reset implementationrrs2012-03-291-0/+5
| | | | | | compliant to RFC6525. MFC after: 1 month
* Fix a typo which was already fixed by eadler in r227489. We missedtuexen2012-02-061-1/+1
| | | | | | to integrate this fix in our code base, so it was removed in r227755. MFC after: 3 days.
* Fix unused parameter warnings.tuexen2011-12-171-2/+2
| | | | | | While there, fix some whitespace issues. MFC after: 3 months.
* Add support for the SCTP_REMOTE_UDP_ENCAPS_PORT socket option.tuexen2011-11-201-1/+2
| | | | | | | Retire the the now unused sctp_udp_tunneling_for_client_enable sysctl variable. MFC after: 3 months.
* - fix duplicate "a a" in some commentseadler2011-11-131-1/+1
| | | | | | Submitted by: eadler Approved by: simon MFC after: 3 days
* Get struct sctp_net_route in tune with struct route.tuexen2011-10-101-0/+2
| | | | | | | | struct route was changed in http://svn.freebsd.org/changeset/base/225698 and since then SCTP support was broken. This needs to be MFCed to stable/9 to unbreak SCTP support in 9.0 MFC after: 3 days.
* Cleanup the iterator code, remove code that is never executed.tuexen2011-09-191-3/+2
| | | | | Approved by: re MFC after: 1 month.
* Fix the handling of the flowlabel and DSCP value in the SCTP_PEER_ADDR_PARAMStuexen2011-09-141-0/+4
| | | | | | | | socket option. Honor the net.inet6.ip6.auto_flowlabel sysctl setting. Approved by: re (bz) MFC after: 1 month.
* Add support for the spp_dscp field in the SCTP_PEER_ADDR_PARAMStuexen2011-08-141-2/+3
| | | | | | | | socket option. Backwards compatibility is provided by still supporting the spp_ipv4_tos field. Approved by: re@ MFC after: 2 months.
* The result of a joint work between rrs@ and myself at the IETF:tuexen2011-08-031-9/+12
| | | | | | | | | | | * Decouple the path supervision using a separate HB timer per path. * Add support for potentially failed state. * Bring back RTO.min to 1 second. * Accept packets on IP-addresses already announced via an ASCONF * While there: do some cleanups. Approved by: re@ MFC after: 2 months.
* Add support for the newly added SCTP API.tuexen2011-06-151-0/+3
| | | | | | | | | | | | | In particular add support for: * SCTP_SNDINFO, SCTP_PRINFO, SCTP_AUTHINFO, SCTP_DSTADDRV4, and SCTP_DSTADDRV6 cmsgs. * SCTP_NXTINFO and SCTP_RCVINFO cmgs. * SCTP_EVENT, SCTP_RECVRCVINFO, SCTP_RECVNXTINFO and SCTP_DEFAULT_SNDINFO socket option. * Special association ids (SCTP_FUTURE_ASSOC, ...) * sctp_recvv() and sctp_sendv() functions. MFC after: 1 month.
* Tunes and fixes the new DC-CC to seem to hit therrs2011-03-081-3/+14
| | | | | | | | | right mix. Still may need some tweaks but it appears to almost not give away too much to an RFC2581 flow, but can really minimize the amount of buffers used in the net. MFC after: 3 months
* Adds a new Congestion Control that helps reducerrs2011-03-011-0/+16
| | | | | | | | the RTT that a flow will build up in buffers in transit. It is a slight modification to RFC2581 but is more friendly i.e. less aggressive. MFC after: 3 months
* Improvements to CC modules:rrs2011-02-261-5/+13
| | | | | | | | | | | 1) Add four new points that allow you to get more information to cc algo's 2) Fix the case where user changes module on a existing TCB, in such a case, the initialization module needs to be called on all nets. 3) Move htcp_cc structure to a union that other modules can use. 4) Add 5th point for get/set socket options for cc_module specific options MFC after: 2 months
* * Cleanup the code computing the retransmission timeout.tuexen2011-02-241-5/+5
| | | | | | * Fix an initialization bug for the scaled variance of the RTO. MFC after: 3 months.
* Fix bugs related to M_FLOWID:tuexen2011-02-071-0/+2
| | | | | | | | * Store the flowid when receiving an SCTP/IPv6 packet. * Store the flowid when receiving an SCTP packet with wrong CRC. * Initilize flowid correctly. * Put test code under INVARIANTS. MFC after: 3 months.
* 1) Track when flowid does get set.rrs2011-02-071-0/+1
| | | | MFC after: 3 months
* Add support for M_FLOWID.tuexen2011-02-051-0/+1
|
* 1) Typo correction in comments and one spacing change.rrs2011-02-051-3/+2
| | | | | 2) Mass update to all copyrights. MFC after: 3 Months
OpenPOWER on IntegriCloud