Michael Tuexen
7154bf4a41
Add the UDP encaps port as a parameter to sctp_add_remote_addr().
...
This is currently only a code change without any functional
change. But this allows to set the remote encapsulation port
in a more detailed way, which will be provided in a follow-up
commit.
MFC after: 1 week
2016-04-30 14:25:00 +00:00
Michael Tuexen
467f0d55b4
Whitespace changes.
2016-02-16 20:33:18 +00:00
Michael Tuexen
2b1c7de4d8
Improve the teardown of the SCTP stack.
...
Obtained from: bz@
MFC after: 1 week
2016-02-16 19:36:25 +00:00
Michael Tuexen
267dbe63a1
Provide consistent error causes whenever an ABORT chunk is sent.
...
MFC after: 1 week
2015-07-27 22:35:54 +00:00
Michael Tuexen
d089f9b915
Add FIB support for SCTP.
...
This fixes https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200379
MFC after: 3 days
2015-06-17 15:20:14 +00:00
Michael Tuexen
790a758db8
Correctly detect the case where the last address is removed.
...
MFC after: 3 days
2015-06-14 22:14:00 +00:00
Michael Tuexen
70fa550b45
Fix a bug where messages would not be sent in SHUTDOWN_RECEIVED state.
...
This problem was reported by Mark Bonnekessel and Markus Boese.
Thanks to Irene Ruengeler for helping me to fix the cause of
the problem. It can be tested with the following packetdrill script:
+0.0 socket(..., SOCK_STREAM, IPPROTO_SCTP) = 3
+0.0 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
+0.0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
// Check the handshake with an empty(!) cookie
+0.1 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
+0.0 > sctp: INIT[flgs=0, tag=1, a_rwnd=..., os=..., is=..., tsn=0, ...]
+0.1 < sctp: INIT_ACK[flgs=0, tag=2, a_rwnd=10000, os=1, is=1, tsn=0, STATE_COOKIE[len=4, val=...]]
+0.0 > sctp: COOKIE_ECHO[flgs=0, len=4, val=...]
+0.1 < sctp: COOKIE_ACK[flgs=0]
+0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+0.0 write(3, ..., 1024) = 1024
+0.0 > sctp: DATA[flgs=BE, len=1040, tsn=0, sid=0, ssn=0, ppid=0]
+0.0 write(3, ..., 1024) = 1024 // Pending due to Nagle
+0.0 < sctp: SHUTDOWN[flgs=0, cum_tsn=0]
+0.0 > sctp: DATA[flgs=BE, len=1040, tsn=1, sid=0, ssn=1, ppid=0]
+0.0 < sctp: SACK[flgs=0, cum_tsn=1, a_rwnd=10000, gaps=[], dups=[]] // Do we need another SHUTDOWN here?
+0.0 > sctp: SHUTDOWN_ACK[flgs=0]
+0.0 < sctp: SHUTDOWN_COMPLETE[flgs=0]
+0.0 close(3) = 0
MFC after: 3 days
2015-05-28 18:34:02 +00:00
Michael Tuexen
b7d130befc
Fix and cleanup the debug information. This has no user-visible changes.
...
Thanks to Irene Ruengeler for proving a patch.
MFC after: 3 days
2015-05-28 16:00:23 +00:00
Michael Tuexen
3ff78fbbd9
Add protection code to free memory in case of processing an address which
...
is neither IPv4 or IPv6.
Reported by: Coverity
CID: 749311
MFC after: 1 week
2015-01-18 20:53:20 +00:00
Michael Tuexen
f104b614a0
Remove dead code.
...
Reported by: Coverity
CID: 1018053
MFC after: 1 week
2015-01-12 07:29:35 +00:00
Michael Tuexen
448e859674
Remove dead code.
...
Reported by: Coverity
CID: 748660, 748661
MFC after: 1 week
2015-01-11 22:23:39 +00:00
Michael Tuexen
23602b60fb
Address another warnings reported by Patrick Laimbock when compiling
...
in userspace. While there, improve consistency.
MFC after: 1 week
2014-09-07 17:07:19 +00:00
Michael Tuexen
24aaac8d59
Use union sctp_sockstore instead of struct sockaddr_storage. This
...
eliminiates some warnings when building in userland.
Thanks to Patrick Laimbock for reporting this issue.
Remove also some unnecessary casts.
There should be no functional change.
MFC after: 1 week
2014-09-07 09:06:26 +00:00
Michael Tuexen
c79bec9c75
Add support for the SCTP_AUTH_SUPPORTED and SCTP_ASCONF_SUPPORTED
...
socket options. Add also a sysctl to control the support of ASCONF.
MFC after: 1 week
2014-08-12 11:30:16 +00:00
Michael Tuexen
6ba22f19ca
Honor jails for unbound SCTP sockets when selecting source addresses,
...
reporting IP-addresses to the peer during the handshake, adding
addresses to the host, reporting the addresses via the sysctl
interface (used by netstat, for example) and reporting the
addresses to the application via socket options.
This issue was reported by Bernd Walter.
MFC after: 3 days
2014-06-20 13:26:49 +00:00
Michael Tuexen
a9d94d290b
Make sure that we don't try to build an ASCONF-ACK chunk
...
larger than what fits in the the mbuf cluster.
This issue was reported by Andrew Galante.
MFC after: 3 days
2013-11-07 17:08:09 +00:00
Michael Tuexen
c9eb4473b4
Use htons()/ntohs() appropriately.
...
These issues were reported by Andrew Galante.
MFC after: 3 days
2013-11-07 16:37:12 +00:00
Michael Tuexen
b54ddf225f
Changes from upstream to improve compilation when INET or INET6
...
or none of them is defined.
MFC after: 3 days
2013-11-02 20:12:19 +00:00
Michael Tuexen
88a95b1f25
Allow the code to be compiled without warnings for any combination
...
of INET, INET6 and SCTP_DEBUG defines.
The issue was reported by Lally Singh.
MFC after: 2 weeks
2013-07-20 13:14:59 +00:00
Michael Tuexen
a1cb341b5d
Cleanup the handling of address scopes. Announce in the INIT/INIT-ACK
...
only the supported address types. While there, do some whitespace
cleanups.
MFC after: 1 week
2013-02-09 17:26:14 +00:00
Gleb Smirnoff
eb1b1807af
Mechanically substitute flags from historic mbuf allocator with
...
malloc(9) flags within sys.
Exceptions:
- sys/contrib not touched
- sys/mbuf.h edited manually
2012-12-05 08:04:20 +00:00
Michael Tuexen
fe6bb0a788
Whitespace cleanup.
...
MFC after: 10 days
2012-09-08 20:54:54 +00:00
Michael Tuexen
dd294dcec6
Using %p in a format string requires a void *.
...
MFC after: 10 days
2012-09-05 18:52:01 +00:00
Michael Tuexen
5e20b91dbe
Changes which improve compilation if neither INET nor INET6 is defined.
...
MFC after: 3 days
2012-07-15 20:16:17 +00:00
Michael Tuexen
b1754ad17b
Pass the src and dst address of a received packet explicitly around.
...
MFC after: 3 days
2012-06-28 16:01:08 +00:00
Michael Tuexen
b82bd838f6
Use an existing function to get the source address.
...
MFC after: 3 days
2012-06-03 14:54:50 +00:00
Michael Tuexen
11ef11db47
Small cleanups. No functional change.
...
MFC after: 3 days
2012-06-01 08:26:50 +00:00
Michael Tuexen
807aad636f
Use consistent text at the begining of the files.
...
MFC after: 3 days
2012-05-23 11:26:28 +00:00
Michael Tuexen
a2b42326b5
Provide in the association change notification the received ABORT chunk
...
if case of SCTP_COMM_LOST or SCTP_CANT_STR_ASSOC as required by RFC 6458.
MFC after: 3 days
2012-05-12 20:11:35 +00:00
Michael Tuexen
60990c0c06
Address issues found by clang. While there, fix also some style
...
issues.
MFC after: 3 months.
2011-12-27 10:16:24 +00:00
Michael Tuexen
7215cc1b74
Fix unused parameter warnings.
...
While there, fix some whitespace issues.
MFC after: 3 months.
2011-12-17 19:21:40 +00:00
Michael Tuexen
3657c405e3
Fix a typo introduced in
...
http://svn.freebsd.org/changeset/base/225571
Reported by Ilya A. Arkhipov.
Approved by: re
MFC after: 1 month.
2011-09-15 12:20:52 +00:00
Michael Tuexen
92776dfd5a
Make sure that SCTP rejects broadcast, multicast and wildcard addresses
...
as remote addresses.
Approved by: re
MFC after: 1 month.
2011-09-15 08:49:54 +00:00
Michael Tuexen
ca85e9482a
The result of a joint work between rrs@ and myself at the IETF:
...
* 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.
2011-08-03 20:21:00 +00:00
Michael Tuexen
274b0bd51d
Remove code with any effect.
2011-05-03 20:34:02 +00:00
Michael Tuexen
1d663b4658
Add a missing break. This bug was introduced in r221249.
...
MFC after: 1 week
2011-05-03 20:32:21 +00:00
Michael Tuexen
e6194c2ed4
Improve compilation of SCTP code without INET support.
...
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
2011-04-30 11:18:16 +00:00
Michael Tuexen
2678fe1ee9
Remove addresses from endpoint when there are no associations.
...
This fixes a bug reported by brucec@.
MFC after: 3 months.
2011-02-10 14:46:37 +00:00
Randall Stewart
5d40cf5d23
1) Typo correction in comments and one spacing change.
...
2) Mass update to all copyrights.
MFC after: 3 Months
2011-02-05 12:12:51 +00:00
Randall Stewart
dec0177df6
1) Move per John Baldwin to mp_maxid
...
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
2011-02-03 19:22:21 +00:00
Michael Tuexen
20b07a4d85
Define and use SCTP_SSN_GE, SCTP_SSN_GT, SCTP_TSN_GE, SCTP_TSN_GT macros
...
and use them instead of the generic compare_with_wrap.
Retire compare_with_wrap.
MFC after: 3 months.
2010-12-30 21:32:35 +00:00
Michael Tuexen
4a9ef3f833
Code cleanup: Use LIST_FOREACH, LIST_FOREACH_SAFE, TAILQ_FOREACH,
...
TAILQ_FOREACH_SAFE where appropriate.
No functional change.
MFC after: 3 months.
2010-12-30 16:56:20 +00:00
Michael Tuexen
8ced7318a0
Fix three bugs related to the sequence number wrap-around affecting
...
the processing of ECNE and ASCONF chunks.
Reviewed by: rrs
MFC after: 3 days.
2010-12-30 16:23:13 +00:00
Michael Tuexen
9eea4a2da7
Delay the assignment of a path for DATA chunk until they hit
...
the sent_queue. Honor a given path when the SCTP_ADDR_OVER
flag is set.
MFC after: 2 weeks.
2010-09-15 23:10:45 +00:00
Michael Tuexen
fc066a6137
* Fix a bug where the length of the ASCONF-ACK was calculated wrong due
...
to using an uninitialized variable.
* Fix a bug where a NULL pointer was dereferenced when interfaces
come and go at a high rate.
* Fix a bug where inps where not deregistered from iterators.
* Fix a race condition in freeing an association.
* Fix a refcount problem related to the iterator.
Each of the above bug results in a panic. It shows up when
interfaces come and go at a high rate.
Obtained from: rrs (partly)
MFC after: 3 days
2010-06-14 21:25:07 +00:00
Michael Tuexen
f31e6c7f26
* Fix compilation when using SCTP_AUDITING_ENABLED.
...
* Fix delaying of SACK by taking out old optimization code
which does not optimize anymore.
* Fix fast retransmission of chunks abandoned by the
"number of retransmissions" policy.
MFC after: 3 days.
2010-04-23 08:19:47 +00:00
Michael Tuexen
b5c164935e
* Fix some race condition in SACK/NR-SACK processing.
...
* 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.
2010-04-03 15:40:14 +00:00
Martin Blapp
c2ede4b379
Remove extraneous semicolons, no functional changes.
...
Submitted by: Marc Balmer <marc@msys.ch>
MFC after: 1 week
2010-01-07 21:01:37 +00:00
Michael Tuexen
87b4fcd323
Do not start the iterator when there are no associations.
...
This fixes a bug found by Irene Ruengeler.
Approved by: rrs (mentor)
MFC after: 1 month
2009-11-17 13:11:23 +00:00
Randall Stewart
482444b4a5
Support for VNET in SCTP (hopefully)
2009-09-17 15:11:12 +00:00