tcp/sack: If other side reneged, discard the current SACK scoreboard
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 30 May 2012 01:43:50 +0000 (09:43 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 30 May 2012 01:43:50 +0000 (09:43 +0800)
commit9ba0ed2f0a35e061e17843329b9a1e64e8a47181
treeca81f703aa75475f8a8cc138be9a4074319ebbd2
parent401c752a1960c193055c3ab3e6830eb2f259d1f4
tcp/sack: If other side reneged, discard the current SACK scoreboard

Other side reneging is detected using the first SACK record:
If its left edge is less than or equal to the cumulative ACK of the
incoming segment, other side probably reneged.

This fixes the later assertion that the first SACK record's left edge
must be above snd_una in tcp_sack_first_unsacked_len()

Add statistics about other side reneging
sys/netinet/tcp_sack.c
sys/netinet/tcp_var.h
usr.bin/netstat/inet.c