Re: Degradation of TCP connection
- From: justin.pearson@xxxxxxxxx
- Date: Wed, 6 Aug 2008 18:49:51 -0700 (PDT)
Bill,
Thanks again for your swift and knowledgeable responses. I've
downloaded pcattcp from here
http://www.pcausa.com/Utilities/ttcpdown1.htm
and tried it out. It appears as though I can blast my target with
zillions of packets and it continues, on the surface, to chug along
happily. The Windows machine receives all the frames it expects in a
timely manner, and running ifconfig() on the target does indeed show
the huge number of dropped Rx packets, as we expected. Does this mean
that none of the exceptions you mentioned, e.g.
- exception in tNetTask (or possibly ipnetd using the new IPNET stack
in 6.5)
- exception in interrupt context (buggy interrupt service routine?)
- RX stall (possibly due to mishandled RX overrun in the driver)
- TX stall (possibly due to incorrectly implemented TX cleanup
handling, or mishandled TX underrun)
- RX and TX stall (possibly due to interrupts getting masked off and
not re-enabled, or driver state getting hosed due to a race
condition)
- sluggish response on target shell (possibly due to driver doing too
much work in interrupt context, or making excessive use of intLock()/
intUnlock())
are occurring?
Also, I've got a tool called Colasoft Capsa Packet Builder, which lets
you construct and edit packets, then send them out. If we're thinking
that the driver or network stack might barf if it gets crummy packets,
I could maybe construct some malformed packets with this program and
ship them out on the network. Do you think this would be a fruitful
approach?
You mentioned some of the causes of being unable to receive packets:
- The RX state in the driver may have fallen out of sync with the chip
- The receiver encountered an error from which the driver couldn't
recover
- RX interrupts have stopped firing
- _all_ interrupts for that port have stopped firing (if TX interrupts
have also stopped, the driver may still be able to send packets onto
the wire for a short time)
Can you please suggest some ways I can test for these cases? My
knowledge of this level of detail of driver/OS architecture is pretty
sparse...!
Lastly, thanks for the heads up with muxShow(). The second NIC didn't
show up, and I remember one of my coworkers mentioning having to
enable it in the BSP.
Thanks again for your time and attention,
Justin
.
- Follow-Ups:
- Re: Degradation of TCP connection
- From: noisetube
- Re: Degradation of TCP connection
- References:
- Re: Degradation of TCP connection
- From: justin . pearson
- Re: Degradation of TCP connection
- From: justin . pearson
- Re: Degradation of TCP connection
- From: noisetube
- Re: Degradation of TCP connection
- Prev by Date: Problem using cacheDmaMalloc
- Next by Date: Any SMBus Driver for Miscowabic Peak.
- Previous by thread: Re: Degradation of TCP connection
- Next by thread: Re: Degradation of TCP connection
- Index(es):
Relevant Pages
|