svn commit: r362577 - head/sys/netinet

2020-06-24 Thread Richard Scheffenegger
Author: rscheff Date: Wed Jun 24 13:42:42 2020 New Revision: 362577 URL: https://svnweb.freebsd.org/changeset/base/362577 Log: TCP: make after-idle work for transactional sessions. The use of t_rcvtime as proxy for the last transmission fails for transactional IO, where the client request

svn commit: r362580 - head/sys/netinet/cc

2020-06-24 Thread Richard Scheffenegger
Author: rscheff Date: Wed Jun 24 13:52:53 2020 New Revision: 362580 URL: https://svnweb.freebsd.org/changeset/base/362580 Log: TCP: fix cubic RTO reaction. Proper TCP Cubic operation requires the knowledge of the maximum congestion window prior to the last congestion event. This re

svn commit: r362988 - head/sys/netinet

2020-07-07 Thread Richard Scheffenegger
Author: rscheff Date: Tue Jul 7 12:10:59 2020 New Revision: 362988 URL: https://svnweb.freebsd.org/changeset/base/362988 Log: Fix KASSERT during tcp_newtcpcb when low on memory While testing with system default cc set to cubic, and running a memory exhaustion validation, FreeBSD panics f

svn commit: r363380 - head/sys/netinet/cc

2020-07-20 Thread Richard Scheffenegger
Author: rscheff Date: Mon Jul 20 23:47:27 2020 New Revision: 363380 URL: https://svnweb.freebsd.org/changeset/base/363380 Log: Add MODULE_VERSION to TCP loadable congestion control modules. Without versioning information, using preexisting loader / linker code is not easily possible when

svn commit: r363397 - head/sys/netinet/cc

2020-07-21 Thread Richard Scheffenegger
Author: rscheff Date: Tue Jul 21 16:21:52 2020 New Revision: 363397 URL: https://svnweb.freebsd.org/changeset/base/363397 Log: Fix style and comment around concave/convex regions in TCP cubic. In cubic, the concave region is when snd_cwnd starts growing slower towards max_cwnd (cwnd at th

svn commit: r364195 - head/sys/netinet

2020-08-13 Thread Richard Scheffenegger
Author: rscheff Date: Thu Aug 13 16:30:09 2020 New Revision: 364195 URL: https://svnweb.freebsd.org/changeset/base/364195 Log: Improve SACK support code for RFC6675 and PRR Adding proper accounting of sacked_bytes and (per-ACK) delivered data to the SACK scoreboard. This will allow more

svn commit: r364196 - head/sys/netinet/cc

2020-08-13 Thread Richard Scheffenegger
Author: rscheff Date: Thu Aug 13 16:38:51 2020 New Revision: 364196 URL: https://svnweb.freebsd.org/changeset/base/364196 Log: TCP Cubic: After leaving slowstart fix unintended cwnd jump. Initializing K to zero in D23655 introduced a miscalculation, where cwnd would suddenly jump to cwnd_

svn commit: r364197 - head/sys/netinet/cc

2020-08-13 Thread Richard Scheffenegger
Author: rscheff Date: Thu Aug 13 16:45:55 2020 New Revision: 364197 URL: https://svnweb.freebsd.org/changeset/base/364197 Log: TCP Cubic: Have Fast Convergence Heuristic work for ECN, and align concave region The Cubic concave region was not aligned nicely for the very first exit from sl

svn commit: r364354 - head/sys/netinet/cc

2020-08-18 Thread Richard Scheffenegger
Author: rscheff Date: Tue Aug 18 19:34:31 2020 New Revision: 364354 URL: https://svnweb.freebsd.org/changeset/base/364354 Log: TCP Cubic: recalculate cwnd for every ACK. Since cubic calculates cwnd based on absolute time, retaining RFC3465 (ABC) once-per-window updates can lead to drama

svn commit: r367007 - in head/sys/netinet: . cc

2020-10-24 Thread Richard Scheffenegger
Author: rscheff Date: Sat Oct 24 16:09:18 2020 New Revision: 367007 URL: https://svnweb.freebsd.org/changeset/base/367007 Log: tcp: move cwnd and ssthresh updates into cc modules This will pave the way of setting ssthresh differently in TCP CUBIC, according to RFC8312 section 4.7. No

svn commit: r367008 - head/sys/netinet/cc

