On Sat, 13 Apr 2002, Hamish Marson wrote: > Tim Woodall wrote: > > > On Sat, 13 Apr 2002, Hamish Marson wrote: > > > > > > > > Hi all... > > > > > > I still have a series of network 'black holes' with the speedtouch > > > drivers... They all appear to co-incide with pppoa3 logging CRC errors > > > in AAL5 frames (As far as I can tell anyway). > > > > > > I've seen one or two other posts about this. I'm wondering if there > > > could be a problem with certain sequences of bytes that would cause > > > this... The main symptom is that transfers start & hen stall. Re-trying > > > it the transfer stalls at exactly the same place every time. The file > > > transfers correctly from the location back to my work account, and I can > > > ssh it from there to home, but it's really annoying. Sometimes it's > > > pictures, sometimes executables. I don't believe I've had the problem > > > with text, but then it usually happens at around the 57kByte mark in a > > > download... > > > > > > Anyone got any ideas? > > > > > > Oh. I've noticed when pppoa3 gets a CRC error, it just throws things > > > away. Shouldn't it ask for a re-transmit? Or have I missed that bit? > > > > > As far as the retransmit goes, no, pppoa3 doesn't have to do anything, > > TCP will handle the missing packets. > > > > That's just it... It doesn't seem to... Because... > > What it looks like when you watch the traffic with something like ethereal is a >stream of tcp > packets coming in, then one with incorrect SEQ/ACK numbers in it. The tcp stack on >the client > asks for it to be re-transmitted, but it comes back identical. Almost as though >theres some > corruption happening with certain byte sequences, and it's consistent... > > TCP re-transmits alright... But it' just gets the same wrong packet back to the >client... > Maybe I should try using something to sniff the traffic. I had assumed that it was the pppoa3 stalling.
Once you have hit one of these "black holes" does anything work? i.e. can you ping other sites or do you have to kill pppd and restart it? > I'll try your suggestions anyway & see what happens... > The patch doesn't even nearly apply however the following one does and also fixes my error (you will probably want to disable kernel logging before using this otherwise your logs will grow _very_ big very fast. Regards, Tim. [tim@pauli /home/tim/cvs/speedtouch]$ cvs diff src/pusb-linux.c Index: src/pusb-linux.c =================================================================== RCS file: /cvsroot/speedtouch/speedtouch/src/pusb-linux.c,v retrieving revision 1.7 diff -u -r1.7 pusb-linux.c --- src/pusb-linux.c 4 Feb 2002 22:45:19 -0000 1.7 +++ src/pusb-linux.c 13 Apr 2002 14:47:46 -0000 @@ -280,6 +280,8 @@ } +#include "pppoa3.h" + /* * Function : pusb_endpoint_rw * Return value : ioctl returned value @@ -305,7 +307,7 @@ do { ret = ioctl(fd,USBDEVFS_BULK,&bulk); - } while (ret < 0 && errno == EINTR); + } while (ret < 0 && (errno == EINTR || errno == ETIMEDOUT) ); if (ret < 0) return(ret); @@ -331,7 +333,8 @@ { if(timeout == 0) - return pusb_endpoint_rw_no_timeout(ep->fd,ep->ep|USB_DIR_OUT,buf,size); + return pusb_endpoint_rw(ep->fd,ep->ep|USB_DIR_OUT,buf,size,300); +/* return +pusb_endpoint_rw_no_timeout(ep->fd,ep->ep|USB_DIR_OUT,buf,size);*/ return(pusb_endpoint_rw(ep->fd,ep->ep|USB_DIR_OUT,buf,size,timeout)); @@ -349,7 +352,8 @@ { if(timeout == 0) - return(pusb_endpoint_rw_no_timeout(ep->fd,ep->ep|USB_DIR_IN,buf,size)); + return pusb_endpoint_rw(ep->fd,ep->ep|USB_DIR_IN,buf,size,300); +/* return +pusb_endpoint_rw_no_timeout(ep->fd,ep->ep|USB_DIR_IN,buf,size);*/ return(pusb_endpoint_rw(ep->fd,ep->ep|USB_DIR_IN,buf,size,timeout)); -- God said, "div D = rho, div B = 0, curl E = - @B/@t, curl H = J + @D/@t," and there was light. http://tjw.hn.org/ http://www.locofungus.btinternet.co.uk/ Liste de diffusion modem ALCATEL SpeedTouch USB Pour se désinscrire : mailto:[EMAIL PROTECTED]?subject=unsubscribe