Michael Tuexen
cca6f4a8f3
Get it compiling without INET and INET6 support (mainly userland stack).
...
MFC after: 2 weeks
2012-12-08 15:11:09 +00:00
Michael Tuexen
b11f07d86c
Use correct padding of the ABORT chunk in case of an user initiated
...
abort cause is used.
MFC after: 2 weeks
2012-12-08 09:50:38 +00:00
Michael Tuexen
3fb7827628
Ensure that the padding of the last parameter of an INIT chunk
...
is not included in the chunk length as required by RFC 4960.
While there, cleanup sctp_send_initiate().
MFC after: 2 weeks
2012-12-08 08:22:33 +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
325c8c46b1
Get the accounting working. We now have counters how many
...
chunks for each SCTP outgoing stream are in the send and
sent queue.
While there, improve the naming of NR-SACK related constants
recently introduced.
MFC after: 1 week
2012-11-16 19:39:10 +00:00
Michael Tuexen
2a4985847a
Add some missing changes missed in the last commit.
...
MFC after: 1 week
X-MFC with: 242708
2012-11-07 21:25:32 +00:00
Michael Tuexen
f3b05218ea
Move from early SSN assignment to late SSN assignment.
...
This doesn't change functionality, but makes upcoming change
much easier.
Developed with rrs@ at the IETF 85.
MFC after: 1 week
2012-11-05 20:55:17 +00:00
Michael Tuexen
24d4ce2c87
Add braces (as used elsewhere in the SCTP code).
2012-10-29 20:44:29 +00:00
Gleb Smirnoff
8f134647ca
Switch the entire IPv4 stack to keep the IP packet header
...
in network byte order. Any host byte order processing is
done in local variables and host byte order values are
never[1] written to a packet.
After this change a packet processed by the stack isn't
modified at all[2] except for TTL.
After this change a network stack hacker doesn't need to
scratch his head trying to figure out what is the byte order
at the given place in the stack.
[1] One exception still remains. The raw sockets convert host
byte order before pass a packet to an application. Probably
this would remain for ages for compatibility.
[2] The ip_input() still subtructs header len from ip->ip_len,
but this is planned to be fixed soon.
Reviewed by: luigi, Maxim Dounin <mdounin mdounin.ru>
Tested by: ray, Olivier Cochard-Labbe <olivier cochard.me>
2012-10-22 21:09:03 +00:00
Michael Tuexen
a98809db78
Declare a static function as such.
...
MFC after: 3 days
2012-09-23 07:23:18 +00:00
Michael Tuexen
2089750009
Small cleanups. No functional change.
...
MFC after: 10 days
2012-09-22 14:39:20 +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
2899aa8f65
Use the consistenly the size of a variable. This helps to keep the code
...
simpler for the userland implementation.
MFC after: 3 days
2012-09-04 22:45:00 +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
e0e00a4d0f
#ifdef INET and INET6 consistently. This also fixes a bug, where
...
it was done wrong.
MFC after: 3 days
2012-07-15 11:04:49 +00:00
Michael Tuexen
5db75fc724
Fix a bug introduced in r237715.
...
MFC after:i 3 days.
2012-07-09 10:59:39 +00:00
Michael Tuexen
1ebccfd0a2
Use consistent method to determine IPV4_OUTPUT/IPV6_OUTPUT.
...
MFC after: 3 days
2012-07-04 20:59:30 +00:00
Michael Tuexen
c76b949968
Use CSUM_SCTP_IPV6 for IPv6.
...
MFC after: 3 days
2012-07-04 20:29:16 +00:00
Gleb Smirnoff
bf9840512a
When ip_output()/ip6_output() is supplied a struct route *ro argument,
...
it skips FLOWTABLE lookup. However, the non-NULL ro has dual meaning
here: it may be supplied to provide route, and it may be supplied to
store and return to caller the route that ip_output()/ip6_output()
finds. In the latter case skipping FLOWTABLE lookup is pessimisation.
The difference between struct route filled by FLOWTABLE and filled
by rtalloc() family is that the former doesn't hold a reference on
its rtentry. Reference is hold by flow entry, and it is about to
be released in future. Thus, route filled by FLOWTABLE shouldn't
be passed to RTFREE() macro.
- Introduce new flag for struct route/route_in6, that marks route
not holding a reference on rtentry.
- Introduce new macro RO_RTFREE() that cleans up a struct route
depending on its kind.
- All callers to ip_output()/ip6_output() that do supply non-NULL
but empty route should use RO_RTFREE() to free results of
lookup.
- ip_output()/ip6_output() now do FLOWTABLE lookup always when
ro->ro_rt == NULL.
Tested by: tuexen (SCTP part)
2012-07-04 07:37:53 +00:00
Michael Tuexen
d8d544892c
Remove dead code (on FreeBSD) as suggested by glebius@.
...
MFC after: 3 days
2012-07-02 16:40:11 +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
39803b8c58
Whitespace cleanup.
...
MFC after: 3 days
2012-06-25 17:15:09 +00:00
Michael Tuexen
20cc2188f3
Pass the packet length explicitly around.
...
MFC after: 3 days
2012-06-24 23:12:24 +00:00
Michael Tuexen
f938425253
Do packet logging in a consistent way.
...
MFC after: 3 days
2012-06-24 21:25:54 +00:00
Michael Tuexen
f30ac43257
Pass flowid explicitly through the stack instead of taking it from
...
the mbuf chain at different places.
While there: Fix several bugs related to VRFs.
MFC after: 3 days
2012-06-14 06:54:48 +00:00
Michael Tuexen
c9e089587c
Unify the sending of ABORT, SHUTDOWN-COMPLETE and ERROR chunks.
...
While there: Fix also some minor bugs and prepare for SCTP/DTLS.
MFC after: 3 days
2012-06-12 13:15:27 +00:00
Michael Tuexen
2566e071ec
Honor sysctl for TTL.
...
MFC after: 3 days
2012-06-02 21:22:26 +00:00
Michael Tuexen
962cef4089
Don't request data from the IPv6 layer, which is not used.
...
MFC after: 3 days
2012-06-02 20:53:23 +00:00
Michael Tuexen
a6cff10f2a
Seperate SCTP checksum offloading for IPv4 and IPv6.
...
While there: remove some trainling whitespaces.
MFC after: 3 days
X-MFC with: 236170
2012-05-30 20:56:07 +00:00
Michael Tuexen
8d9638ab33
Get rid of SCTP specific code to avoid CRC32C computations on loopback.
...
Just just offloading.
MFC after: 3 days
2012-05-26 09:16:33 +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
8b42cfa708
Support SCTP_EOF also for 1-to-1 style sockets.
...
MFC after: 3 days
2012-05-17 17:02:47 +00:00
Michael Tuexen
1edc9dbae5
Provide in the SCTP_SEND_FAILED and SCTP_SEND_FAILED_EVENT notifications
...
the correct ssf_error or ssfe_error as required by RFC 6458.
MFC after: 3 days
2012-05-13 19:32:49 +00:00
Michael Tuexen
4b1f78e1af
Provide the error code in SCTP_PEER_ADDR_CHANGE notifications as
...
specified in RFC 6458.
MFC after: 3 days
2012-05-13 17:36:04 +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
cd3fd53188
Use SCTP_PRINTF() instead of printf() in all SCTP sources.
...
MFC after: 3 days
2012-05-04 09:27:00 +00:00
Michael Tuexen
254945d75a
Fix another RFC 6458 issue. Spotted by Irene Ruengeler.
...
MFC after: 3 days
2012-05-03 10:26:33 +00:00
Michael Tuexen
74b2fab47a
Use the same pattern for mbuf logging everywhere.
...
MFC after: 3 days
2012-04-19 13:11:17 +00:00
Randall Stewart
c4e848b770
Make stream our stream reset implementation
...
compliant to RFC6525.
MFC after: 1 month
2012-03-29 13:36:53 +00:00
Michael Tuexen
86e4703fa6
Honor the net.inet.udp.checksum sysctl when using SCTP/UDP/IPv4
...
encapsulation.
MFCing requires MFCing http://svn.freebsd.org/changeset/base/233554
MFC after: 2 weeks
2012-03-28 08:11:46 +00:00
Michael Tuexen
9b1246ca38
Fix a bug where the wrong protocol overhead was used. This can lead
...
to a deadlock of an association when an IPv6 socket was used to
communcate with IPv4 and an ICMPv4 fragmentation needed message
was received.
While there, simplify the code a bit.
MFC after: 3 days.
2012-02-14 12:00:34 +00:00
Michael Tuexen
86eef6072b
Two cleanups. No functional change.
2012-01-15 13:35:55 +00:00
John Baldwin
3b0b2840be
Use queue(3) macros instead of home-rolled versions in several places in
...
the INET6 code. This includes retiring the 'ndpr_next' and 'pfr_next'
macros.
Submitted by: pluknet (earlier version)
Reviewed by: pluknet
2011-12-29 18:25:18 +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
70acddf158
Fix a warning reported by arundel@.
...
Fix a bug where the parameter length of a supported address types
parameter is set to a wrong value if the kernel is built with
with either INET or INET6, but not both.
MFC after: 3 days.
2011-11-27 17:51:13 +00:00
Michael Tuexen
c9c5805975
Add support for the SCTP_REMOTE_UDP_ENCAPS_PORT socket option.
...
Retire the the now unused sctp_udp_tunneling_for_client_enable
sysctl variable.
MFC after: 3 months.
2011-11-20 15:00:45 +00:00
Michael Tuexen
7dd1259f73
Initialize all components of the sent COOKIE.
...
MFC after: 3 days.
2011-11-06 20:09:22 +00:00
Michael Tuexen
a0fe4c5b36
Send out control chunks which have no specific destination.
...
MFC after: 3 days.
2011-10-27 22:37:59 +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