2020-10-24 Thread Richard Scheffenegger
Author: rscheff Date: Sat Oct 24 16:11:46 2020 New Revision: 367008 URL: https://svnweb.freebsd.org/changeset/base/367008 Log: TCP Cubic: improve reaction to (and rollback from) RTO 1. fix compliancy issue of CUBIC RTO handling according to RFC8312 section 4.7 2. add CUBIC CC_RTO_ERR hand

svn commit: r367021 - in head/sbin: ping ping6

2020-10-24 Thread Richard Scheffenegger
Author: rscheff Date: Sat Oct 24 21:01:18 2020 New Revision: 367021 URL: https://svnweb.freebsd.org/changeset/base/367021 Log: Make use of IP_VLAN_PCP setsockopt in ping and ping6. In order to validate the proper marking and use of a different ethernet priority class, add the new session-

svn commit: r367023 - in head: sys/dev/iscsi usr.bin/iscsictl usr.sbin/iscsid

2020-10-24 Thread Richard Scheffenegger
Author: rscheff Date: Sat Oct 24 21:07:13 2020 New Revision: 367023 URL: https://svnweb.freebsd.org/changeset/base/367023 Log: Add network QoS support for PCP to iscsi initiator. Make the Ethernet PCP codepoint configurable for L2 local traffic, to allow lower latency for iSCSI block IO

svn commit: r367024 - head/usr.sbin/ctld

2020-10-24 Thread Richard Scheffenegger
Author: rscheff Date: Sat Oct 24 21:10:53 2020 New Revision: 367024 URL: https://svnweb.freebsd.org/changeset/base/367024 Log: Add network QoS support for PCP to iscsi target. Mak the Ethernet PCP codepoint configurable for L2 local traffic, to allow lower latency for iSCSI block IO. Th

svn commit: r367492 - in head/sys/netinet: . tcp_stacks

2020-11-08 Thread Richard Scheffenegger
Author: rscheff Date: Sun Nov 8 18:47:05 2020 New Revision: 367492 URL: https://svnweb.freebsd.org/changeset/base/367492 Log: Prevent premature SACK block transmission during loss recovery Under specific conditions, a window update can be sent with outdated SACK information. Some clients

svn commit: r368327 - head/sys/netinet

2020-12-04 Thread Richard Scheffenegger
Author: rscheff Date: Fri Dec 4 11:29:27 2020 New Revision: 368327 URL: https://svnweb.freebsd.org/changeset/base/368327 Log: Add TCP feature Proportional Rate Reduction (PRR) - RFC6937 PRR improves loss recovery and avoids RTOs in a wide range of scenarios (ACK thinning) over regular SA

svn commit: r360010 - in head: share/man/man7 sys/netinet

2020-04-16 Thread Richard Scheffenegger
Author: rscheff Date: Thu Apr 16 15:59:23 2020 New Revision: 360010 URL: https://svnweb.freebsd.org/changeset/base/360010 Log: Reduce default TCP delayed ACK timeout to 40ms. Reviewed by: kbowling, tuexen Approved by: tuexen (mentor) MFC after:2 weeks Sponsored by: NetApp, Inc.

svn commit: r360143 - in head/sys/netinet: . tcp_stacks

2020-04-21 Thread Richard Scheffenegger
Author: rscheff Date: Tue Apr 21 13:05:44 2020 New Revision: 360143 URL: https://svnweb.freebsd.org/changeset/base/360143 Log: Correctly set up the initial TCP congestion window in all cases, by adjust snd_una right after the connection initialization, to include the one byte in sequence s

svn commit: r360180 - in head/sys/netinet: . tcp_stacks

2020-04-21 Thread Richard Scheffenegger
Author: rscheff Date: Wed Apr 22 00:16:42 2020 New Revision: 360180 URL: https://svnweb.freebsd.org/changeset/base/360180 Log: revert rS360143 - Correctly set up initial cwnd due to syzkaller panics found Reported by: tuexen Approved by: tuexen (mentor) Sponsored by: NetApp, Inc.

svn commit: r360477 - in head/sys/netinet: . tcp_stacks

2020-04-29 Thread Richard Scheffenegger
Author: rscheff Date: Wed Apr 29 21:48:52 2020 New Revision: 360477 URL: https://svnweb.freebsd.org/changeset/base/360477 Log: Correctly set up the initial TCP congestion window in all cases, by not including the SYN bit sequence space in cwnd related calculations. Snd_und is adjusted explic

