On Tue, 9 Apr 2002, Tim Woodall wrote:

> On Mon, 4 Mar 2002, Tim Woodall wrote:
> 
> > 
> > Here is the command I am using to get a particular file: (wrapped)
> > 
> > wget -m --passive-ftp -T 15 -w 3 ftp://ftp:tim.locofungus.org@;
> > ftp.mirror.ac.uk/sites/ftp.redhat.com/pub/redhat/linux/updates
> > /7.2/en/os/i386/php-manual-4.0.6-12.i386.rpm
> > 
> <snip>
> 
> > I have now tried a couple of times manually and it has failed twice at about
> > 1.6M
> > 
> > The connection dies at this point and no further traffic will go over it
> > until pppd is killed and restarted. (I am using iptables to nat the ftp
> > connection)
> > 
> 
> I have now done some more investigations. It appears that a longish block
> of 0xff is enough to kill an ftp connection (and the modem)
> 
> I have discovered that the connection also dies if I use a standard
> tcp connection to attempt to send 10k of 0xff data with a packet size of
> 1450. It didn't die with a packet size of 1400 (only one test though)
> (I was using port 22 (ssh) as that was the easiest port to use without
> modifying my firewall)
> 
> This only affects downloads, not uploads.
> 
Some more investigation (and a "fix" you really don't want to use :-)

[tim@pauli /home/tim/cvs/speedtouch]$ cvs diff src/pppoa3.c
Index: src/pppoa3.c
===================================================================
RCS file: /cvsroot/speedtouch/speedtouch/src/pppoa3.c,v
retrieving revision 1.20
diff -u -r1.20 pppoa3.c
--- src/pppoa3.c        20 Mar 2002 09:26:46 -0000      1.20
+++ src/pppoa3.c        10 Apr 2002 21:37:22 -0000
@@ -787,6 +787,7 @@

                /* Reads 64*53 bytes from usb */
                do {
+                       usleep(900);
                        n = pusb_endpoint_read(ep_data, lbuf, sizeof(lbuf), 0);
                } while (n < 0 && (errno == EINTR || errno == ETIMEDOUT));

@@ -826,6 +827,7 @@
                                /* Writes the result buffer */
                                if(ppp_write(STDOUT_FILENO, ppp_write_buf, n + 
HDLC_HEADER_SIZE) > 0)
                                        report(2, REPORT_DEBUG|REPORT_DATE, "Extracted 
PPP packet sent to ppp(d)\n\n");
+                               usleep(100);

                        }


This halves my download rate to about 35k/sec but does seem to avoid the connection 
hanging.

My machine is very low spec but isn't doing anything else:

[root@heisenberg bin]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 5
model           : 2
model name      : Pentium 75 - 200
stepping        : 11
cpu MHz         : 132.957
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : yes
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8
bogomips        : 265.42


Anyone any ideas?

The only things I can think of are - a. reading the usb too fast for my 
machine or b. doing the ppp_write too fast. The hdlc conversion will
double the size of the packet for 0xff which will (presumably) be done
by the kernel. Perhaps if I put the hdlc conversion code in pppoa3 it
might help?

Tim.


-- 
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

        

Reply via email to