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