From 0643ae70f59b28cb0661454981c0620da2bb93a5 Mon Sep 17 00:00:00 2001 From: tickerguy Date: Wed, 19 Oct 2022 12:39:32 -0400 Subject: [PATCH] Update BridgeUnix.c On FreeBSD the stock code will attempt to expand the interface MTU any time a packet is to be sent that exceeds the current MTU. This results in a down/up on the interface that is wildly disruptive to existing services on that adapter and, eventually, is likely to run into MTU limits and start logging failures, even with jumbo-frame capable adapters. Thus if compiling on a FreeBSD machine disable this capability. Tested against 12.3-STABLE and 13.1-STABLE on v4.38-9760 from the FreeBSD ports tree but likely applies here as well; see bug report https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267178 --- src/Cedar/BridgeUnix.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Cedar/BridgeUnix.c b/src/Cedar/BridgeUnix.c index d5890cba..ce2b1ffc 100644 --- a/src/Cedar/BridgeUnix.c +++ b/src/Cedar/BridgeUnix.c @@ -805,7 +805,12 @@ bool EthIsChangeMtuSupported(ETH *e) return false; } +// FreeBSD seriously dislikes MTU changes; disable if compiled on that platform +#ifndef __FreeBSD__ return true; +#else + return false; +#endif #else // defined(UNIX_LINUX) || defined(UNIX_BSD) || defined(UNIX_SOLARIS) return false; #endif // defined(UNIX_LINUX) || defined(UNIX_BSD) || defined(UNIX_SOLARIS)