I upgraded my laptop from OpenSolaris 2008.05 (build 86) to build 91 using pkg image-update and I've been experiencing network related issues since then. The problem occurs whenever I try to push any non-trivial amount of data from my laptop to another system. Examples of problematic operations include:

1. Sending an e-mail (any size) from Thunderbird
2. sftp of a local file to a remote system
3. NFS copy of a local file to a remote system

The initial connection seems to take place just fine, but the data transfer stalls out almost immediately and never finishes. I see TCP retransmissions while this is happening (I can provide example wireshark traces directly to anyone who would like to take a look. I've tried this on three different subnets (one of which is my home network) and the behavior is consistent. If I boot the build 86 BE then everything works fine. Does this ring any bells around known issues with this image?

Using a basic test case of sending unix.0 to a remote system using sftp, here are some of the statistics that seem relevent (before and after represent 60 seconds of time... the transfer never completes):

Before:

# netstat -s -P tcp
   ....
   tcpRetransSegs      =    42    tcpRetransBytes     = 52920
   ....
   tcpInDupAck         =    58    tcpInAckUnsent      =     0
   ....
   tcpInDupSegs        =    24    tcpInDupBytes       =  2888
   ....
   tcpRttUpdate        =   780    tcpTimRetrans       =    41

# kstat -m e1000g -n statistics -s "Tx Pkt Over Size"

module: e1000g instance: 0 name: statistics class: net
   Tx Pkt Over Size                60

After:

# netstat -s -P tcp
  ....
  tcpRetransSegs      =    46    tcpRetransBytes     = 58760
   ....
   tcpInDupAck         =    59    tcpInAckUnsent      =     0
   ....
   tcpInDupSegs        =    25    tcpInDupBytes       =  2952
   ....
   tcpRttUpdate        =   792    tcpTimRetrans       =    45

# kstat -m e1000g -n statistics -s "Tx Pkt Over Size"

module: e1000g instance: 0 name: statistics class: net
   Tx Pkt Over Size                68



One interesting observation is that the increase in "Tx Pkt Over Size" is double the increase in "tcpTimRetrans". A previous test case was similar. Any ideas? It seem like a fundamental problem in e1000g or TCP should be breaking all over the place (not just for me) so that makes me a suspect a mis-configuration but I didn't change any parameters during the upgrade nor have I changed anything since.

In case it's interesting to anyone I've attached the script I used to collect the statistics (getstats) and the complete output from the script. Any suggestions are appreciated.

-Peter
netstat -s -P tcp
netstat -s -P ip
kstat -m e1000g -n statistics -s "Tx Pkt Over Size"
sleep 60
netstat -s -P tcp
netstat -s -P ip
kstat -m e1000g -n statistics -s "Tx Pkt Over Size"

TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        tcpActiveOpens      =   247     tcpPassiveOpens     =     6
        tcpAttemptFails     =   185     tcpEstabResets      =     5
        tcpCurrEstab        =    10     tcpOutSegs          =  1741
        tcpOutDataSegs      =   828     tcpOutDataBytes     =190938
        tcpRetransSegs      =    42     tcpRetransBytes     = 52920
        tcpOutAck           =   991     tcpOutAckDelayed    =   289
        tcpOutUrg           =     0     tcpOutWinUpdate     =     0
        tcpOutWinProbe      =     0     tcpOutControl       =   503
        tcpOutRsts          =   192     tcpOutFastRetrans   =     0
        tcpInSegs           =  2803
        tcpInAckSegs        =   833     tcpInAckBytes       =153567
        tcpInDupAck         =    58     tcpInAckUnsent      =     0
        tcpInInorderSegs    =  2050     tcpInInorderBytes   =1998170
        tcpInUnorderSegs    =    68     tcpInUnorderBytes   = 25152
        tcpInDupSegs        =    24     tcpInDupBytes       =  2888
        tcpInPartDupSegs    =     0     tcpInPartDupBytes   =     0
        tcpInPastWinSegs    =     0     tcpInPastWinBytes   =     0
        tcpInWinProbe       =     0     tcpInWinUpdate      =     0
        tcpInClosed         =     3     tcpRttNoUpdate      =     2
        tcpRttUpdate        =   780     tcpTimRetrans       =    41
        tcpTimRetransDrop   =     3     tcpTimKeepalive     =     0
        tcpTimKeepaliveProbe=     0     tcpTimKeepaliveDrop =     0
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =     0


IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =  4406     ipInHdrErrors       =     0
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        ipForwDatagrams     =     0     ipForwProhibits     =    14
        ipInUnknownProtos   =    42     ipInDiscards        =     0
        ipInDelivers        =  3317     ipOutRequests       =  2048
        ipOutDiscards       =     0     ipOutNoRoutes       =     0
        ipReasmTimeout      =    60     ipReasmReqds        =     0
        ipReasmOKs          =     0     ipReasmFails        =     0
        ipReasmDuplicates   =     0     ipReasmPartDups     =     0
        ipFragOKs           =     0     ipFragFails         =     0
        ipFragCreates       =     0     ipRoutingDiscards   =     0
        tcpInErrs           =     0     udpNoPorts          =  1451
        udpInCksumErrs      =     0     udpInOverflows      =     0
        rawipInOverflows    =     0     ipsecInSucceeded    =     0
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     0     ipOutSwitchIPv6     =     1

module: e1000g                          instance: 0     
name:   statistics                      class:    net
        Tx Pkt Over Size                60


TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        tcpActiveOpens      =   247     tcpPassiveOpens     =     6
        tcpAttemptFails     =   185     tcpEstabResets      =     5
        tcpCurrEstab        =    10     tcpOutSegs          =  1761
        tcpOutDataSegs      =   844     tcpOutDataBytes     =197288
        tcpRetransSegs      =    46     tcpRetransBytes     = 58760
        tcpOutAck           =   995     tcpOutAckDelayed    =   292
        tcpOutUrg           =     0     tcpOutWinUpdate     =     0
        tcpOutWinProbe      =     0     tcpOutControl       =   503
        tcpOutRsts          =   192     tcpOutFastRetrans   =     0
        tcpInSegs           =  2819
        tcpInAckSegs        =   845     tcpInAckBytes       =154077
        tcpInDupAck         =    59     tcpInAckUnsent      =     0
        tcpInInorderSegs    =  2057     tcpInInorderBytes   =1998748
        tcpInUnorderSegs    =    68     tcpInUnorderBytes   = 25152
        tcpInDupSegs        =    25     tcpInDupBytes       =  2952
        tcpInPartDupSegs    =     0     tcpInPartDupBytes   =     0
        tcpInPastWinSegs    =     0     tcpInPastWinBytes   =     0
        tcpInWinProbe       =     0     tcpInWinUpdate      =     0
        tcpInClosed         =     3     tcpRttNoUpdate      =     2
        tcpRttUpdate        =   792     tcpTimRetrans       =    45
        tcpTimRetransDrop   =     3     tcpTimKeepalive     =     0
        tcpTimKeepaliveProbe=     0     tcpTimKeepaliveDrop =     0
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =     0


IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =  4447     ipInHdrErrors       =     0
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        ipForwDatagrams     =     0     ipForwProhibits     =    14
        ipInUnknownProtos   =    43     ipInDiscards        =     0
        ipInDelivers        =  3335     ipOutRequests       =  2072
        ipOutDiscards       =     0     ipOutNoRoutes       =     0
        ipReasmTimeout      =    60     ipReasmReqds        =     0
        ipReasmOKs          =     0     ipReasmFails        =     0
        ipReasmDuplicates   =     0     ipReasmPartDups     =     0
        ipFragOKs           =     0     ipFragFails         =     0
        ipFragCreates       =     0     ipRoutingDiscards   =     0
        tcpInErrs           =     0     udpNoPorts          =  1473
        udpInCksumErrs      =     0     udpInOverflows      =     0
        rawipInOverflows    =     0     ipsecInSucceeded    =     0
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     0     ipOutSwitchIPv6     =     1

module: e1000g                          instance: 0     
name:   statistics                      class:    net
        Tx Pkt Over Size                68

_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to