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