From owner-freebsd-questions@FreeBSD.ORG Sun Aug 3 21:24:59 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DFCB01065679 for ; Sun, 3 Aug 2008 21:24:59 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (oldagora.rdrop.com [199.26.172.34]) by mx1.freebsd.org (Postfix) with ESMTP id A0B178FC16 for ; Sun, 3 Aug 2008 21:24:59 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (66@localhost [127.0.0.1]) by agora.rdrop.com (8.13.1/8.12.7) with ESMTP id m73LOlGf099438 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sun, 3 Aug 2008 14:24:48 -0700 (PDT) (envelope-from perryh@pluto.rain.com) Received: (from uucp@localhost) by agora.rdrop.com (8.13.1/8.12.9/Submit) with UUCP id m73LOlbC099437; Sun, 3 Aug 2008 14:24:47 -0700 (PDT) Received: from fbsd61 by pluto.rain.com (4.1/SMI-4.1-pluto-M2060407) id AA00510; Sun, 3 Aug 08 14:16:25 PDT Date: Sun, 03 Aug 2008 14:16:54 -0700 From: perryh@pluto.rain.com To: nvass@teledomenet.gr, derek@computinginnovations.com, keramida@ceid.upatras.gr Message-Id: <48962046.334w0KWDk7nStfQ/%perryh@pluto.rain.com> References: <488fe865.x7NyNic2A5pcZPCL%perryh@pluto.rain.com> <6.0.0.22.2.20080730155021.024dd828@mail.computinginnovations.com> <87abfzxbbu.fsf@kobe.laptop> <200807311027.37878.nvass@teledomenet.gr> In-Reply-To: <200807311027.37878.nvass@teledomenet.gr> User-Agent: nail 11.25 7/29/05 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: setting the other end's TCP segment size X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Aug 2008 21:25:00 -0000 > > >> Is there a simple way for a FreeBSD system to cause its > > >> peer to use a transmit segment size of, say, 640 bytes -- > > >> so that the peer will never try to send a packet larger > > >> than that? > > >> > > >> I'm trying to get around a network packet-size problem. > > >> In case it matters, the other end is SunOS 4.1.1 on a > > >> sun3, and I've been unable to find a way to limit its > > >> packet size directly. ... > > > Each tcp conversation can have it's own size set along > > > with a bunch of other params. > > > > Good point. The TCP_MAXSEG can reduce the maximum segment > > size for a single TCP connection to something smaller than > > the interface MTU :) That would be OK, provided I could somehow arrange for it to apply to all conversations with this particular destination (which is what the next item seems to do :) > Just adding that MTU can be set per destination with the help > of route(8) and the -mtu modifier. That would be better than setting the local mtu -- which has been causing other problems although it takes care of the original -- and it is a better match to the physical situation. (The culprit is neither the Sun nor the FreeBSD system, but the physical link between the Sun and the hub.) What I haven't been able to come up with is a way of making such a setting permanent. If I've communicated with the Sun recently enough, "netstat -r -W" reports a line like this (some spaces removed, for length, and I've no longer got xl0's mtu set low) Destination Gateway Flags Refs Use Mtu Netif Expire 192.168.200.3 08:00:20:00:a7:a6 UHLW 1 34 1500 xl0 1184 Now if I do # route change 192.168.200.3 -lock -mtu 640 the mtu column changes to 640 and it works fine, but only until the routing entry expires. Adding -static makes no difference -- the entry still expires and loses the mtu specification. I've been unable to come up with a route command that will *create* an entry like that (vs modifying an existing one), nor that will transform a transient entry into a permanent one.