summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_output.c
Commit message (Collapse)AuthorAgeFilesLines
* Add support for the newly added SCTP API.tuexen2011-06-151-112/+345
| | | | | | | | | | | | | 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.
* Unbreak INET-less build.tuexen2011-05-181-1/+1
| | | | | Reported by bz@ MFC after: 1 week
* Fix whitespacing.tuexen2011-05-171-23/+23
| | | | | | Reported by scf@ MFC after: 1 week.
* Fix the source address selection for boundall socketstuexen2011-05-141-44/+152
| | | | | | | | | | | when sending INITs to a global IPv4 address having only private IPv4 address. Allow the usage of a private address and make sure that no other private address will be used by the association. Initial work was done by rrs@. MFC after: 1 week.
* Fix a locking issue showing up on Mac OS X when subscribing totuexen2011-05-081-32/+53
| | | | | | authentication events. DTLS/SCTP renegotiations trigger the bug. MFC after: 2 weeks.
* Improve compilation of SCTP code without INET support.tuexen2011-04-301-653/+780
| | | | | | | | | | | | | | Some bugs where fixed while doing this: * ASCONF-ACK messages might use wrong port number when using IPv6. * Checking for additional addresses takes the correct address into account and also does not do more comparisons than necessary. This patch is based on one received from bz@ who was sponsored by The FreeBSD Foundation and iXsystems. MFC after: 1 week
* Tunes and fixes the new DC-CC to seem to hit therrs2011-03-081-1/+4
| | | | | | | | | 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
* Improvements to CC modules:rrs2011-02-261-0/+7
| | | | | | | | | | | 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 bugs related to M_FLOWID:tuexen2011-02-071-8/+6
| | | | | | | | * 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.
* If not set (due to some error Michael is working onrrs2011-02-071-0/+12
| | | | | | fixing) set it for the net. MFC after: 3 months
* Add support for M_FLOWID.tuexen2011-02-051-10/+41
|
* 1) Typo correction in comments and one spacing change.rrs2011-02-051-3/+2
| | | | | 2) Mass update to all copyrights. MFC after: 3 Months
* Fix several bugs in the stream schedulers.tuexen2011-02-031-1/+1
| | | | | | From Robin Seggelmann. MFC after: 3 months.
* Make sure that changing the ECN sysctl does not affecttuexen2011-02-031-27/+14
| | | | | | exisiting associations and endpoints. MFC after: 3 months.
* 1) Move per John Baldwin to mp_maxidrrs2011-02-031-3/+7
| | | | | | | 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-1/+23
| | | | | | | | | | | | | | | | | | | 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-77/+6
| | | | | | | | | | | 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
* Fixes to ECN in SCTP.rrs2011-01-291-19/+58
| | | | | | | | | | | | | 1) ECN was on an association basis, this is incorrect and will not work with CMT or for that matter if the user is sending to multiple addresses. This commit makes ECN on a per path basis. 2) Adopt the new format for the ECN internet draft. This also maintains compatability with old format chunks as well. 3) Keep track of the real time of a RTT down to micro seconds. For some future conditional features (for like a data center this is good information to have). MFC after: 1 month
* Fix a bug in the way ECN-Echo chunkrrs2011-01-281-1/+16
| | | | | | | | | | sends were being accounted for. The counting was such that we counted only when we queued a chunk, not when we sent it. Now keep an additional counter for queuing and one for sending. MFC after: 1 week
* Change infrastructure for SCTP_MAX_BURST to allow compliancetuexen2011-01-261-24/+29
| | | | | | | | | | 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.
* Add stream scheduling support.tuexen2011-01-231-128/+17
| | | | | | This work is based on a patch received from Robin Seggelmann. MFC after: 3 months.
* Define and use SCTP_SSN_GE, SCTP_SSN_GT, SCTP_TSN_GE, SCTP_TSN_GT macrostuexen2010-12-301-13/+10
| | | | | | | and use them instead of the generic compare_with_wrap. Retire compare_with_wrap. MFC after: 3 months.
* Code cleanup: Use LIST_FOREACH, LIST_FOREACH_SAFE, TAILQ_FOREACH,tuexen2010-12-301-26/+10
| | | | | | | TAILQ_FOREACH_SAFE where appropriate. No functional change. MFC after: 3 months.
* Fix three bugs related to the sequence number wrap-around affectingtuexen2010-12-301-1/+1
| | | | | | | the processing of ECNE and ASCONF chunks. Reviewed by: rrs MFC after: 3 days.
* Improve plausibility check in sctp_handle_sack().tuexen2010-12-221-9/+9
| | | | | | Allow cmt_on_off to support values 0 (no CMT), 1 (CMT), and 2 (CMT/RP). MFC after: 3 months.
* Take out special code for disable CRC computations ontuexen2010-11-141-9/+3
| | | | | the loopback interface for IPv6. It will be handled by the loopback interface.
* Fix more issues with the SACK/NR-SACK generation code.tuexen2010-11-121-21/+24
| | | | MFC after: 3 days.
* Fix the SACK/NR-SACK generation code.tuexen2010-11-111-9/+8
| | | | MFC after: 3 days.
* * Fix an accounting bug regarding SACK/NR-SACK chunks.tuexen2010-11-061-56/+22
| | | | | | * Fix the generation of the SACK/NR-SACK gap lists. MFC after: 3 days.
* Fix a bug where the wrong PR-SCTP policy was considered.tuexen2010-09-171-1/+1
| | | | | | | While there, use always the same code for the check of TTL expiration. MFC after: 2 weeks.
* * Implement initial version of send buffer splitting.tuexen2010-09-171-1/+18
| | | | | * Make send/recv buffer splitting switchable via sysctl. * While there: Fix some comments.
* Remove old debug code.tuexen2010-09-151-11/+0
| | | | MFC after: 2 weeks.
* Delay the assignment of a path for DATA chunk until they hittuexen2010-09-151-87/+78
| | | | | | | the sent_queue. Honor a given path when the SCTP_ADDR_OVER flag is set. MFC after: 2 weeks.
* * Remove code which has no effect.tuexen2010-09-091-108/+61
| | | | | | * Clean up the handling in sctp_lower_sosend(). MFC after: 3 weeks.
* Implement correct handling of address parameter andtuexen2010-09-051-121/+61
| | | | | | sendinfo for SCTP send calls. MFC after: 4 weeks.
* Fix some CLANG warnings. One clang warning is leftrrs2010-09-051-3/+10
| | | | | | due to the fact that its bogus.. nam->sa_family will not change from AF_INET6 to AF_INET (but clang thinks it does ;-D)
* Fix the the SCTP_WITH_NO_CSUM option when used in combination withtuexen2010-08-291-72/+88
| | | | | | | interface supporting CRC offload. While at it, make use of the feature that the loopback interface provides CRC offloading. MFC after: 4 weeks
* Bugfix: Do not send a packet drop report in response to a receivedtuexen2010-08-281-3/+6
| | | | INIT-ACK with incorrect CRC.
* Fix the switching on/off of CMT using sysctl and socket option.tuexen2010-08-281-44/+56
| | | | | | | | 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
* Fix a bug where endpoints bound to wildcard addresses wheretuexen2010-08-051-0/+36
| | | | | | | using addresses not announced to the peer due to address scoping. MFC after: 3 weeks
* Cleanup code.tuexen2010-08-011-2/+1
| | | | MFC after: 2 weeks
* Fix the comment block that has the nicerrs2010-07-291-12/+22
| | | | | | table to really have the nice table :-) MFC after: 1 month
* PR SCTP Bugs. Basically a full sized frame ofrrs2010-07-291-3/+6
| | | | | | | | PR SCTP FWD-TSN's would not be sent and thus cause a stalled connection. Also the rwnd Calculation was also off on the receiver side for PR-SCTP. MFC after: 1 month
* Fix a bug where the length of a FORWARD-TSN chunk was set incorrectly intuexen2010-07-261-4/+2
| | | | | | | the chunk. This resulted in malformed frames. Remove a duplicate assignment. MFC after: 2 weeks
* This change does the following:rrs2010-06-051-13/+23
| | | | | | | | | | | | | 1) Fix the alignment of a comment. 2) Fix a BUG where we were NOT paying attention to the RESEND marking on retransmitting control chunks.. and worse we were not decrementing the retran count that could cause us to loop forever. 3) Add in the valdiate_no_lock function on invariants so that we will really check all ways out to be sure a lock does not slip out locked. MFC after: 1 week.
* Fix an old long time bug in generating arrs2010-05-121-3/+2
| | | | | | | fwd-tsn. This would appear when greater than the size of mbuf TSN's would need to be skipped. MFC after: 3 days
* More PR-SCTP bugs:rrs2010-05-121-2/+2
| | | | | | | | | - Make sure that when you kick the streams you add correctly using a 16 bit unsigned. - Make sure when sending out you allow FWD-TSN to skip over and list the ACKED chunks in the stream/seq list (so the rcv will kick the stream) MFC after: 3 days
* Sending a FWDTSN chunk should not affect the retran count.tuexen2010-04-251-1/+1
| | | | MFC after: 3 days.
* Use also SCTP/IPv6 checksum offloading in special cases.tuexen2010-04-031-13/+60
| | | | MFC after: 2 weeks
* * Fix some race condition in SACK/NR-SACK processing.tuexen2010-04-031-375/+138
| | | | | | | | * Fix handling of mapping arrays when draining mbufs or processing FORWARD-TSN chunks. * Cleanup code (no duplicate code anymore for SACKs and NR-SACKs). Part of this code was developed together with rrs. MFC after: 2 weeks.
OpenPOWER on IntegriCloud