git: tcp: Fix window scaling for accecpted socket
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Fri Apr 27 01:22:56 PDT 2012
commit df1d2774875776b9ee946a447abd7a9ab8bd7052
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Fri Apr 27 14:49:07 2012 +0800
tcp: Fix window scaling for accecpted socket
- Retire tcpcb.requested_s_scale, use tcpcb.snd_scale directly.
- Set tcpcb.snd_wnd in SYN_SENT state only if the TCP flags contains SYN.
- Save other side advertised window into syncache, and setup tcpcb.snd_wnd
according to the save value after the 3-way hand shake is done.
- Delay tiwin setup in tcp_input(), specificly after tcpcb.snd_scale is
setup on the SO_ACCEPTCONN path.
This tends to fix the window scaling bug: when the sender accepts
connection and data only follow from sender to receiver.
Summary of changes:
sys/netinet/tcp_input.c | 44 ++++++++++++++++++--------------------------
sys/netinet/tcp_syncache.c | 7 ++++++-
sys/netinet/tcp_var.h | 2 +-
3 files changed, 25 insertions(+), 28 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/df1d2774875776b9ee946a447abd7a9ab8bd7052
--
DragonFly BSD source repository
More information about the Commits
mailing list