Page MenuHomeFreeBSD

rscheff_gmx.at (Richard Scheffenegger)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 18 2018, 9:44 PM (39 w, 5 d)

Recent Activity

Today

rscheff_gmx.at added a comment to D21038: DSACK patch to conform fully with RFC2883.

Added DSACK to RACK again. Validated by running packet drill DSACK testsuite against the rack stack:

Wed, Jul 24, 2:28 AM
rscheff_gmx.at added a comment to D21038: DSACK patch to conform fully with RFC2883.

update rack stack with dsack (again)

Wed, Jul 24, 2:23 AM

Yesterday

rscheff_gmx.at added a comment to D21038: DSACK patch to conform fully with RFC2883.

Hopefully the tab/space mixup is fixed now too.

Tue, Jul 23, 9:46 PM
rscheff_gmx.at added a comment to D21038: DSACK patch to conform fully with RFC2883.
  • fix whitespace mixup and missing bracket
Tue, Jul 23, 9:45 PM
rscheff_gmx.at created D21038: DSACK patch to conform fully with RFC2883.
Tue, Jul 23, 5:45 PM

Sun, Jul 21

rscheff_gmx.at created D21011: Functional implementation of Accurate ECN in FreeBSD.
Sun, Jul 21, 12:08 PM

Thu, Jul 11

D20908: Fixing the DSACK code to properly clean up after sending a DSACK. is now accepted and ready to land.

