First, an example of the non-RFC6675-pipe SACK loss recovery packet sequence:
```
// Testing base-stack SACK loss recovery
// with only a single SACK option block
// returned from the receiver
--tolerance_usecs=100000
0.0 `sync` // in case of crash
+0.01 `sysctl net.inet.tcp.cc.algorithm=newreno`
+0.01 `sysctl net.inet.tcp.initcwnd_segments=10`
+0.01 `sysctl net.inet.tcp.ecn.enable=0`
+0.01 `sysctl net.inet.tcp.rfc6675_pipe=0`
+0.01 `sysctl net.inet.tcp.hostcache.purgenow=1`
// Create a listening TCP socket.
+0.50 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0.01 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0.01 setsockopt(3, SOL_SOCKET, SO_SNDBUF, [1048576], 4) = 0
+0.01 setsockopt(3, SOL_SOCKET, SO_DEBUG, [1], 4) = 0
+0.01 bind(3, ..., ...) = 0
+0.01 listen(3, 1) = 0
// Establish a TCP connection.
+0.04 < S 0:0(0) win 65535 <mss 1000, sackOK, wscale 10, eol, nop, nop >
+0.00 > S. 0:0(0) ack 1 win 65535 <mss 1460,nop,wscale 6,sackOK,eol,eol>
+0.00 < . 1:1(0) ack 1 win 65535
+0.00 accept(3, ..., ...) = 4
+0.01 setsockopt(4, SOL_SOCKET, SO_DEBUG, [1], 4) = 0
// ACK initial window, to grow cwnd to sufficient size
1.00 write(4, ..., 30000) = 30000
+0 > . 1:1001(1000) ack 1
+0 < . 1:1(0) ack 1001 win 65535
+0 > . 1001:2001(1000) ack 1
+0 < . 1:1(0) ack 2001 win 65535
+0 > . 2001:3001(1000) ack 1
+0 < . 1:1(0) ack 3001 win 65535
+0 > . 3001:4001(1000) ack 1
+0 < . 1:1(0) ack 4001 win 65535
+0 > . 4001:5001(1000) ack 1
+0 < . 1:1(0) ack 5001 win 65535
+0 > . 5001:6001(1000) ack 1
+0 < . 1:1(0) ack 6001 win 65535
+0 > . 6001:7001(1000) ack 1
+0 < . 1:1(0) ack 7001 win 65535
+0 > . 7001:8001(1000) ack 1
+0 < . 1:1(0) ack 8001 win 65535
+0 > . 8001:9001(1000) ack 1
+0 < . 1:1(0) ack 9001 win 65535
+0 > . 9001:10001(1000) ack 1
+0 < . 1:1(0) ack 10001 win 65535
// in the next window, we simulate the losses
+0 > . 10001:11001(1000) ack 1 // drop
+0 > . 11001:12001(1000) ack 1
+0 > . 12001:13001(1000) ack 1
+0 > . 13001:14001(1000) ack 1 // drop
+0 > . 14001:15001(1000) ack 1
+0 > . 15001:16001(1000) ack 1
+0 > . 16001:17001(1000) ack 1 // drop
+0 > . 17001:18001(1000) ack 1
+0 > . 18001:19001(1000) ack 1
+0 > . 19001:20001(1000) ack 1 // drop
+0 > . 20001:21001(1000) ack 1
+0 > . 21001:22001(1000) ack 1
+0 > . 22001:23001(1000) ack 1 // drop
+0 > . 23001:24001(1000) ack 1
+0 > . 24001:25001(1000) ack 1
+0 > . 25001:26001(1000) ack 1 // drop
+0 > . 26001:27001(1000) ack 1
+0 > . 27001:28001(1000) ack 1
+0 > . 28001:29001(1000) ack 1 // drop
+0 > P. 29001:30001(1000) ack 1
// and now we validate the ordering of the retransmissions
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 11001:12001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 11001:13001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 14001:15001, nop, nop>
* > . 10001:11001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 14001:16001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 17001:18001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 17001:19001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 20001:21001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 20001:22001, nop, nop>
* > . 13001:14001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 23001:24001, nop, nop>
* > . 16001:17001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 23001:25001, nop, nop>
* > . 19001:20001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 26001:27001, nop, nop>
* > . 22001:23001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 26001:28001, nop, nop>
* > . 25001:26001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 29001:30001, nop, nop>
* > . 28001:29001(1000) ack 1
+0.01 < . 1:1(0) ack 13001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 16001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 19001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 22001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 25001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 28001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 30001 win 65535
+1.00 close(4) = 0
`sysctl net.inet.tcp.rfc6675_pipe=0`
```
Then, the old RFC6675-pipe sequence:
```
```
And finally, the change with this Patch:
```
// Testing D18624 RFC6675 pipe SACK loss recovery
// with only a single SACK option block
// returned from the receiver
--tolerance_usecs=100000
0.0 `sync` // in case of crash
+0.01 `sysctl net.inet.tcp.cc.algorithm=newreno`
+0.01 `sysctl net.inet.tcp.initcwnd_segments=10`
+0.01 `sysctl net.inet.tcp.ecn.enable=0`
+0.01 `sysctl net.inet.tcp.rfc6675_pipe=1`
+0.01 `sysctl net.inet.tcp.hostcache.purgenow=1`
// Create a listening TCP socket.
+0.50 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0.01 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0.01 setsockopt(3, SOL_SOCKET, SO_SNDBUF, [1048576], 4) = 0
+0.01 setsockopt(3, SOL_SOCKET, SO_DEBUG, [1], 4) = 0
+0.01 bind(3, ..., ...) = 0
+0.01 listen(3, 1) = 0
// Establish a TCP connection.
+0.04 < S 0:0(0) win 65535 <mss 1000, sackOK, wscale 10, eol, nop, nop >
+0.00 > S. 0:0(0) ack 1 win 65535 <mss 1460,nop,wscale 6,sackOK,eol,eol>
+0.00 < . 1:1(0) ack 1 win 65535
+0.00 accept(3, ..., ...) = 4
+0.01 setsockopt(4, SOL_SOCKET, SO_DEBUG, [1], 4) = 0
// ACK initial window, to grow cwnd to sufficient size
1.00 write(4, ..., 30000) = 30000
+0 > . 1:1001(1000) ack 1
+0 < . 1:1(0) ack 1001 win 65535
+0 > . 1001:2001(1000) ack 1
+0 < . 1:1(0) ack 2001 win 65535
+0 > . 2001:3001(1000) ack 1
+0 < . 1:1(0) ack 3001 win 65535
+0 > . 3001:4001(1000) ack 1
+0 < . 1:1(0) ack 4001 win 65535
+0 > . 4001:5001(1000) ack 1
+0 < . 1:1(0) ack 5001 win 65535
+0 > . 5001:6001(1000) ack 1
+0 < . 1:1(0) ack 6001 win 65535
+0 > . 6001:7001(1000) ack 1
+0 < . 1:1(0) ack 7001 win 65535
+0 > . 7001:8001(1000) ack 1
+0 < . 1:1(0) ack 8001 win 65535
+0 > . 8001:9001(1000) ack 1
+0 < . 1:1(0) ack 9001 win 65535
+0 > . 9001:10001(1000) ack 1
+0 < . 1:1(0) ack 10001 win 65535
// in the next window, we simulate the losses
+0 > . 10001:11001(1000) ack 1 // drop
+0 > . 11001:12001(1000) ack 1
+0 > . 12001:13001(1000) ack 1
+0 > . 13001:14001(1000) ack 1 // drop
+0 > . 14001:15001(1000) ack 1
+0 > . 15001:16001(1000) ack 1
+0 > . 16001:17001(1000) ack 1 // drop
+0 > . 17001:18001(1000) ack 1
+0 > . 18001:19001(1000) ack 1
+0 > . 19001:20001(1000) ack 1 // drop
+0 > . 20001:21001(1000) ack 1
+0 > . 21001:22001(1000) ack 1
+0 > . 22001:23001(1000) ack 1 // drop
+0 > . 23001:24001(1000) ack 1
+0 > . 24001:25001(1000) ack 1
+0 > . 25001:26001(1000) ack 1 // drop
+0 > . 26001:27001(1000) ack 1
+0 > . 27001:28001(1000) ack 1
+0 > . 28001:29001(1000) ack 1 // drop
+0 > P. 29001:30001(1000) ack 1
// and now we validate the ordering of the retransmissions
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 11001:12001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 11001:13001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 14001:15001, nop, nop>
* > . 10001:11001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 14001:16001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 17001:18001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 17001:19001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 20001:21001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 20001:22001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 23001:24001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 23001:25001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 26001:27001, nop, nop>
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 26001:28001, nop, nop>
* > . 13001:14001(1000) ack 1
+0.01 < . 1:1(0) ack 10001 win 65535 <sack 29001:30001, nop, nop>
* > . 16001:17001(1000) ack 1
+0.01 < . 1:1(0) ack 13001 win 65535 <sack 29001:30001, nop, nop>
* > . 19001:20001(1000) ack 1
* > . 22001:23001(1000) ack 1
+0.01 < . 1:1(0) ack 16001 win 65535 <sack 29001:30001, nop, nop>
* > . 25001:26001(1000) ack 1
* > . 28001:29001(1000) ack 1
+0.01 < . 1:1(0) ack 19001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 22001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 25001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 28001 win 65535 <sack 29001:30001, nop, nop>
+0.01 < . 1:1(0) ack 30001 win 65535
+1.00 close(4) = 0
`sysctl net.inet.tcp.rfc6675_pipe=0`
```