svn commit: r360479 - in head/sys/netinet: . tcp_stacks

2020-04-29 Thread Richard Scheffenegger
Author: rscheff Date: Wed Apr 29 22:01:33 2020 New Revision: 360479 URL: https://svnweb.freebsd.org/changeset/base/360479 Log: Prevent premature shrinking of the scaled receive window which can cause a TCP client to use invalid or stale TCP sequence numbers for ACK packets. Packets with

svn commit: r360491 - head/sys/netinet/cc

2020-04-30 Thread Richard Scheffenegger
Author: rscheff Date: Thu Apr 30 11:11:28 2020 New Revision: 360491 URL: https://svnweb.freebsd.org/changeset/base/360491 Log: Introduce a lower bound of 2 MSS to TCP Cubic. Running TCP Cubic together with ECN could end up reducing cwnd down to 1 byte, if the receiver continously sets th

svn commit: r361345 - in head/sys/netinet: . tcp_stacks

2020-05-21 Thread Richard Scheffenegger
Author: rscheff Date: Thu May 21 21:15:25 2020 New Revision: 361345 URL: https://svnweb.freebsd.org/changeset/base/361345 Log: Handle ECN handshake in simultaneous open While testing simultaneous open TCP with ECN, found that negotiation fails to arrive at the expected final state. R

svn commit: r361346 - in head/sys/netinet: . tcp_stacks

2020-05-21 Thread Richard Scheffenegger
Author: rscheff Date: Thu May 21 21:26:21 2020 New Revision: 361346 URL: https://svnweb.freebsd.org/changeset/base/361346 Log: Retain only mutually supported TCP options after simultaneous SYN When receiving a parallel SYN in SYN-SENT state, remove all the options only we supported locall

svn commit: r361347 - in head/sys/netinet: . tcp_stacks

2020-05-21 Thread Richard Scheffenegger
Author: rscheff Date: Thu May 21 21:33:15 2020 New Revision: 361347 URL: https://svnweb.freebsd.org/changeset/base/361347 Log: With RFC3168 ECN, CWR SHOULD only be sent with new data Overly conservative data receivers may ignore the CWR flag on other packets, and keep ECE latched. This ca

svn commit: r361348 - head/sys/netinet/cc

2020-05-21 Thread Richard Scheffenegger
Author: rscheff Date: Thu May 21 21:42:49 2020 New Revision: 361348 URL: https://svnweb.freebsd.org/changeset/base/361348 Log: DCTCP: update alpha only once after loss recovery. In mixed ECN marking and loss scenarios it was found, that the alpha value of DCTCP is updated two times. The s

svn commit: r361806 - head/bin/dd

2020-06-04 Thread Richard Scheffenegger
Author: rscheff Date: Thu Jun 4 20:47:11 2020 New Revision: 361806 URL: https://svnweb.freebsd.org/changeset/base/361806 Log: Add O_DIRECT flag to DD for cache bypass FreeBSD DD utility has not had support for the O_DIRECT flag, which is useful to bypass local caching, e.g. for unconditi

svn commit: r361987 - head/sys/netinet/cc

2020-06-09 Thread Richard Scheffenegger
Author: rscheff Date: Tue Jun 9 21:07:58 2020 New Revision: 361987 URL: https://svnweb.freebsd.org/changeset/base/361987 Log: Prevent TCP Cubic to abruptly increase cwnd after slow-start Introducing flags to track the initial Wmax dragging and exit from slow-start in TCP Cubic. This prev

svn commit: r362006 - head/sys/netinet/cc

2020-06-10 Thread Richard Scheffenegger
Author: rscheff Date: Wed Jun 10 07:32:02 2020 New Revision: 362006 URL: https://svnweb.freebsd.org/changeset/base/362006 Log: Prevent TCP Cubic to abruptly increase cwnd after app-limited Cubic calculates the new cwnd based on absolute time elapsed since the start of an epoch. A cubic ep

svn commit: r359764 - head/share/misc

