Date: Thu, 24 Oct 2002 15:52:08 +0400 From: Nikolai Saoukh <bsd#nms@otdel-1.org> To: freebsd-net@FreeBSD.ORG Subject: Re: For those who had problems with MPD server and win clients Message-ID: <20021024115208.GA23575@otdel1.org> In-Reply-To: <200210201818.g9KIIdqF048199@arch20m.dellroad.org> References: <20021018132732.GA27692@otdel1.org> <200210201818.g9KIIdqF048199@arch20m.dellroad.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Applying patches to mpd does not fix bugs in MS software ;-) In MS software (Win XP Pro SP1 at least) there is the option 'negotiate multi-link for single link connections'. Unfortunately it can't handle it, when succesfully negotiated. One can verify it at (page to frame 82) http://www.otdel-1.org/nms/mpd/wire.txt (~700Kb) MS is not alone. Ethereal-0.9.7 can't handle rfc1990 fragments too ;-( IMHO, to make mpd damnMSproof, the interface mtu for single link scenario should be set to link mru. And if multilink negotiated, then mtu should be decremented for rfc1990 overhead to avoid fragmentation at all. Like this --- bund.c.orig Thu Oct 24 04:10:45 2002 +++ bund.c Thu Oct 24 15:44:12 2002 @@ -547,12 +547,13 @@ mtu = NG_IFACE_MTU_DEFAULT; /* Reset to default settings */ break; case 1: - if (!bund->multilink) { /* If no multilink, use peer MRU */ - mtu = MIN(bund->links[the_link]->lcp.peer_mru, + mtu = MIN(bund->links[the_link]->lcp.peer_mru, bund->links[the_link]->phys->type->mtu); - break; + if (bund->multilink) { + /* If multilink, decrease mtu to avoid MS bug */ + mtu -= 4; /* XXX: proper name for 4? */ } - /* FALLTHROUGH */ + break; default: /* We fragment everything, use bundle MRRU */ mtu = bund->mp.peer_mrru; break; P.S. Anyone knows how to submit bug report to MS & Ethereal? [without silly registrations] To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021024115208.GA23575>