Eli Dart wrote:
see below...
Julian Elischer wrote:
Eli Dart wrote:
Stephen Clark wrote:
So was any decision reached on this issue - will FreeBSD changed
to accept a packet on an interface that is larger than the mtu on
that interface?
If possible, I'd like to see the ability to enforce interface MTU
for received packets preserved in a sysctl if it is removed for the
default config... In other words, something like:
net.link.mtu_limits_received_pktsize = 0|1
Then, default it to 0 to preserve 4.x behavior.
what would this achieve?
Answering himself.. it MAY allow a driver to optimise a bit by not
needing to cope with the posibility of receiving jubo packets? I can
not think of any other reason.. (except to break networks that are
apparently working fine).
The networks that are apparently working fine are most likely
misconfigured, IMHO.
Others have made a case for permitting an interface to accept as large a
packet as it can, regardless of configured MTU. That's fine for theory.
My operational experience leads me to a different place. If an
interface receives a packet that is larger than its configured MTU, I
would prefer that the packet be dropped as a giant and a giants counter
incremented, regardless of whether the hardware can theoretically
receive the packet. In modern networks, an MTU mismatch within a
broadcast domain indicates a broken network, IMHO. If the devices in
the network are configured to enforce MTU for both tx and rx, more
problems get spotted during turnup, rather than surfacing later on as
difficult-to-diagnose problems that users only call about after they are
truly frustrated. And, if you have a giants counter (or input error
counter) you can look at, it makes it straightforward to spot the problem.
(one could also stretch a bit and say that enforcing MTU on rx might
provide less surprise to code that consumes packets and has knowledge of
the MTU setting of an interface.....unfortunately I don't know enough
about the details of the network stack to know if this is a real concern)
then we should have an MRU value.
mtu is mTu
note that if the following code is what is doing it, it is only enabled in
DIAGNOSTIC mode anyhow.
#ifdef DIAGNOSTIC
if (m->m_pkthdr.len >
ETHER_MAX_FRAME(ifp, etype, m->m_flags & M_HASFCS) &&
(ifp->if_capenable & IFCAP_LRO) == 0) {
if_printf(ifp, "discard oversize frame "
"(ether type %x flags %x len %u > max %lu)\n",
etype, m->m_flags, m->m_pkthdr.len,
ETHER_MAX_FRAME(ifp, etype,
m->m_flags & M_HASFCS));
ifp->if_ierrors++; m_freem(m);
return;
}
personally I'd just remove it.
Many thanks,
--eli
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"