*BSD News Article 14073


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!ux1.cso.uiuc.edu!news.cso.uiuc.edu!dclipc18.cen.uiuc.edu!rb6775
From: rb6775@dclipc18.cen.uiuc.edu (Rafal Krzysztof Boni)
Subject: Re: NFS PROBLEMS AFTER PATCH 0.2.2
Date: Tue, 6 Apr 1993 04:04:16 GMT
Message-ID: <C51nB4.7t7@news.cso.uiuc.edu>
References: <733572001snz@feline.demon.co.uk> <C4ttG9.2qB@news.cso.uiuc.edu> <Apr.5.21.43.08.1993.3135@geneva.rutgers.edu>
Sender: usenet@news.cso.uiuc.edu (Net Noise owner)
Organization: University of Illinois at Urbana
Lines: 56

hedrick@geneva.rutgers.edu (Charles Hedrick) writes:

>rkb55989@uxa.cso.uiuc.edu (Rafal) writes:

>>	I am running a 0.2.1 system, and am seeing similar problems. Just
>>	for reference, I am running over SLIP, with my MTU [on the BSD box]
>>	set at the standard 296.  The terminal server I connect to claims it
>>	is using an MTU of 1536, but all works with the standard BSD MTU,
>>	except NFS [well, it works somewhat].

>I'm basing these comments on general BSD knowledge, not specific
>knowledge of the 386bsd code.  TCP should be no problem.  The kernel
>will send a TCP MSS option when opening the connection.  The MSS it
>chooses will be based on the MTU.  Assuming that the other end
>implements MSS correctly (I've seen some oddities with Solaris), no
>TCP packet will exceed 296 bytes, and you'll be fine.  There is no
>equivalent mechanism for UDP.  Typically NFS is implemented on top of
>UDP.  Assuming that the other system is on an Ethernet, it will
>fragment the NFS transmission into 1500-byte UDP packets.  Since the
>terminal server has a full-size MTU, it will pass those packets
>unchanged.  Unfortunately, the BSD SLIP implemenetations that I've
>seen will throw away any incoming packets larger than its MTU.  So
>you lose.

>If this occurs with 386bsd, I can see several possible solutions:
>  - increase the MTU to 1500 bytes (or whatever number you need
>	to account for overhead).

	How does one do this?? My experiment with simply pumping the  #define
	in if_sl.c (or .h) did not seem to work... I got gobs of collisions 
	being reported my netstat...

>  - decrease the terminal server MTU to 296 (or whatever number
>	is needed to account for overhead).  At least with Cisco
>	terminal servers, that will cause the terminal server
>	to fragment the packets to 296 bytes.  BSD should 
>	then be able to handle them.

	I wish I could, but I'm not am employee of the campus computer sevices
	office [not that they's let me do it in that case anyway].

>  - specify rsize=296 (minus some number of overhead bytes, I
>	suspect).  But I have a feeling this isn't going to be
>	practical.

	This did not really seem to fix the problem...


	I will try some more stuff and follow up.... Thanks for the input.
					Rafal

/------------------------------------------------------------------------\
|Rafal Boni					       	  r-boni@uiuc.edu|
|"Me have a .sig?? I don't even have a clue!"	rkb55989@uxa.cso.uiuc.edu|
|                        -Anonymous          rb6775@caffeine.cen.uiuc.edu|
\------------------------------------------------------------------------/