Newsgroups: comp.unix.aix
Date: Wed,  8 Apr 1992 00:52:36 -0400 
From: Sean.Levy@cs.cmu.edu
Subject: SLIP problems under AIX 3.1.5 (rs6k)

Background: I've been having a HELL of a time using SLIP from an
rs6000 running AIX 3.1.5 at my house to the CMU campus network. Amoung
my various problems are: firing up X clients generally brings the SLIP
connection down, FTPing files quite often has the same effect, the
connection dies unexpectedly and/or just plain freezes, etc.

After a session on the phone with a CMU networking guru (who had a
sniffer in front of him and analyzed some packet traces in detail), he
sent me the following message:

> Sean,
>     I think I found the problem with your X windows and your FTP. The
> trouble is that the IBM implementation of SLIP sets the TCP maximum
> segment size (MSS) to a value that's slightly too large (966). 
> 
>     The result is that if you FTP files from a host on ethernet to your
> machine, and the file is greater than 966 characters long, it will cause
> IP datagrams to be fragmented before they are transmitted over the SLIP
> link. This means that your machine will appear to be very slow in
> picking up files over the SLIP link with FTP because your IP module has
> to reassemble data from a slow SLIP link before it can forward that data
> up to the TCP module. 
> 
>     Another problem seems to arise when you try to FTP files over the
> SLIP link. I think that what's happenning is that the MSS is set to a
> value that's incorrect; it's set to 966. After 40 bytes of TCP and IP
> headers are added, and the SLIP header is added, the total datagram size
> is 1007 bytes - too large to be received at the other end by the Annex
> (the Annex drops oversize packets). [By the way, the SLIP header is
> simply 0xC0 sent before each IP packet, and optionally immediately after
> each packet.] 
> 
>     If you can, try looking at the files /usr/sys/net/if_sl.c and
> /usr/sys/netinet/tcp_input.c. Inside the first file is the definition
> for the SLIP MTU size. The second defines a routine called tcp_mss(),
> which calculates the Maximum segment size.  This all assumes that the
> IBM kernel is structured somehow like the BSD sources. 
>     If you can spot how they start with an MTU size of 1006, subtract
> off one byte for the SLIP header, another 40 for TCP and IP headers and
> still get a value of 966 for the maximum segment size for TCP, then you
> should adjust that, and rebuild your kernel. 
>     If you can't diddle with this, whether because this isn't possible
> (you might only have a binary distribution), or else you're
> uncomfortable diddling with your kernel, you should be able to get a fix
> from IBM somehow...

So, anyone out there care to comment? Any fixes available? /usr/sys
is not populated on this machine, but then, I didn't expect that, what
with my previous experience with AIX (I come from a thoroughly BSD
background... :-). In fact, I have a more generic question on this
point, which I will post separately.

Any information would be most appreciated.

Cheers,
	-- Sean

P.S. I appologize for the rather too long .signature in my previous
posting; it wasn't meant to leave the confines of CMU. At any rate,
I've decided long .sigs are not my cup o tea... Sorry 'bout that. --S

--
Sean Levy <snl+@cmu.edu>		   `... from intuition we can pass to
CMU Engineering Design Research Center      analysis, but not from analysis to
ndim Group                                  intuition.' --Henri Bergson
                      <--  Standard Disclaimers Apply  -->
Newsgroups: comp.unix.aix