#
c3179e66 |
|
18-Aug-2023 |
Michael Tuexen <tuexen@FreeBSD.org> |
sctp: cleanup cdefs.h include
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
90948e8c |
|
12-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
sctp: Remove unused variable.
|
#
e7e65008 |
|
29-Mar-2022 |
Michael Tuexen <tuexen@FreeBSD.org> |
sctp: fix typos Thanks to David Sanders for fixing the typos in the userland stack. MFC after: 3 days
|
#
5a50eb65 |
|
12-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
Don't pass RFPROC to kproc_create(), it is redundant. Reviewed by: tuexen, kib MFC after: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D29206
|
#
9f2d6263 |
|
04-Oct-2020 |
Michael Tuexen <tuexen@FreeBSD.org> |
Use __func__ instead of __FUNCTION__ for consistency. MFC after: 3 days
|
#
662c1305 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
net: clean up empty lines in .c and .h files
|
#
ba0d5250 |
|
18-Feb-2020 |
Michael Tuexen <tuexen@FreeBSD.org> |
Remove unused function.
|
#
d6e23cf0 |
|
13-Oct-2019 |
Michael Tuexen <tuexen@FreeBSD.org> |
Use an event handler to notify the SCTP about IP address changes instead of calling an SCTP specific function from the IP code. This is a requirement of supporting SCTP as a kernel loadable module. This patch was developed by markj@, I tweaked a bit the SCTP related code. Submitted by: markj@ MFC after: 3 days
|
#
b8a6e03f |
|
07-Oct-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Widen NET_EPOCH coverage. When epoch(9) was introduced to network stack, it was basically dropped in place of existing locking, which was mutexes and rwlocks. For the sake of performance mutex covered areas were as small as possible, so became epoch covered areas. However, epoch doesn't introduce any contention, it just delays memory reclaim. So, there is no point to minimise epoch covered areas in sense of performance. Meanwhile entering/exiting epoch also has non-zero CPU usage, so doing this less often is a win. Not the least is also code maintainability. In the new paradigm we can assume that at any stage of processing a packet, we are inside network epoch. This makes coding both input and output path way easier. On output path we already enter epoch quite early - in the ip_output(), in the ip6_output(). This patch does the same for the input path. All ISR processing, network related callouts, other ways of packet injection to the network stack shall be performed in net_epoch. Any leaf function that walks network configuration now asserts epoch. Tricky part is configuration code paths - ioctls, sysctls. They also call into leaf functions, so some need to be changed. This patch would introduce more epoch recursions (see EPOCH_TRACE) than we had before. They will be cleaned up separately, as several of them aren't trivial. Note, that unlike a lock recursion the epoch recursion is safe and just wastes a bit of resources. Reviewed by: gallatin, hselasky, cy, adrian, kristof Differential Revision: https://reviews.freebsd.org/D19111
|
#
a68cc388 |
|
08-Jan-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Mechanical cleanup of epoch(9) usage in network stack. - Remove macros that covertly create epoch_tracker on thread stack. Such macros a quite unsafe, e.g. will produce a buggy code if same macro is used in embedded scopes. Explicitly declare epoch_tracker always. - Unmask interface list IFNET_RLOCK_NOSLEEP(), interface address list IF_ADDR_RLOCK() and interface AF specific data IF_AFDATA_RLOCK() read locking macros to what they actually are - the net_epoch. Keeping them as is is very misleading. They all are named FOO_RLOCK(), while they no longer have lock semantics. Now they allow recursion and what's more important they now no longer guarantee protection against their companion WLOCK macros. Note: INP_HASH_RLOCK() has same problems, but not touched by this commit. This is non functional mechanical change. The only functionally changed functions are ni6_addrs() and ni6_store_addrs(), where we no longer enter epoch recursively. Discussed with: jtl, gallatin
|
#
0053ed28 |
|
19-Jul-2018 |
Michael Tuexen <tuexen@FreeBSD.org> |
Whitespace changes due to changes in ident.
|
#
b0471b4b |
|
19-Jul-2018 |
Michael Tuexen <tuexen@FreeBSD.org> |
Revert https://svnweb.freebsd.org/changeset/base/336503 since I also ran the export script with different parameters.
|
#
7679e49d |
|
19-Jul-2018 |
Michael Tuexen <tuexen@FreeBSD.org> |
Whitespace changes due to change if ident.
|
#
4f6c66cc |
|
23-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
UDP: further performance improvements on tx Cumulative throughput while running 64 netperf -H $DUT -t UDP_STREAM -- -m 1 on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps Single stream throughput increases from 910kpps to 1.18Mpps Baseline: https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg - Protect read access to global ifnet list with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg - Protect short lived ifaddr references with epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg - Convert if_afdata read lock path to epoch https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg A fix for the inpcbhash contention is pending sufficient time on a canary at LLNW. Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15409
|
#
d7c5a620 |
|
18-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
ifnet: Replace if_addr_lock rwlock with epoch + mutex Run on LLNW canaries and tested by pho@ gallatin: Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5 based ConnectX 4-LX NIC, I see an almost 12% improvement in received packet rate, and a larger improvement in bytes delivered all the way to userspace. When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1, I see, using nstat -I mce0 1 before the patch: InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree 4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.32 4.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.32 4.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.32 4.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.32 4.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.32 4.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.32 4.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32 After the patch InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree 5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.51 5.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.51 5.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.51 5.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.51 5.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.52 5.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52 Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15366
|
#
482d4209 |
|
14-May-2018 |
Michael Tuexen <tuexen@FreeBSD.org> |
sctp_get_mbuf_for_msg() should honor the allinone parameter. When it is not required that the buffer is not a chain, return a chain. This is based on a patch provided by Irene Ruengeler.
|
#
51369649 |
|
20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
|
#
b7b84c0e |
|
26-Dec-2016 |
Michael Tuexen <tuexen@FreeBSD.org> |
Whitespace changes. The toolchain for processing the sources has been updated. No functional change. MFC after: 3 days
|
#
38d3251c |
|
22-Oct-2016 |
Michael Tuexen <tuexen@FreeBSD.org> |
No functional changes, mostly getting the whitespace changes resulting from an updated formatting tool chain. MFC after: 1 month
|
#
c2b5ba76 |
|
05-Oct-2016 |
Kevin Lo <kevlo@FreeBSD.org> |
Remove an alias if_list, use if_link consistently. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D8075
|
#
c7641cd1 |
|
28-Sep-2016 |
Kevin Lo <kevlo@FreeBSD.org> |
Remove ifa_list, use ifa_link (structure field) instead. While here, prefer if_addrhead (FreeBSD) to if_addrlist (BSD compat) naming for the interface address list in sctp_bsd_addr.c Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D8051
|
#
cd0a4ff6 |
|
02-May-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
netinet/sctp*: minor spelling fixes in comments. No functional change. Reviewed by: tuexen
|
#
467f0d55 |
|
16-Feb-2016 |
Michael Tuexen <tuexen@FreeBSD.org> |
Whitespace changes.
|
#
2b1c7de4 |
|
16-Feb-2016 |
Michael Tuexen <tuexen@FreeBSD.org> |
Improve the teardown of the SCTP stack. Obtained from: bz@ MFC after: 1 week
|
#
27a01c6c |
|
23-Jan-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Try to catch a couple of SCTP teardown race conditions. Saw all the printfs already. Note: not sure the atomics are needed but without them, the condition would never trigger, and we'd still see panics (which could have been due to the insert race). Will work my way backwards in case this stays stable. Sponsored by: The FreeBSD Foundation
|
#
1f12da0e |
|
22-Jan-2016 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Just checkpoint the WIP in order to be able to make the tree update easier. Note: this is currently not in a usable state as certain teardown parts are not called and the DOMAIN rework is missing. More to come soon and find its way to head. Obtained from: P4 //depot/user/bz/vimage/... Sponsored by: The FreeBSD Foundation
|
#
4be807c4 |
|
10-Jan-2015 |
Michael Tuexen <tuexen@FreeBSD.org> |
Minimize the usage of SCTP_BUF_IS_EXTENDED. This should help Robert...
|
#
296d0b94 |
|
10-Jan-2015 |
Michael Tuexen <tuexen@FreeBSD.org> |
Retire SCTP_BUF_EXTEND_SIZE. This patch was suggested by Robert Watson.
|
#
c302aeb1 |
|
29-Nov-2013 |
Michael Tuexen <tuexen@FreeBSD.org> |
In http://svnweb.freebsd.org/changeset/base/258221 I introduced a bug which initialized global locks whenever the SCTP stack initialized. This was fixed in http://svnweb.freebsd.org/changeset/base/258574 by rodrigc@. He just initialized the locks for the default vnet. This fix reverts to the old behaviour before r258221, which explicitly makes sure it is only called once, because this works also on other platforms. MFC after: 3 days X-MFC with: r258574.
|
#
f4f34bde |
|
16-Nov-2013 |
Michael Tuexen <tuexen@FreeBSD.org> |
Cleanups which result in fixes which have been made upstream and where partially suggested by Andrew Galante. There is no functional change in FreeBSD. MFC after: 3 days
|
#
173be2b6 |
|
04-Aug-2012 |
Michael Tuexen <tuexen@FreeBSD.org> |
Testing an interface property should depend on the interface, not on an address. MFC after: 3 days
|
#
f9384252 |
|
24-Jun-2012 |
Michael Tuexen <tuexen@FreeBSD.org> |
Do packet logging in a consistent way. MFC after: 3 days
|
#
807aad63 |
|
23-May-2012 |
Michael Tuexen <tuexen@FreeBSD.org> |
Use consistent text at the begining of the files. MFC after: 3 days
|
#
cd3fd531 |
|
04-May-2012 |
Michael Tuexen <tuexen@FreeBSD.org> |
Use SCTP_PRINTF() instead of printf() in all SCTP sources. MFC after: 3 days
|
#
7081943d |
|
12-Mar-2012 |
Randall Stewart <rrs@FreeBSD.org> |
This fixes PR 165210. Basically we just add in the netgraph interface to the list of acceptable interfaces. A todo at the next IETF code blitz, though is we need to review why we screen interfaces, there was a reason ;-). PR: 165210 MFC after: 1 week
|
#
70a03e88 |
|
09-Mar-2012 |
Michael Tuexen <tuexen@FreeBSD.org> |
Add support for stf interfaces. MFC after: 3days.
|
#
137f91e8 |
|
05-Jan-2012 |
John Baldwin <jhb@FreeBSD.org> |
Convert all users of IF_ADDR_LOCK to use new locking macros that specify either a read lock or write lock. Reviewed by: bz MFC after: 2 weeks
|
#
7215cc1b |
|
17-Dec-2011 |
Michael Tuexen <tuexen@FreeBSD.org> |
Fix unused parameter warnings. While there, fix some whitespace issues. MFC after: 3 months.
|
#
87eac1ce |
|
19-Sep-2011 |
Michael Tuexen <tuexen@FreeBSD.org> |
Cleanup the iterator code, remove code that is never executed. Approved by: re MFC after: 1 month.
|
#
e6194c2e |
|
30-Apr-2011 |
Michael Tuexen <tuexen@FreeBSD.org> |
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
|
#
5d40cf5d |
|
04-Feb-2011 |
Randall Stewart <rrs@FreeBSD.org> |
1) Typo correction in comments and one spacing change. 2) Mass update to all copyrights. MFC after: 3 Months
|
#
bfc46083 |
|
03-Feb-2011 |
Randall Stewart <rrs@FreeBSD.org> |
Adds an experimental option to create a pool of threads. These serve as input threads and are queued packets based on the V-tag number. This is similar to what a modern card can do with queue's for TCP... but alas modern cards know nothing about SCTP. MFC after: 3 months (maybe)
|
#
4a9ef3f8 |
|
30-Dec-2010 |
Michael Tuexen <tuexen@FreeBSD.org> |
Code cleanup: Use LIST_FOREACH, LIST_FOREACH_SAFE, TAILQ_FOREACH, TAILQ_FOREACH_SAFE where appropriate. No functional change. MFC after: 3 months.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
3c8c191b |
|
15-Sep-2010 |
Michael Tuexen <tuexen@FreeBSD.org> |
Remove unused variable/assignment. MFC after: 2 weeks.
|
#
2a0266f7 |
|
10-Jun-2010 |
Randall Stewart <rrs@FreeBSD.org> |
MFC: Fix a number of bugs and race conditions. r208160: Bring back of the iterator thread. It now properly handles VNETS having only one thread. The old timer based code was full of LOR's and other issues. r208852: Cleanup bug. Basically when an un-accepted socket was hanging on a closed listener, we would leak the inp never cleaning it up r208853: Enhance the use under invarients of the audit for locks function and fix a bug where a close collision with a cookie being processed would cause a crash. r208854: Use the proper increment macros when working with the sent_queue_retran_cnt r208855: Align comments properly, Fix a bug where we were NOT looking at the resend markings for control chunks and also not decrementing the retran count which caused extra calls to retransmission. Alos add a valid no locks call to the output routine. r208856: Spacing issues in auth/bsd addr. r208857: Get rid of a windows ifdef that somehow leaked in r208863: Missing error leg returns in some failure cases r208864: LOR fix between the iterator and sctp_inpcb_close r208874: Don't call the sctp_inpcb_free from abort an association since you don't know what locks you hold and a timer will take care of the situation when the gone flag is set r208875: sctp_inpcb_free bug - a socket under the right situation could get stuck (from the accept queue) and never start the proper cleanup timer) r208876: Further enhance invariant lock validation, Fix a bug where a closed socket and a INIT-ACK could collide and cause a crash r208878: Clear up another bug in sctp_inpcb_free where we would end up due to a race in freeing hit a destroy of a contended lock. r208879: Optimize the cleanup and make some additional fixes in the sysctl code so that it won't reference a GONE INP and crash us r208883 & r208891: Fix so we don't open a hole between a sock lock and a call to socantrcvmore.. we could before hit a race that would kill the socket underneath us leading to a crash r208897: CUM-ACK calculation was messed up. So basically large message got broken from the original NR_sack integration. r208902: Make sure that we don't move a bit to the NR array that is behind the cum-ack r208952: Use both bit maps to calculte the cum-ack. r208953: Fix bug having to do with freeing an sctp_inpcb_free(). 1) make sure not to remove the flag until you get the lock again. 2) make sure all log_closing calls hold the lock. 3) Release all the locks when everthing is done and call callout_drain not callout_stop.. r208970: Fix some places on user allocation of a new sctp_inpcb where we run out of resource that we make sure to NULL the so_pcb pointer. Approved by: re - (bz@freebsd.org)
|
#
1909799a |
|
05-Jun-2010 |
Randall Stewart <rrs@FreeBSD.org> |
Spacing issues MFC after: 1 Week
|
#
f7517433 |
|
16-May-2010 |
Randall Stewart <rrs@FreeBSD.org> |
This adds back the Iterator to the sctp code base. We now properly have ONE thread that services all VNET's. Also we purge out the old timer based iterator code which had multiple LOR's and other issues. MFC after: 3 days
|
#
cf19fced |
|
07-Dec-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
MFC 197288,197326,197327,197328,197342,197914,197929, 197955,199365,199370,199371,199373,199866 This MFCs all SCTP/VNET relevant fixes from head. Approved by: rrs (mentor)
|
#
f71e78a1 |
|
10-Oct-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
Fix a race condition where a mutex was destroyed while sleeping on it. Found while analyzing a report from julian. It might fix his bug. Approved by: rrs (mentor) MFC after: 3 days
|
#
4af6c75c |
|
19-Sep-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
Use appropriate locking when using interface list. Approved by: rrs (mentor) MFC after: 1 month.
|
#
8518270e |
|
19-Sep-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
Get SCTP working in combination with VIMAGE. Contains code from bz. Approved by: rrs (mentor) MFC after: 1 month.
|
#
482444b4 |
|
17-Sep-2009 |
Randall Stewart <rrs@FreeBSD.org> |
Support for VNET in SCTP (hopefully)
|
#
ceda2d70 |
|
12-Sep-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
MFC 196610: Fix a bug where vlan interfaces are not supported by SCTP. Approved by: re, rrs (mentor)
|
#
2b77dd01 |
|
28-Aug-2009 |
Michael Tuexen <tuexen@FreeBSD.org> |
Fix a bug where vlan interfaces are not supported by SCTP. Approved by: rrs (mentor) MFC after: 3 days
|
#
e261340e |
|
14-Apr-2009 |
Randall Stewart <rrs@FreeBSD.org> |
Add missing address lock when we look at the ifa list
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
c3a7b734 |
|
09-Aug-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Nit
|
#
52baa64a |
|
29-Jul-2008 |
Randall Stewart <rrs@FreeBSD.org> |
Fix build breakage - kthread_exit() in 8 now has no arguments MFC after: 1 week
|
#
d6af161a |
|
29-Jul-2008 |
Randall Stewart <rrs@FreeBSD.org> |
- Out with some printfs. - Fix a initialization of last_tsn_used - Fix handling of mapped IPv4 addresses Obtained from: Michael Tuexen and I :-) MFC after: 1 week
|
#
fc14de76 |
|
09-Jul-2008 |
Randall Stewart <rrs@FreeBSD.org> |
1) Adds the rest of the VIMAGE change macros 2) Adds some __UserSpace__ on some of the common defines that the user space code needs 3) Fixes a bug when we send up data to a user that failed. We need to a) trim off the data chunk headers, if present, and b) make sure the frag bit is communicated properly for the msgs coming off the stream queues... i.e. we see if some of the msg has been taken. Obtained from: jeli contributed the VIMAGE changes on this pass Thanks Julain!
|
#
b3f1ea41 |
|
14-Jun-2008 |
Randall Stewart <rrs@FreeBSD.org> |
- Macro-izes the packed declaration in all headers. - 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 :-)
|
#
5e2c2d87 |
|
16-Apr-2008 |
Randall Stewart <rrs@FreeBSD.org> |
Allow SCTP to compile without INET6. PR: 116816 Obtained from tuexen@fh-muenster.de: MFC after: 2 weeks
|
#
bf949ea2 |
|
28-Jan-2008 |
Randall Stewart <rrs@FreeBSD.org> |
- Change back to using prioity 0. Which means don't change the prioity when running the thread. (this is for the sctp_interator thread). MFC after: 1 week
|
#
83073fcb |
|
17-Dec-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- sctp-iterator should run at PI_NET priority ...not 0. MFC after: 1 week
|
#
3745c395 |
|
20-Oct-2007 |
Julian Elischer <julian@FreeBSD.org> |
Rename the kthread_xxx (e.g. kthread_create()) calls to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first. I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
|
#
851b7298 |
|
08-Sep-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- send call has a reference to uio->uio_resid in the recent send code, but uio may be NULL on sendfile calls. Change to use sndlen variable. - EMSGSIZE is not being returned in non-blocking mode and needs a small tweak to look if the msg would ever fit when returning EWOULDBLOCK. - FWD-TSN has a bug in stream processing which could cause a panic. This is a follow on to the codenomicon fix. - PDAPI level 1 and 2 do not work unless the reader gets his returned buffer full. Fix so we can break out when at level 1 or 2. - Fix fast-handoff features to copy across properly on accepted sockets - Fix sctp_peeloff() system call when no true system call exists to screen arguments for errors. In cases where a real system call exists the system call itself does this. - Fix raddr leak in recent add-ip code change for bundled asconfs (even when non-bundled asconfs are received) - Make sure ipi_addr lock is held when walking global addr list. Need to change this lock type to a rwlock(). - Add don't wake flag on both input and output when the socket is closing. - When deleting an address verify the interface is correct before allowing the delete to process. This protects panda and unnumbered. - Clean up old sysctl stuff and get rid of the old Open/Net BSD structures. - Add a function to watch the ranges in the sysctl sets. - When appending in the reassembly queue, validate that the assoc has not gone to about to be freed. If so (in the middle) abort out. Note this especially effects MAC I think due to the lock/unlock they do (or with LOCK testing in place). - Netstat patch to get rid of warnings. - Make sure that no data gets queued to inactive/unconfirmed destinations. This especially effect CMT but also makes a impact on regular SCTP as well. - During init collision when we detect seq number out of sync we need to treat it like Case C and discard the cookie (no invarient needed here). - Atomic access to the random store. - When we declare a vtag good, we need to shove it into the time wait hash to prevent further use. When the tag is put into the assoc hash, we need to remove it from the twait hash (where it will surely be). This prevents duplicate tag assignments. - Move decr-ref count to better protect sysctl out of data. - ltrace error corrections in sctp6_usrreq.c - Add hook for interface up/down to be sent to us. - Make sysctl() exported structures independent of processor architecture. - Fix route and src addr cache clearing for delete address case. - Make sure address marked SCTP_DEL_IP_ADDRESS is never selected as src addr. - in icmp handling fixed so we actually look at the icmp codes to figure out what to do. - Modified mobility code. Reception of DELETE IP ADDRESS for a primary destination and SET PRIMARY for a new primary destination is used for retransmission trigger to the new primary destination. Also, in this case, destination of chunks in send_queue are changed to the new primary destination. - Fix so that we disallow sending by mbuf to ever have EEOR mode set upon it. Approved by: re@freebsd.org (B Mah)
|
#
ceaad40a |
|
08-Sep-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Locking compatiability changes. This involves adding 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)
|
#
19d8ca2e |
|
17-Jun-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- The packet log needs to copy all of the buffer not to the end.
|
#
80fefe0a |
|
14-Jun-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Fix so ifn's are properly deleted when the ref count goes to 0. - Fix so VRF's will clean themselves up when no references are around. - Allow sctp_ifa to be passed into inpcb_bind, addr_mgmt_ep_sa to bypass normal validation checks. - turn auto-asconf off for subset bound sockets - Moves all logging to use KTR. This gets rid of most of the logging #ifdef's with a few exceptions reducing the number of config options for SCTP.
|
#
0696e120 |
|
30-May-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Fix a memory overwrite when the mapping array is expanded, size of expansion was not taken int consideration. - Fix so vtag hash is 1 bigger so that it modulo's out correctly, avoids a panic when restart with right modulo happens. - do not dereference stcb when control->do_not_ref_stcb is set - Fix up packet logging to not often use a lock and also to add to options. - Fix some logging option duplication in the sctputil.h
|
#
6b4ae356 |
|
29-May-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Fix spelling errors in comments per Ruslan (.. thanks... )
|
#
207304d4 |
|
29-May-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Fixes so we won't try to start a timer when we hold a wq lock for the iterator. Panda uses a silly recursive lock they hold through the timer. - Add poor mans wireshark compile option.. - Allocate and start using SCTP_M_XXX for all SCTP_MALLOC() calls. - sysctl now will get back the refcnt for viewing by onlookers. Reviewed by: gnn
|
#
b1006367 |
|
08-May-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Copyright change, cisco's silly tool wants it to say: "Copyright (c) 2001-2007, by Cisco Systems," instead of *Copyright (c) 2001-2007, Cisco Systems," - Also fix a few straglers that were still in 2006.
|
#
d06c82f1 |
|
01-May-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Somehow the disable fragment option got lost. We could set/clear it but would not do it. Now we will. - Moved to latest socket api for extended sndrcv info struct. - Moved to support all new levels of fragment interleave (0-2). - Codenomicon security test updates - length checks and such. - Bug in stream reset (2 actually). - setpeerprimary could unlock a null pointer, fixed. - Added a flag in the pcb so netstat can see if we are listening easier. Obtained from: (some of the Listen changes from Weongyo Jeong)
|
#
42551e99 |
|
15-Mar-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- Sysctl's move to seperate file - moved away from ifn/ifa access to sctp_ifa/sctp_ifn built and managed by the add-ip code. - cleaned up add-ip code to use the iterator - made iterator be a thread, which enables auto-asconf now. - rewrote and cleaned up source address selection (also made it use new structures). - Fixed a couple of memory leaks. - DACK now settable as to how many packets to delay as well as time. - connectx() to latest socket API, new associd arg. - Fixed issue with revoking and loosing potential to send when we inflate the flight size. We now inflate the cwnd too and deflate it later when the revoked chunk is sent or acked. - Got rid of some temp debug code - src addr selection moved to a common file (sctp_output.c) - Support for simple VRF's (we have support for multi-vfr via compile switch that is scrubbed from BSD but we won't need multi-vrf until we first get VRF :-D) - Rest of mib work for address information now done - Limit number of addresses in INIT/INIT-ACK to a #def (30). Reviewed by: gnn
|
#
93164cf9 |
|
18-Jan-2007 |
Randall Stewart <rrs@FreeBSD.org> |
- most all includes (#include <>) migrate to the sctp_os_bsd.h file - Finally all splxx() are removed - Count error fixed in mapping array which might cause a wrong cumack generation. - Invariants around panic for case D + printf when no invariants. - one-to-one model race condition fixed by using a pre-formed connection and then completing the work so accept won't happen on a non-formed association. - Some additional paranoia checks in sctp_output. - Locks that were missing in the accept code. Approved by: gnn
|
#
139bc87f |
|
29-Dec-2006 |
Randall Stewart <rrs@FreeBSD.org> |
a) macro-ization of all mbuf and random number access plus timers. This makes the code more portable and able to change out the mbuf or timer system used more easily ;-) b) removal of all use of pkt-hdr's until only the places we need them (before ip_output routines). c) remove a bunch of code not needed due to <b> aka worrying about pkthdr's :-) d) There was one last reorder problem it looks where if a restart occur's and we release and relock (at the point where we setup our alias vtag) we would end up possibly getting the wrong TSN in place. The code that fixed the TSN's just needed to be shifted around BEFORE the release of the lock.. also code that set the state (since this also could contribute). Approved by: gnn
|
#
50cec919 |
|
05-Nov-2006 |
Randall Stewart <rrs@FreeBSD.org> |
Tons of fixes to get all the 64bit issues removed. This also moves two 16 bit int's to become 32 bit values so we do not have to use atomic_add_16. Most of the changes are %p, casts and other various nasty's that were in the orignal code base. With this commit my machine will now do a build universe.. however I as yet have not tested on a 64bit machine .. it may not work :-(
|
#
f8829a4a |
|
03-Nov-2006 |
Randall Stewart <rrs@FreeBSD.org> |
Ok, here it is, we finally add SCTP to current. Note that this work is not just mine, but it is also the works of Peter Lei and Michael Tuexen. They both are my two key other developers working on the project.. and they need ata-boy's too: **** peterlei@cisco.com tuexen@fh-muenster.de **** I did do a make sysent which updated the syscall's and sysproto.. I hope that is correct... without it you don't build since we have new syscalls for SCTP :-0 So go out and look at the NOTES, add option SCTP (make sure inet and inet6 are present too) and play with SCTP. I will see about comitting some test tools I have after I figure out where I should place them. I also have a lib (libsctp.a) that adds some of the missing socketapi functions that I need to put into lib's.. I will talk to George about this :-) There may still be some 64 bit issues in here, none of us have a 64 bit processor to test with yet.. Michael may have a MAC but thats another beast too.. If you have a mac and want to use SCTP contact Michael he maintains a web site with a loadable module with this code :-) Reviewed by: gnn Approved by: gnn
|