| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Whitespace changes.
The toolchain for processing the sources has been updated. No functional
change.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
| |
outgoing stream.
Thanks to Jens Hoelscher for reporting the issue.
MFC after: 1 week
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
No functional change.
Reviewed by: tuexen
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This fixes
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196755
and is joint work with rrs@.
MFC after: 1 week
|
|
|
|
| |
MFC after: 1 month
|
|
|
|
|
| |
https://svnweb.freebsd.org/changeset/base/275358
which was provided by Hans Petter Selasky.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Thanks to Peter Kasting from Google for drawing
my attention to it.
MFC after: 3 days
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
socket options. Add also a sysctl to control the support of ASCONF.
MFC after: 1 week
|
|
|
|
|
|
| |
sysctl controlling the negotiation of the RE-CONFIG extension.
MFC after: 3 days
|
|
|
|
|
|
|
| |
the corresponding sysctl variable.
The default is off, since the specification is not an RFC yet.
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
MFC after: 1 week
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
only the supported address types. While there, do some whitespace
cleanups.
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This doesn't change functionality, but makes upcoming change
much easier.
Developed with rrs@ at the IETF 85.
MFC after: 1 week
|
|
|
|
|
|
| |
structure.
MFC after: 10 days
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
|
|
| |
compliant to RFC6525.
MFC after: 1 month
|
|
|
|
|
|
| |
to integrate this fix in our code base, so it was removed in r227755.
MFC after: 3 days.
|
|
|
|
|
|
| |
While there, fix some whitespace issues.
MFC after: 3 months.
|
|
|
|
|
|
|
| |
Retire the the now unused sctp_udp_tunneling_for_client_enable
sysctl variable.
MFC after: 3 months.
|
|
|
|
|
|
| |
Submitted by: eadler
Approved by: simon
MFC after: 3 days
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Approved by: re
MFC after: 1 month.
|
|
|
|
|
|
|
|
| |
socket option.
Honor the net.inet6.ip6.auto_flowlabel sysctl setting.
Approved by: re (bz)
MFC after: 1 month.
|
|
|
|
|
|
|
|
| |
socket option. Backwards compatibility is provided by still
supporting the spp_ipv4_tos field.
Approved by: re@
MFC after: 2 months.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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 an initialization bug for the scaled variance of the RTO.
MFC after: 3 months.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
MFC after: 3 months
|
| |
|
|
|
|
|
| |
2) Mass update to all copyrights.
MFC after: 3 Months
|