Derrick Brashear wrote:
On Fri, May 15, 2009 at 4:37 PM, Douglas E. Engert <[email protected]> wrote:
We are having problems with Mac OS 10.4 and 10.5  using Cisco VPN
AFS can become unusable.  Mac 10.4 is running OpenAFS 1.4.8 for sure.
I think the Mac 10.5 is running OpenAFS 1.5.59.

Using rxdebug and looking at the natMTU parameter, on most Unix systems
this is 1444,(1500 - 56) as expected. On Windows systems this is usually
1260.  And on MAC it is 1444.

Even if I set the interface mtu 1244, and reboot the MAC, rxdebug shows
the interface is using 1244 but rxdebug continues to show a natMTU = 1444.
as though it still assumed the mtu was 1500.

So it looks like the MAC client is not getting the existingMTU
from the OS in util/netutils.c

are you willing to test a patch?


Looking closer and doing some testing, rx_kcommon.c appears to use
in a number of places when it can not determine what interface will be use:

pp->ifMTU = RX_REMOTE_PACKET_SIZE

In rx_packet.h:
#define RX_REMOTE_PACKET_SIZE   (1500 - RX_IPUDP_SIZE)

This is based on 1500 as an MTU. But in the case of the VPN, the MTU
needs to be smaller, like 1300 so the pp->ifMTU  should be 1244.

I would suspect that the RX_REMOTE_PACKET_SIZE should at least be based
on the smallest MTU of any interface that might be used. The Windows version
of AFS added the registry rxMaxMtu which get around this same type of problem.
Maybe all systems should have this capability?

Using  the attached patch on 1.4.10  MacOS 10.4.11 I can at least get the
ifMTU and natMTU set to 1244, (and need to test with the VPN.)


--

 Douglas E. Engert  <[email protected]>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
--- ,rx_kcommon.c       Fri Mar 27 10:55:45 2009
+++ rx_kcommon.c        Fri May 22 13:14:22 2009
@@ -441,7 +441,7 @@
     } else {                   /* couldn't find the interface, so assume the 
worst */
        pp->timeout.sec = 3;
        /* pp->timeout.usec = 0; */
-       pp->ifMTU = RX_REMOTE_PACKET_SIZE;
+       pp->ifMTU = RX_REMOTE_PACKET_SIZE-200;
     }
 #endif /* else AFS_USERSPACE_IP_ADDR */
 #else /* AFS_SUN5_ENV */

Reply via email to