Sorry for the oversight; Indeed I tested this with continous data from the receiver only, not when the data direction changes :(

Thu, Jul 11, 4:18 AM

Jun 17 2019

rscheff_gmx.at added inline comments to D20550: Fix bugs in DCTCP on TCP events.
Jun 17 2019, 2:36 PM
rscheff_gmx.at added a comment to D20550: Fix bugs in DCTCP on TCP events.
  • - missed rename of variable
Jun 17 2019, 2:32 PM
rscheff_gmx.at added inline comments to D20549: fixing sysctl interface for DCTCP and types of dctcp variables.
Jun 17 2019, 2:20 PM
rscheff_gmx.at updated the summary of D20549: fixing sysctl interface for DCTCP and types of dctcp variables.
  • fix comment to be in-line with RFC
Jun 17 2019, 2:19 PM

Jun 11 2019

rscheff_gmx.at added inline comments to D20550: Fix bugs in DCTCP on TCP events.
Jun 11 2019, 8:37 AM
rscheff_gmx.at added a comment to D20550: Fix bugs in DCTCP on TCP events.

Comment from Midori (original author of this code):

Jun 11 2019, 8:20 AM

Jun 7 2019

rscheff_gmx.at created D20550: Fix bugs in DCTCP on TCP events.
Jun 7 2019, 12:49 PM
rscheff_gmx.at added a comment to D20549: fixing sysctl interface for DCTCP and types of dctcp variables.

Note: DCTCP alpha is initially at zero - thus there will be no reduction in cwnd after the first window, only the 2nd window will have some response, if an elephant flow is tested.

Jun 7 2019, 12:08 PM
rscheff_gmx.at updated the summary of D20549: fixing sysctl interface for DCTCP and types of dctcp variables.
Jun 7 2019, 12:07 PM
rscheff_gmx.at updated the diff for D20549: fixing sysctl interface for DCTCP and types of dctcp variables.
  • aligning sysctl with linux for alpha
Jun 7 2019, 12:01 PM
rscheff_gmx.at added a reviewer for D20549: fixing sysctl interface for DCTCP and types of dctcp variables: transport.
Jun 7 2019, 11:56 AM
rscheff_gmx.at created D20549: fixing sysctl interface for DCTCP and types of dctcp variables.
Jun 7 2019, 11:56 AM

Jun 6 2019

rscheff_gmx.at added a comment to D19622: Fix panic in network stack due memory use after free in relation to fragmented packets.

@bz - once a packet (fragment in this case) has made it to it's destination, I would argue that you shouldn't needlessly drop that packet any more. (Host vs. Router behavior). An interface flapping frequently, and removing all enqueued fragments while doing this, would reduce the usability of such an interface from marginal to completely inoperable.

Jun 6 2019, 2:57 PM

Jun 5 2019

rscheff_gmx.at accepted D20372: Fix TCP RACK after adding DSACK support.

Looks good to me

Jun 5 2019, 10:38 AM

Apr 26 2019

rscheff_gmx.at updated the diff for D18811: nuke sack_newdata.
  • bump tcp_log_buf version
Apr 26 2019, 8:40 AM

Apr 25 2019

rscheff_gmx.at added a reviewer for D18954: Implement Cubic-specific After-Idle reaction: transport.
Apr 25 2019, 2:36 PM
rscheff_gmx.at added reviewers for D18985: New SACK (RFC6675): tuexen, lstewart, slavash, jtl.
Apr 25 2019, 2:28 PM
rscheff_gmx.at added a comment to D18811: nuke sack_newdata.

Removal of the variable in a cacheline > 4 is not that critical (to retain the alignment of tcpcb at that place still.)

Apr 25 2019, 2:19 PM
rscheff_gmx.at added a comment to D17614: RFC6582 - prevent cwnd to collapse down to 1 mss after exiting recovery.

Lawrence reviewed this during IETF104, Michael volunteered to follup up with the full commit process.

Apr 25 2019, 2:15 PM · transport

Mar 29 2019

rscheff_gmx.at added inline comments to D18624: improvements to support code for RFC6675.
Mar 29 2019, 9:45 AM
rscheff_gmx.at updated the diff for D18624: improvements to support code for RFC6675.
  • fixing curly bracket if branch
  • semantically moving check for new sack data to tcp_input
  • fixed wrong deref to TO struct
Mar 29 2019, 9:42 AM
rscheff_gmx.at updated the diff for D18624: improvements to support code for RFC6675.
  • fixing curly bracket if branch, semantically moving check for new sack data to tcp_input
Mar 29 2019, 9:01 AM
rscheff_gmx.at added a comment to D19334: Receiver Side DSACK (RFC2883) implementation.

Ready to land.

Mar 29 2019, 8:37 AM

Mar 27 2019

rscheff_gmx.at added a comment to D19334: Receiver Side DSACK (RFC2883) implementation.

Need to look into RACK stack and apply similar changes.

Mar 27 2019, 5:58 PM

Mar 25 2019

rscheff_gmx.at added a reviewer for D18892: Phase 2 to add Proportional Rate Reduction (RFC6937) to FreeBSD: hiren.
Mar 25 2019, 3:43 PM

Feb 27 2019

rscheff_gmx.at added a reviewer for D19118: Add Boundary and Overflow checks in Cubic formulas: chengc_netapp.com.
Feb 27 2019, 8:56 PM
rscheff_gmx.at added a reviewer for D18954: Implement Cubic-specific After-Idle reaction: chengc_netapp.com.
Feb 27 2019, 8:56 PM

Feb 24 2019

rscheff_gmx.at added a comment to D19334: Receiver Side DSACK (RFC2883) implementation.

packetdrill test script

Feb 24 2019, 9:51 PM
rscheff_gmx.at created D19334: Receiver Side DSACK (RFC2883) implementation.
Feb 24 2019, 9:46 PM
rscheff_gmx.at retitled D19329: address possible illegal SACK block after FIN when client keeps sending data from don't update rcv_nxt if socket can not receive. to address possible illegal SACK block after FIN when client keeps sending data.
Feb 24 2019, 2:06 PM
rscheff_gmx.at created D19329: address possible illegal SACK block after FIN when client keeps sending data.
Feb 24 2019, 1:52 PM

Feb 23 2019

rscheff_gmx.at added a comment to D18960: Patch to MFC TCP reassembly rewrite to stable/11.

Quick comment: DSACKs are not working in HEAD. Potentially, the tlenp is set to zero for the duplicate segment, so that tcp_update_sack_list is not called to build the DSACK entry to the next ACK. If this is the reason, this patch may break DSACK in BSD11

Feb 23 2019, 10:06 AM

Feb 18 2019

rscheff_gmx.at created D19234: fix cwnd increase for empty acks when not doing ABC.
Feb 18 2019, 10:15 AM
rscheff_gmx.at updated the diff for D19000: Avoid cwnd update for SYN sequence space.
  • Merge branch 'master' into fix-not-rfc3465
  • - remove non-abc fix for cong-avoidance cwnd increase on empty acks
Feb 18 2019, 10:01 AM

Feb 11 2019

rscheff_gmx.at added inline comments to D8253: Cubic changes for improved loss recovery..
Feb 11 2019, 8:16 PM
rscheff_gmx.at updated the diff for D19118: Add Boundary and Overflow checks in Cubic formulas.
  • replace one division with a multiplication, with proper brackets. Taken from D8021
Feb 11 2019, 1:52 PM
rscheff_gmx.at added a comment to D8021: Correctness fixes to Cubic .

Replacing two divisions by one multiplication and one division in cubic.h looks good;

Feb 11 2019, 1:25 PM

Feb 8 2019

rscheff_gmx.at added a comment to D19118: Add Boundary and Overflow checks in Cubic formulas.

While splitting these overflow checks out from the other Diff, I found that there is another typecast overflow, and potential negative overflow in cubic_cwnd.

Feb 8 2019, 4:56 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • removed overflow and boundary checks (see D19118 for details)
Feb 8 2019, 2:36 PM
rscheff_gmx.at updated the test plan for D19118: Add Boundary and Overflow checks in Cubic formulas.
Feb 8 2019, 2:27 PM
rscheff_gmx.at created D19118: Add Boundary and Overflow checks in Cubic formulas.
Feb 8 2019, 2:27 PM

Feb 7 2019

rscheff_gmx.at added a comment to D18954: Implement Cubic-specific After-Idle reaction.

Splitting off the interger overflow changes into another Diff.

Feb 7 2019, 9:21 PM

Feb 6 2019

rscheff_gmx.at added inline comments to D18954: Implement Cubic-specific After-Idle reaction.
Feb 6 2019, 5:18 PM

Feb 5 2019

rscheff_gmx.at updated the diff for D17614: RFC6582 - prevent cwnd to collapse down to 1 mss after exiting recovery.
  • prepare to land
Feb 5 2019, 7:51 PM · transport
rscheff_gmx.at added a comment to D17614: RFC6582 - prevent cwnd to collapse down to 1 mss after exiting recovery.

Over the last two or three weeks, we have run a large number of performance regression tests including this patch, in particular again workloads with frequent app-stalls (no additional data to send for about an RTO interval). That type of workload very often causes burst to be transmitted, including self-inflicted packet drops.

Feb 5 2019, 1:01 PM · transport

Feb 3 2019

rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • sys/libkern.h has implicit typecast to (int) for min/max. Need to use ulmin/ulmax for (long)
  • fixing the limit check from D14141
Feb 3 2019, 6:06 PM
rscheff_gmx.at added inline comments to rS331567: CC Cubic: fix underflow for cubic_cwnd().
Feb 3 2019, 6:05 PM

Feb 2 2019

rscheff_gmx.at added a comment to D19047: TCP Dynamic Burst Limit.

According to this https://www.ietf.org/proceedings/88/slides/slides-88-tcpm-9.pdf Linux - at least at some point - also used a dynamic limit with pipe (inflight) as an input parameter: maxburst = pipe +3.

Feb 2 2019, 9:36 AM

Jan 31 2019

rscheff_gmx.at created D19047: TCP Dynamic Burst Limit.
Jan 31 2019, 6:42 PM
rscheff_gmx.at added inline comments to D19000: Avoid cwnd update for SYN sequence space.
Jan 31 2019, 2:41 PM
rscheff_gmx.at updated the diff for D19000: Avoid cwnd update for SYN sequence space.
  • typo
Jan 31 2019, 11:47 AM
rscheff_gmx.at updated the diff for D19000: Avoid cwnd update for SYN sequence space.
  • consolidate snd_una adjustment for SYN bit
  • set snd_wnd in the generic case in rack
Jan 31 2019, 10:49 AM
rscheff_gmx.at added a comment to D19000: Avoid cwnd update for SYN sequence space.

RACK already increments snd_una to deal with FASTOPEN. Consolidate the snd_una++ in the code then?

Jan 31 2019, 9:43 AM
rscheff_gmx.at added a comment to D19033: Initialise snd_wnd on the server side always before processing the ack.

RACK seems to have a similar code in rack_do_syn_recv.

Jan 31 2019, 9:36 AM
rscheff_gmx.at accepted D19033: Initialise snd_wnd on the server side always before processing the ack.

Maybe a break in line 2433 is actually missing for the original issue (just another thought; browsing the history doesn't show that though). In any case, this change looks sensible enough.

Jan 31 2019, 9:12 AM

Jan 30 2019

rscheff_gmx.at added a comment to D19033: Initialise snd_wnd on the server side always before processing the ack.

So, what you are saying is that this issue here bascially masked the problem reported in PR235256 from happening when window scale was not negotiated.
At least that's what I'm observing, and what the code appears to be saying.

Jan 30 2019, 8:35 PM

Jan 29 2019

rscheff_gmx.at added inline comments to D18897: Add a simple port filter to SIFTR.
Jan 29 2019, 7:54 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • prevent integer overflows of cwnd
Jan 29 2019, 7:36 PM
rscheff_gmx.at added inline comments to D18954: Implement Cubic-specific After-Idle reaction.
Jan 29 2019, 1:05 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • dragging ticks_last_cong along (restricting to INT_MAX)
Jan 29 2019, 1:02 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.

For sufficiently large values of wmax, the calculation in w_tf suffers
for integer overflows in intermediate calculation steps

Jan 29 2019, 11:37 AM

Jan 28 2019

rscheff_gmx.at added a comment to D19000: Avoid cwnd update for SYN sequence space.

The validation scripts for RACK, which was actually similarly affected.

Jan 28 2019, 1:42 PM
rscheff_gmx.at updated the diff for D19000: Avoid cwnd update for SYN sequence space.
  • adding RACK to the SYN bit sequence space fix
Jan 28 2019, 12:37 PM
rscheff_gmx.at updated the diff for D18996: Disallow broken ECN TCP stacks from using ECN.
  • adding RACK stack to ECN handshake check
  • trailing whitespace
Jan 28 2019, 12:28 PM
rscheff_gmx.at updated the summary of D19000: Avoid cwnd update for SYN sequence space.
Jan 28 2019, 11:21 AM
rscheff_gmx.at created D19000: Avoid cwnd update for SYN sequence space.
Jan 28 2019, 11:11 AM
rscheff_gmx.at added a comment to D18996: Disallow broken ECN TCP stacks from using ECN.

Here are two test scripts to validate both the proper behavior of ECN as a client, against a conformant RFC3168 client, as well as a non-conformant client which reflects back all header flags as received:

Jan 28 2019, 10:33 AM
rscheff_gmx.at added a reviewer for D18996: Disallow broken ECN TCP stacks from using ECN: tuexen.
Jan 28 2019, 10:33 AM
rscheff_gmx.at created D18996: Disallow broken ECN TCP stacks from using ECN.
Jan 28 2019, 1:56 AM

Jan 27 2019

rscheff_gmx.at accepted D18974: Use exponential backoff also for SYN segments.

Ok, I've could not remember that there are already hardcoded exceptions for TCP options alreads. Since there is precedent that this is an accepted path to deal with special cases (such as ECN++ against a legacy Linux box, should the stack start doing ECN++, of course), i remove my objection.

Jan 27 2019, 10:31 PM
rscheff_gmx.at added a comment to D18940: Consolidate Initial Window calculations.

I was just starting to validate something around RTO, and found, that the effective IW is now actually 11 SMSS, not 10 MSS, when NOT doing ABC (net.inet.tcp.rfc3465=0).

Jan 27 2019, 10:13 PM
rscheff_gmx.at added inline comments to D18897: Add a simple port filter to SIFTR.
Jan 27 2019, 11:40 AM
rscheff_gmx.at added inline comments to D18974: Use exponential backoff also for SYN segments.
Jan 27 2019, 8:17 AM
rscheff_gmx.at added a comment to D18624: improvements to support code for RFC6675.

A packetdrill script to verfiy the proper operation of the 6675 pipe calculation.

Jan 27 2019, 12:33 AM
rscheff_gmx.at added a comment to D18985: New SACK (RFC6675).

Packetdrill script to validate both new functionalities of Rescue Retransmission, as well as PartialAck with 3 MSS Sack Block to enter Loss Recovery.

Jan 27 2019, 12:26 AM

Jan 26 2019

rscheff_gmx.at updated the diff for D18985: New SACK (RFC6675).
  • missed to revert tcpcb variable name used during testing
Jan 26 2019, 9:38 PM
rscheff_gmx.at set the repository for D18954: Implement Cubic-specific After-Idle reaction to rS FreeBSD src repository.
Jan 26 2019, 9:34 PM
rscheff_gmx.at created D18985: New SACK (RFC6675).
Jan 26 2019, 9:29 PM
rscheff_gmx.at abandoned D18963: explicit NewReno module dependency.
Jan 26 2019, 8:20 PM
rscheff_gmx.at added a comment to D18954: Implement Cubic-specific After-Idle reaction.

This packetdrill script can reliably reproduce the observed issue.

Jan 26 2019, 4:55 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • dangling else; operation validated w/ packetdrill unit testing
Jan 26 2019, 4:37 PM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • typo
Jan 26 2019, 9:16 AM
rscheff_gmx.at updated the diff for D18954: Implement Cubic-specific After-Idle reaction.
  • update cwnd with w_tf only when it is larger (avoid transmission stalls)
Jan 26 2019, 9:07 AM
rscheff_gmx.at added a comment to D18940: Consolidate Initial Window calculations.

packet drill test script for validating that RW == IW after idle

Jan 26 2019, 8:00 AM

Jan 25 2019

rscheff_gmx.at added a comment to D18811: nuke sack_newdata.

Here is one Patch, where the "wrong" variable name holding recovery has been used for SACK in the past: rS132417

Jan 25 2019, 7:43 PM
rscheff_gmx.at created D18963: explicit NewReno module dependency.
Jan 25 2019, 6:14 PM
rscheff_gmx.at added inline comments to D18954: Implement Cubic-specific After-Idle reaction.
Jan 25 2019, 4:41 PM
rscheff_gmx.at added a comment to D18954: Implement Cubic-specific After-Idle reaction.

For the application and client receive window limited case I would like to gather some feedback on my thoughs around this:

Jan 25 2019, 2:06 PM
rscheff_gmx.at added inline comments to D18954: Implement Cubic-specific After-Idle reaction.
Jan 25 2019, 1:45 PM
rscheff_gmx.at updated the diff for D18940: Consolidate Initial Window calculations.

Include RACK in consolidation effort, tcp_compute_initcwnd and tcp_maxseg in rack_after_idle

Jan 25 2019, 1:33 PM
rscheff_gmx.at set the repository for D18954: Implement Cubic-specific After-Idle reaction to rS FreeBSD src repository.
Jan 25 2019, 1:11 PM
rscheff_gmx.at created D18954: Implement Cubic-specific After-Idle reaction.
Jan 25 2019, 1:10 PM

Jan 24 2019

rscheff_gmx.at added a comment to D17614: RFC6582 - prevent cwnd to collapse down to 1 mss after exiting recovery.

Looking at D8225, that all seems to be code while in loss recovery. This patch is to restore a sane minimum cwnd once exiting loss recovery - so I don't see how these would be directly related.

Jan 24 2019, 10:16 PM · transport