2020-04-09 Thread Richard Scheffenegger
el="Ravi Pokala\nrpok...@freebsd.org\n2015/11/19"] rrs [label="Randall R Stewart\n...@freebsd.org\n2007/02/08"] +rscheff [label="Richard Scheffenegger\nrsch...@freebsd.org\n2020/04/06"] rse [label="Ralf S. Engelschall\n...@freebsd.org\n1997/07/31"] rstone [

svn commit: r365546 - head/sys/netinet/cc

2020-09-09 Thread Richard Scheffenegger
Author: rscheff Date: Thu Sep 10 00:46:38 2020 New Revision: 365546 URL: https://svnweb.freebsd.org/changeset/base/365546 Log: cc_mod: remove unused CCF_DELACK definition During the DCTCP improvements, use of CCF_DELACK was removed. This change is just to rename the unused flag bit to p

svn commit: r365547 - head/sbin/ping6

2020-09-09 Thread Richard Scheffenegger
Author: rscheff Date: Thu Sep 10 00:50:18 2020 New Revision: 365547 URL: https://svnweb.freebsd.org/changeset/base/365547 Log: Add -z "TOS" option to ping6, to test DSCP/ECN values ping has the option to add the (deprecated) TOS byte using the -z option. Adding the same option, with the

svn commit: r366149 - head/sys/netinet/cc

2020-09-25 Thread Richard Scheffenegger
Author: rscheff Date: Fri Sep 25 10:23:14 2020 New Revision: 366149 URL: https://svnweb.freebsd.org/changeset/base/366149 Log: TCP newreno: improve after_idle ssthresh Adjust ssthresh in after_idle to the maximum of the prior ssthresh, or 3/4 of the prior cwnd. See RFC2861 section 2 for

svn commit: r366150 - head/sys/netinet

2020-09-25 Thread Richard Scheffenegger
Author: rscheff Date: Fri Sep 25 10:38:19 2020 New Revision: 366150 URL: https://svnweb.freebsd.org/changeset/base/366150 Log: TCP: send full initial window when timestamps are in use The fastpath in tcp_output tries to send out full segments, and avoid sending partial segments by compa

svn commit: r366206 - head/usr.sbin/ctld

2020-09-27 Thread Richard Scheffenegger
Author: rscheff Date: Sun Sep 27 21:43:19 2020 New Revision: 366206 URL: https://svnweb.freebsd.org/changeset/base/366206 Log: Add DSCP support for network QoS to iscsi target. In order to prioritize iSCSI traffic across a network, DSCP can be used. In order not to rely on "ipfw setdscp"

svn commit: r366566 - head/usr.bin/netstat

2020-10-09 Thread Richard Scheffenegger
Author: rscheff Date: Fri Oct 9 10:07:41 2020 New Revision: 366566 URL: https://svnweb.freebsd.org/changeset/base/366566 Log: Extend netstat to display TCP stack and detailed congestion state Adding the "-c" option used to show detailed per-connection congestion control state for TCP ses

svn commit: r366567 - head/sys/netinet

2020-10-09 Thread Richard Scheffenegger
Author: rscheff Date: Fri Oct 9 10:55:19 2020 New Revision: 366567 URL: https://svnweb.freebsd.org/changeset/base/366567 Log: Extend netstat to display TCP stack and detailed congestion state (2) Extend netstat to display TCP stack and detailed congestion state Adding the "-c" option

svn commit: r366569 - in head/sys: net netinet netinet6

2020-10-09 Thread Richard Scheffenegger
Author: rscheff Date: Fri Oct 9 12:06:43 2020 New Revision: 366569 URL: https://svnweb.freebsd.org/changeset/base/366569 Log: Add IP(V6)_VLAN_PCP to set 802.1 priority per-flow. This adds a new IP_PROTO / IPV6_PROTO setsockopt (getsockopt) option IP(V6)_VLAN_PCP, which can be set to -1 (

svn commit: r366570 - head/sys/netinet

2020-10-09 Thread Richard Scheffenegger
Author: rscheff Date: Fri Oct 9 12:44:56 2020 New Revision: 366570 URL: https://svnweb.freebsd.org/changeset/base/366570 Log: Stop sending tiny new data segments during SACK recovery Consider the currently in-use TCP options when calculating the amount of new data to be injected during

svn commit: r366573 - in head: sys/dev/iscsi usr.bin/iscsictl usr.sbin/iscsid

2020-10-09 Thread Richard Scheffenegger
Author: rscheff Date: Fri Oct 9 14:33:09 2020 New Revision: 366573 URL: https://svnweb.freebsd.org/changeset/base/366573 Log: Add DSCP support for network QoS to iscsi initiator. Allow the DSCP codepoint also to be configurable for the traffic in the direction from the initiator to the