aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/cc
Commit message (Collapse)AuthorAgeFilesLines
* This brings into sync FreeBSD with the netflix versions of rack and bbr.Randall Stewart2021-05-063-18/+36
| | | | | | | | | | | | This fixes several breakages (panics) since the tcp_lro code was committed that have been reported. Quite a few new features are now in rack (prefecting of DGP -- Dynamic Goodput Pacing among the largest). There is also support for ack-war prevention. Documents comming soon on rack.. Sponsored by: Netflix Reviewed by: rscheff, mtuexen Differential Revision: https://reviews.freebsd.org/D30036
* tcp: Rename rfc6675_pipe to sack.revised, and enable by defaultRichard Scheffenegger2021-04-173-3/+3
| | | | | | | | | | As full support of RFC6675 is in place, deprecating net.inet.tcp.rfc6675_pipe and enabling by default net.inet.tcp.sack.revised. Reviewed By: #transport, kbowling, rrs Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D28702
* TCP Cubic: improve reaction to (and rollback from) RTORichard Scheffenegger2020-10-241-28/+42
| | | | | | | | | | | | | | 1. fix compliancy issue of CUBIC RTO handling according to RFC8312 section 4.7 2. add CUBIC CC_RTO_ERR handling Submitted by: chengc_netapp.com Reviewed by: rrs, tuexen, rscheff MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D26808 Notes: svn path=/head/; revision=367008
* tcp: move cwnd and ssthresh updates into cc modulesRichard Scheffenegger2020-10-244-2/+24
| | | | | | | | | | | | | | | | This will pave the way of setting ssthresh differently in TCP CUBIC, according to RFC8312 section 4.7. No functional change, only code movement. Submitted by: chengc_netapp.com Reviewed by: rrs, tuexen, rscheff MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D26807 Notes: svn path=/head/; revision=367007
* TCP newreno: improve after_idle ssthreshRichard Scheffenegger2020-09-251-0/+7
| | | | | | | | | | | | | | | | | | Adjust ssthresh in after_idle to the maximum of the prior ssthresh, or 3/4 of the prior cwnd. See RFC2861 section 2 for an in depth explanation for the rationale around this. As newreno is the default "fall-through" reaction, most tcp variants will benefit from this. Reviewed by: tuexen MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D22438 Notes: svn path=/head/; revision=366149
* cc_mod: remove unused CCF_DELACK definitionRichard Scheffenegger2020-09-101-1/+1
| | | | | | | | | | | | | | | | | During the DCTCP improvements, use of CCF_DELACK was removed. This change is just to rename the unused flag bit to prevent use of it, without also re-implementing the tcp_input and tcp_output interfaces. No functional change. Reviewed by: chengc_netapp.com, tuexen MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D26181 Notes: svn path=/head/; revision=365546
* net: clean up empty lines in .c and .h filesMateusz Guzik2020-09-012-3/+0
| | | | Notes: svn path=/head/; revision=365071
* TCP Cubic: recalculate cwnd for every ACK.Richard Scheffenegger2020-08-181-17/+5
| | | | | | | | | | | | | | | | Since cubic calculates cwnd based on absolute time, retaining RFC3465 (ABC) once-per-window updates can lead to dramatic changes of cwnd in the convex region. Updating cwnd for each incoming ack minimizes this delta, preventing unintentional line-rate bursts. Reviewed by: chengc_netapp.com, tuexen (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D26060 Notes: svn path=/head/; revision=364354
* TCP Cubic: Have Fast Convergence Heuristic work for ECN, and align concave ↵Richard Scheffenegger2020-08-131-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | region The Cubic concave region was not aligned nicely for the very first exit from slow start, where a 50% cwnd reduction is done instead of the normal 30%. This addresses an issue, where a short line-rate burst could result from that sudden jump of cwnd. In addition, the Fast Convergence Heuristic has been expanded to work also with ECN induced congestion response. Submitted by: chengc_netapp.com Reported by: chengc_netapp.com Reviewed by: tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D25976 Notes: svn path=/head/; revision=364197
* TCP Cubic: After leaving slowstart fix unintended cwnd jump.Richard Scheffenegger2020-08-131-11/+13
| | | | | | | | | | | | | | | | | | | | Initializing K to zero in D23655 introduced a miscalculation, where cwnd would suddenly jump to cwnd_max instead of gradually increasing, after leaving slow-start. Properly calculating K instead of resetting it to zero resolves this issue. Also making sure, that cwnd is recalculated at the earliest opportunity once slow-start is over. Reported by: chengc_netapp.com Reviewed by: chengc_netapp.com, tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D25746 Notes: svn path=/head/; revision=364196
* Fix style and comment around concave/convex regions in TCP cubic.Richard Scheffenegger2020-07-211-3/+2
| | | | | | | | | | | | | | | | | In cubic, the concave region is when snd_cwnd starts growing slower towards max_cwnd (cwnd at the time of the congestion event), and the convex region is when snd_cwnd starts to grow faster and eventually appearing like slow-start like growth. PR: 238478 Reviewed by: tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D24657 Notes: svn path=/head/; revision=363397
* Add MODULE_VERSION to TCP loadable congestion control modules.Richard Scheffenegger2020-07-208-1/+8
| | | | | | | | | | | | | | | | | | Without versioning information, using preexisting loader / linker code is not easily possible when another module may have dependencies on pre-loaded modules, and also doesn't allow the automatic loading of dependent modules. No functional change of the actual modules. Reviewed by: tuexen (mentor), rgrimes (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D25744 Notes: svn path=/head/; revision=363380
* TCP: fix cubic RTO reaction.Richard Scheffenegger2020-06-241-0/+5
| | | | | | | | | | | | | | | | | | | Proper TCP Cubic operation requires the knowledge of the maximum congestion window prior to the last congestion event. This restores and improves a bugfix previously added by jtl@ but subsequently removed due to a revert. Reported by: chengc_netapp.com Reviewed by: chengc_netapp.com, tuexen (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D25133 Notes: svn path=/head/; revision=362580
* Prevent TCP Cubic to abruptly increase cwnd after app-limitedRichard Scheffenegger2020-06-101-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cubic calculates the new cwnd based on absolute time elapsed since the start of an epoch. A cubic epoch is started on congestion events, or once the congestion avoidance phase is started, after slow-start has completed. When a sender is application limited for an extended amount of time and subsequently a larger volume of data becomes ready for sending, Cubic recalculates cwnd with a lingering cubic epoch. This recalculation of the cwnd can induce a massive increase in cwnd, causing a burst of data to be sent at line rate by the sender. This adds a flag to reset the cubic epoch once a session transitions from app-limited to cwnd-limited to prevent the above effect. Reviewed by: chengc_netapp.com, tuexen (mentor) Approved by: tuexen (mentor), rgrimes (mentor) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D25065 Notes: svn path=/head/; revision=362006
* Prevent TCP Cubic to abruptly increase cwnd after slow-startRichard Scheffenegger2020-06-091-9/+19
| | | | | | | | | | | | | | | | | | Introducing flags to track the initial Wmax dragging and exit from slow-start in TCP Cubic. This prevents sudden jumps in the caluclated cwnd by cubic, especially when the flow is application limited during slow start (cwnd can not grow as fast as expected). The downside is that cubic may remain slightly longer in the concave region before starting the convex region beyond Wmax again. Reviewed by: chengc_netapp.com, tuexen (mentor) Approved by: tuexen (mentor), rgrimes (mentor, blanket) MFC after: 3 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D23655 Notes: svn path=/head/; revision=361987
* DCTCP: update alpha only once after loss recovery.Richard Scheffenegger2020-05-211-4/+2
| | | | | | | | | | | | | | | | | | | In mixed ECN marking and loss scenarios it was found, that the alpha value of DCTCP is updated two times. The second update happens with freshly initialized counters indicating to ECN loss. Overall this leads to alpha not adjusting as quickly as expected to ECN markings, and therefore lead to excessive loss. Reported by: Cheng Cui Reviewed by: chengc_netapp.com, rrs, tuexen (mentor) Approved by: tuexen (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D24817 Notes: svn path=/head/; revision=361348
* Introduce a lower bound of 2 MSS to TCP Cubic.Richard Scheffenegger2020-04-301-4/+7
| | | | | | | | | | | | | | | | | | | Running TCP Cubic together with ECN could end up reducing cwnd down to 1 byte, if the receiver continously sets the ECE flag, resulting in very poor transmission speeds. In line with RFC6582 App. B, a lower bound of 2 MSS is introduced, as well as a typecast to prevent any potential integer overflows during intermediate calculation steps of the adjusted cwnd. Reported by: Cheng Cui Reviewed by: tuexen (mentor) Approved by: tuexen (mentor) MFC after: 2 weeks Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D23353 Notes: svn path=/head/; revision=360491
* Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)Pawel Biernacki2020-02-268-43/+50
| | | | | | | | | | | | | | | | | | | r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718 Notes: svn path=/head/; revision=358333
* White space cleanup -- remove trailing tab's or spacesRandall Stewart2020-02-123-4/+4
| | | | | | | | | from any line. Sponsored by: Netflix Inc. Notes: svn path=/head/; revision=357818
* Sending CWR after an RTO is according to RFC 3168 generally requiredMichael Tuexen2020-01-251-1/+0
| | | | | | | | | | | | and not only for the DCTCP congestion control. Submitted by: Richard Scheffenegger Reviewed by: rgrimes, tuexen@, Cheng Cui MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23119 Notes: svn path=/head/; revision=357116
* Fix delayed ACK generation for DCTCP.Michael Tuexen2019-12-311-21/+18
| | | | | | | | | Submitted by: Richard Scheffenegger Reviewed by: chengc@netapp.com, rgrimes@, tuexen@ Differential Revision: https://reviews.freebsd.org/D22644 Notes: svn path=/head/; revision=356235
* Add curly braces missed in https://svnweb.freebsd.org/changeset/base/354773Michael Tuexen2019-12-311-1/+2
| | | | | | | | Sponsored by: Netflix, Inc. CID: 1407649 Notes: svn path=/head/; revision=356224
* Make use of the stats(3) framework in the TCP stack.Edward Tomasz Napierala2019-12-021-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This makes it possible to retrieve per-connection statistical information such as the receive window size, RTT, or goodput, using a newly added TCP_STATS getsockopt(3) option, and extract them using the stats_voistat_fetch(3) API. See the net/tcprtt port for an example consumer of this API. Compared to the existing TCP_INFO system, the main differences are that this mechanism is easy to extend without breaking ABI, and provides statistical information instead of raw "snapshots" of values at a given point in time. stats(3) is more generic and can be used in both userland and the kernel. Reviewed by: thj Tested by: thj Obtained from: Netflix Relnotes: yes Sponsored by: Klara Inc, Netflix Differential Revision: https://reviews.freebsd.org/D20655 Notes: svn path=/head/; revision=355304
* Move all ECN related flags from the flags to the flags2 field.Michael Tuexen2019-12-011-8/+8
| | | | | | | | | | | | This allows adding more ECN related flags in the future. No functional change intended. Submitted by: Richard Scheffenegger Reviewed by: rrs@, tuexen@ Differential Revision: https://reviews.freebsd.org/D22497 Notes: svn path=/head/; revision=355273
* Add boundary and overflow checks to the formulas used in the TCP CUBICMichael Tuexen2019-11-162-11/+42
| | | | | | | | | | | congestion control module. Submitted by: Richard Scheffenegger Reviewed by: rgrimes@ Differential Revision: https://reviews.freebsd.org/D19118 Notes: svn path=/head/; revision=354774
* Improve TCP CUBIC specific after idle reaction.Michael Tuexen2019-11-161-0/+5
| | | | | | | | | | | | The adjustments are inspired by the Linux stack, which has had a functionally equivalent implementation for more than a decade now. Submitted by: Richard Scheffenegger Reviewed by: Cheng Cui Differential Revision: https://reviews.freebsd.org/D18982 Notes: svn path=/head/; revision=354773
* Implement a tCP CUBIC-specific after idle reaction.Michael Tuexen2019-11-161-3/+19
| | | | | | | | | | | | This patch addresses a very common case of frequent application stalls, where TCP runs idle and looses the state of the network. Submitted by: Richard Scheffenegger Reviewed by: Cheng Cui Differential Revision: https://reviews.freebsd.org/D18954 Notes: svn path=/head/; revision=354772
* Revert https://svnweb.freebsd.org/changeset/base/354708Michael Tuexen2019-11-161-19/+3
| | | | | | | | I used the wrong Differential Revision, so back it out and do it right in a follow-up commit. Notes: svn path=/head/; revision=354771
* For idle TCP sessions using the CUBIC congestio control, reset ssthreshMichael Tuexen2019-11-141-3/+19
| | | | | | | | | | | to the higher of the previous ssthresh or 3/4 of the prior cwnd. Submitted by: Richard Scheffenegger Reviewed by: Cheng Cui Differential Revision: https://reviews.freebsd.org/D18982 Notes: svn path=/head/; revision=354708
* When performing after_idle() or post_recovery(), don't disable theMichael Tuexen2019-07-291-65/+70
| | | | | | | | | | | | DCTCP specific methods. Also fallthrough NewReno for non ECN capable TCP connections and improve the integer arithmetic. Obtained from: Richard Scheffenegger MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D20550 Notes: svn path=/head/; revision=350404
* * Improve input validation of sysctl parameters for DCTPC.Michael Tuexen2019-07-291-23/+20
| | | | | | | | | | | | | * Initialize the alpha parameter to a conservative value (like Linux) * Improve handling of arithmetic. * Improve man-page Obtained from: Richard Scheffenegger MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D20549 Notes: svn path=/head/; revision=350403
* Prevent cwnd to collapse down to 1 MSS after exiting recovery.Michael Tuexen2019-05-093-3/+18
| | | | | | | | | | | | This is descrined in RFC 6582, which updates RFC 3782. Submitted by: Richard Scheffenegger Reviewed by: lstewart@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D17614 Notes: svn path=/head/; revision=347381
* Ensure that when using the TCP CDG congestion control and setting theMichael Tuexen2019-02-081-1/+5
| | | | | | | | | | | | | | sysctl variable net.inet.tcp.cc.cdg.smoothing_factor to 0, the smoothing is disabled. Without this patch, a division by zero orrurs. PR: 193762 Reviewed by: lstewart@, rrs@ MFC after: 3 days Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D19071 Notes: svn path=/head/; revision=343920
* Fix a bug in the restart window computation of TCP New RenoMichael Tuexen2019-01-251-6/+2
| | | | | | | | | | | | | | | | When implementing support for IW10, an update in the computation of the restart window used after an idle phase was missed. To minimize code duplication, implement the logic in tcp_compute_initwnd() and call it. This fixes a bug in NewReno, which was not aware of IW10. Submitted by: Richard Scheffenegger Reviewed by: tuexen@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18940 Notes: svn path=/head/; revision=343428
* Revert r331567 CC Cubic: fix underflow for cubic_cwnd()Hiren Panchasara2018-12-153-52/+7
| | | | | | | | | | | | This change is causing TCP connections using cubic to hang. Need to dig more to find exact cause and fix it. Reported by: tj at mrsk dot me, Matt Garber (via twitter) Discussed with: sbruno (previously), allanjude, cperciva MFC after: 3 days Notes: svn path=/head/; revision=342127
* Fix bugs in plugable CC algorithm and siftr sysctls.Brooks Davis2018-12-156-42/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the sysctl_handle_int() handler to write out the old value and read the new value into a temporary variable. Use the temporary variable for any checks of values rather than using the CAST_PTR_INT() macro on req->newptr. The prior usage read directly from userspace memory if the sysctl() was called correctly. This is unsafe and doesn't work at all on some architectures (at least i386.) In some cases, the code could also be tricked into reading from kernel memory and leaking limited information about the contents or crashing the system. This was true for CDG, newreno, and siftr on all platforms and true for i386 in all cases. The impact of this bug is largest in VIMAGE jails which have been configured to allow writing to these sysctls. Per discussion with the security officer, we will not be issuing an advisory for this issue as root access and a non-default config are required to be impacted. Reviewed by: markj, bz Discussed with: gordon (security officer) MFC after: 3 days Security: kernel information leak, local DoS (both require root) Differential Revision: https://reviews.freebsd.org/D18443 Notes: svn path=/head/; revision=342125
* Limit option_len for the TCP_CCALGOOPT.Michael Tuexen2018-11-301-0/+2
| | | | | | | | | | | | | Limiting the length to 2048 bytes seems to be acceptable, since the values used right now are using 8 bytes. Reviewed by: glebius, bz, rrs MFC after: 3 days Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D18366 Notes: svn path=/head/; revision=341335
* Use the new VNET_DEFINE_STATIC macro when we are defining static VNETAndrew Turner2018-07-247-24/+24
| | | | | | | | | | | variables. Reviewed by: bz Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16147 Notes: svn path=/head/; revision=336676
* NULL out cc_data in pluggable TCP {cc}_cb_destroyMatt Macy2018-07-226-16/+6
| | | | | | | | | | | | | | | | | | | | | | | | | When ABE was added (rS331214) to NewReno and leak fixed (rS333699) , it now has a destructor (newreno_cb_destroy) for per connection state. Other congestion controls may allocate and free cc_data on entry and exit, but the field is never explicitly NULLed if moving back to NewReno which only internally allocates stateful data (no entry contstructor) resulting in a situation where newreno_cb_destory might be called on a junk pointer. - NULL out cc_data in the framework after calling {cc}_cb_destroy - free(9) checks for NULL so there is no need to perform not NULL checks before calling free. - Improve a comment about NewReno in tcp_ccalgounload This is the result of a debugging session from Jason Wolfe, Jason Eggleston, and mmacy@ and very helpful insight from lstewart@. Submitted by: Kevin Bowling Reviewed by: lstewart Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D16282 Notes: svn path=/head/; revision=336596
* Plug a memory leak and potential NULL-pointer dereference introduced in r331214.Lawrence Stewart2018-05-171-24/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | Each TCP connection that uses the system default cc_newreno(4) congestion control algorithm module leaks a "struct newreno" (8 bytes of memory) at connection initialisation time. The NULL-pointer dereference is only germane when using the ABE feature, which is disabled by default. While at it: - Defer the allocation of memory until it is actually needed given that ABE is optional and disabled by default. - Document the ENOMEM errno in getsockopt(2)/setsockopt(2). - Document ENOMEM and ENOBUFS in tcp(4) as being synonymous given that they are used interchangeably throughout the code. - Fix a few other nits also accidentally omitted from the original patch. Reported by: Harsh Jain on freebsd-net@ Tested by: tjh@ Differential Revision: https://reviews.freebsd.org/D15358 Notes: svn path=/head/; revision=333699
* cc_cubic:Sean Bruno2018-05-031-15/+14
| | | | | | | | | | | - Update cubic parameters to draft-ietf-tcpm-cubic-04 Submitted by: Matt Macy <mmacy@mattmacy.io> Reviewed by: lstewart Differential Revision: https://reviews.freebsd.org/D10556 Notes: svn path=/head/; revision=333211
* CC Cubic: fix underflow for cubic_cwnd()Sean Bruno2018-03-263-7/+52
| | | | | | | | | | | | | Singed calculations in cubic_cwnd() can result in negative cwnd value which is then cast to an unsigned value. Values less than 1 mss are generally bad for other parts of the code, also fixed. Submitted by: Jason Eggleston <jason@eggnet.com> Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14141 Notes: svn path=/head/; revision=331567
* Add support for the experimental Internet-Draft "TCP Alternative Backoff withLawrence Stewart2018-03-194-7/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ECN (ABE)" proposal to the New Reno congestion control algorithm module. ABE reduces the amount of congestion window reduction in response to ECN-signalled congestion relative to the loss-inferred congestion response. More details about ABE can be found in the Internet-Draft: https://tools.ietf.org/html/draft-ietf-tcpm-alternativebackoff-ecn The implementation introduces four new sysctls: - net.inet.tcp.cc.abe defaults to 0 (disabled) and can be set to non-zero to enable ABE for ECN-enabled TCP connections. - net.inet.tcp.cc.newreno.beta and net.inet.tcp.cc.newreno.beta_ecn set the multiplicative window decrease factor, specified as a percentage, applied to the congestion window in response to a loss-based or ECN-based congestion signal respectively. They default to the values specified in the draft i.e. beta=50 and beta_ecn=80. - net.inet.tcp.cc.abe_frlossreduce defaults to 0 (disabled) and can be set to non-zero to enable the use of standard beta (50% by default) when repairing loss during an ECN-signalled congestion recovery episode. It enables a more conservative congestion response and is provided for the purposes of experimentation as a result of some discussion at IETF 100 in Singapore. The values of beta and beta_ecn can also be set per-connection by way of the TCP_CCALGOOPT TCP-level socket option and the new CC_NEWRENO_BETA or CC_NEWRENO_BETA_ECN CC algo sub-options. Submitted by: Tom Jones <tj@enoti.me> Tested by: Tom Jones <tj@enoti.me>, Grenville Armitage <garmitage@swin.edu.au> Relnotes: Yes Differential Revision: https://reviews.freebsd.org/D11616 Notes: svn path=/head/; revision=331214
* sys: general adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-2710-0/+20
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. 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. No functional change intended. Notes: svn path=/head/; revision=326272
* cc_cubic: restore braces around if-condition blockEd Maste2017-07-261-1/+2
| | | | | | | | | | | | r307901 was reverted in r321480, restoring an incorrect block delimitation bug present in the original cc_cubic commit. Restore only the bugfix (brace addition) from r307901. CID: 1090182 Approved by: sbruno Notes: svn path=/head/; revision=321587
* Revert r307901 - Inform CC modules about loss events.Sean Bruno2017-07-256-68/+23
| | | | | | | | | | | | | This was discussed between various transport@ members and it was requested to be reverted and discussed. Submitted by: Kevin Bowling <kevin.bowling@kev009.com> Reported by: lawrence Reviewed by: hiren Sponsored by: Limelight Networks Notes: svn path=/head/; revision=321480
* Revert r308180 - Set slow start threshold more accurrately on loss ...Sean Bruno2017-07-255-29/+18
| | | | | | | | | | | | This was discussed between various transport@ members and it was requested to be reverted and discussed. Submitted by: kevin Reported by: lawerence Reviewed by: hiren Notes: svn path=/head/; revision=321479
* Fix a variety of cosmetic typos and misspellingsConrad Meyer2017-01-151-1/+1
| | | | | | | | | | | No functional change. PR: 216096, 216097, 216098, 216101, 216102, 216106, 216109, 216110 Reported by: Bulat <bltsrc at mail.ru> Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=312235
* Set slow start threshold more accurately on loss to be flightsize/2 instead ofHiren Panchasara2016-11-015-18/+29
| | | | | | | | | | | | | | | | cwnd/2 as recommended by RFC5681. (spotted by mmacy at nextbsd dot org) Restore pre-r307901 behavior of aligning ssthresh/cwnd on mss boundary. (spotted by slawa at zxy dot spb dot ru) Tested by: dim, Slawa <slawa at zxy dot spb dot ru> MFC after: 1 month X-MFC with: r307901 Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D8349 Notes: svn path=/head/; revision=308180
* FreeBSD tcp stack used to inform respective congestion control module about theHiren Panchasara2016-10-256-23/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | loss event but not use or obay the recommendations i.e. values set by it in some cases. Here is an attempt to solve that confusion by following relevant RFCs/drafts. Stack only sets congestion window/slow start threshold values when there is no CC module availalbe to take that action. All CC modules are inspected and updated when needed to take appropriate action on loss. tcp_stacks/fastpath module has been updated to adapt these changes. Note: Probably, the most significant change would be to not bring congestion window down to 1MSS on a loss signaled by 3-duplicate acks and letting respective CC decide that value. In collaboration with: Matt Macy <mmacy at nextbsd dot org> Discussed on: transport@ mailing list Reviewed by: jtl MFC after: 1 month Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D8225 Notes: svn path=/head/; revision=307901