summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_cc_functions.c
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of a gcc'ism.tuexen2012-09-061-4/+3
| | | | MFC after: 10 days
* Using %p in a format string requires a void *.tuexen2012-09-051-1/+1
| | | | MFC after: 10 days
* Use consistent text at the begining of the files.tuexen2012-05-231-4/+5
| | | | MFC after: 3 days
* Use SCTP_PRINTF() instead of printf() in all SCTP sources.tuexen2012-05-041-3/+1
| | | | MFC after: 3 days
* Address issues found by clang. While there, fix also some styletuexen2011-12-271-16/+19
| | | | | | issues. MFC after: 3 months.
* Fix unused parameter warnings.tuexen2011-12-171-25/+25
| | | | | | While there, fix some whitespace issues. MFC after: 3 months.
* The result of a joint work between rrs@ and myself at the IETF:tuexen2011-08-031-338/+23
| | | | | | | | | | | * 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.
* Implement Resource Pooling V2 and an MPTCP like congestiontuexen2011-05-041-19/+195
| | | | | | | control. Based on a patch received from Martin Becke. MFC after: 2 weeks.
* Tunes and fixes the new DC-CC to seem to hit therrs2011-03-081-135/+415
| | | | | | | | | 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-28/+522
| | | | | | | | 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-46/+46
| | | | | | | | | | | 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
* * Fix several bugs where the scaled versions of srtt and rttvartuexen2011-02-241-6/+6
| | | | | | | where used incorrectly. * Use appropriate variable names for RTO instead of RTT. MFC after: 3 months.
* 1) Typo correction in comments and one spacing change.rrs2011-02-051-3/+2
| | | | | 2) Mass update to all copyrights. MFC after: 3 Months
* 1) Move per John Baldwin to mp_maxidrrs2011-02-031-3/+5
| | | | | | | 2) Some signed/unsigned errors found by Mac OS compiler (from Michael) 3) a couple of copyright updates on the effected files. MFC after: 3 months
* 1) Allow a chunk to track the cwnd it was at when sent.rrs2011-02-021-0/+1
| | | | | | | | | | | | | | | | | | | 2) Add separate max-bursts for retransmit and hb. These are set to sysctlable values but not settable via the socket api. This makes sure we don't blast out HB's or fast-retransmits. 3) Determine on the first data transmission on a net if its local-lan (by being under or over a RTT). This can later be used to think about different algorithms based on locallan vs big-i (experimental) 4) The cwnd should NOT be allowed to grow when an ECNEcho is seen (TCP has this same bug). We fix this in SCTP so an ECNe being seen prevents an advance of cwnd. 5) CWR's should not be sent multiple times to the same network, instead just updating the TSN being transmitted if needed. MFC after: 1 Month
* More ECN fixes:rrs2011-01-311-49/+33
| | | | | | | | | | | 1) We now remove ECN-Nonce since it will no longer continue as a I-D 2) Eliminate last_tsn_echo, this tied us to an assoc not the net and thus we were not doing m-homing on the ECN-Echo senders side right. 3) Increment the count going out even if the TSN in lower in the pending ECN-Echo, this way the receiver knows exactly how many packets were marked even with network re-ordering 4) Fix so we DO NOT stop doing delayed sack if a ECN Echo is in queue MFC after: 1 month
* Change infrastructure for SCTP_MAX_BURST to allow compliancetuexen2011-01-261-2/+5
| | | | | | | | | | with the latest socket API ID. Especially it can be disabled. Full compliance needs changing the structure used in the socket option. Since this breaks the API, it will be a seperate commit which will not be MFCed to stable/8. MFC after: 3 months.
* Cleanup the management of CC functions.tuexen2011-01-191-17/+49
| | | | MFC after: 3 months.
* Add support for resource pooling to CMT.tuexen2011-01-161-44/+119
| | | | | | | An original version of the patch was developed by Martin Becke and Thomas Dreibholz. MFC after: 3 months
* Provide a possibility to configure the inital congestion window to thetuexen2010-12-221-8/+12
| | | | | | value defined in RFC 4960. MFC after: 3 months.
* Improve plausibility check in sctp_handle_sack().tuexen2010-12-221-24/+21
| | | | | | Allow cmt_on_off to support values 0 (no CMT), 1 (CMT), and 2 (CMT/RP). MFC after: 3 months.
* Adds new dtrace for cwnd functions and lay'srrs2010-11-251-2/+56
| | | | | | groundwork for future dtrace points (rwnd flightsize etc). MFC after: 2 months
* Make the initial congestion window configurable via sysctl.tuexen2010-09-171-7/+16
| | | | MFC after: 2 weeks.
* * Use !TAILQ_EMPTY() for checking if a tail queue is not empty.tuexen2010-09-151-4/+3
| | | | | | * Remove assignment without any effect. MFC after: 2 weeks.
* Fix the switching on/off of CMT using sysctl and socket option.tuexen2010-08-281-18/+30
| | | | | | | | Fix the switching on/off of PF and NR-SACKs using sysctl. Add minor improvement in handling malloc failures. Improve the address checks when sending. MFC after: 4 weeks
* Bugfix: Use formula from section 7.2.3 of RFC 4960. Reported by Martin Becke.tuexen2009-10-271-1/+1
| | | | | Approved by: rrs (mentor) MFC after: 3 days
* - Macro-izes the packed declaration in all headers.rrs2008-06-141-60/+63
| | | | | | | | | | | | | | | | | | - Vimage prep - these are major restructures to move all global variables to be accessed via a macro or two. The variables all go into a single structure. - Asconf address addition tweaks (add_or_del Interfaces) - Fix rwnd calcualtion to be more conservative. - Support SACK_IMMEDIATE flag to skip delayed sack by demand of peer. - Comment updates in the sack mapping calculations - Invarients panic added. - Pre-support for UDP tunneling (we can do this on MAC but will need added support from UDP to get a "pipe" of UDP packets in. - clear trace buffer sysctl added when local tracing on. Note the majority of this huge patch is all the vimage prep stuff :-)
* - Adds support for the multi-asconf (From Kozuka-san)rrs2008-05-201-249/+183
| | | | | | | | | | | | | | | | | | - Adds some prepwork (Not all yet) for vimage in particular support the delete the sctppcbinfo.xx structs. There is still a leak in here if it were to be called plus we stil need the regrouping (From Me and Michael Tuexen) - Adds support for UDP tunneling. For BSD there is no socket yet setup so its disabled, but major argument changes are in here to emcompass the passing of the port number (zero when you don't have a udp tunnel, the default for BSD). Will add some hooks in UDP here shortly (discussed with Robert) that will allow easy tunneling. (Mainly from Peter Lei and Michael Tuexen with some BSD work from me :-D) - Some ease for windows, evidently leave is reserved by their compile move label leave: -> out: MFC after: 1 week
* - Define changes in sctp.hrrs2008-05-201-38/+13
| | | | | | | | | - Bug in CA that does not get us incrementing the PBA properly which made us more conservative. - comment updated in sctp_input.c - memsets added before we log - added arg to hmac id's MFC after: 2 weeks
* - Locking compatiability changes. This involves addingrrs2007-09-081-5/+5
| | | | | | | | | | | additional flags to many function calls. The flags only get used in BSD when we compile with lock testing. These flags allow apple to escape the "giant" lock it holds on the socket and have more fine-grained locking in the NKE. It also allows us to test (with witness) the locking used by apple via a compile switch (manually applied). Approved by: re@freebsd.org(B Mah)
* - added pre-checks to the bindx call.rrs2007-07-171-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | - use proper tick gathering macro instead of ticks directly. - Placed reasonable boundaries on sets that a user can do that are converted to ticks from ms. - Fix CMT_PF to always check to be sure CMT is on. - Fix ticks use of CMT_PF. - put back code to allow asconfs to be queued while INITs are in flight and before the assoc is established. - During window probes, an ack'd packet might be left with the window probe mark on it causing it to be retransmitted. Change so that the flight decrease macro clears the window_probe mark. - Additional logging flight size/reading and ASOC LOG. This is only enabled if you manually insert things into opt_sctp.h since its a set of debug code only. - Found an interesting SMP race in the way data was appended which could cause a reader to lose a part of a message, had to reorder when we marked the message was complete to after the data was appended. - bug in ADD-IP for the subset bound socket case when the peer has only one address - fix ASCONF implicit success/error handling case - proper support of jails in Freebsd 6> - copy out the timeval for the 64 bit sparc world on cookie-echo alignment error crashes without this). Approved by: re(Ken Smith)
* - Modular congestion control, with RFC2581 being the default.rrs2007-07-141-0/+1631
- CMT_PF states added (w/sysctl to turn the PF version on) - sctp_input.c had a missing incr of cookie case when the auth was bad. This meant a free was called without an increment to refcnt, added increment like rest of code. - There was a case, unlikely, when the scope of the destination changed (this is a TSNH case). In that case, it would not free the alloc'ed asoc (in sctp_input.c). - When listed addresses found a colliding cookie/Init, then the collided upon tcb was not unlocked in sctp_pcb.c - Add error checking on arguments of sctp_sendx(3) to prevent it from referencing a NULL pointer. - Fix an error return of sctp_sendx(3), it was returing ENOMEM not -1. - Get assoc id was changed to use the sanctified socket api method for getting a assoc id (PEER_ADDR_INFO instead of PEER_ADDR_PARAMS). - Fix it so a peeled off socket will get a proper error return if it trys to send to a different address then it is connected to. - Fix so that select_a_stream can avoid an endless loop that could hang a caller. - time_entered (state set time) was not being set in all cases to the time we went established. Approved by: re(ken smith)
OpenPOWER on IntegriCloud