On Tue, Nov 28, 2006 at 09:04:16PM -0800, David Miller wrote: > > > Definitely. I'm not sure whether 48 is enough even for recursive > > tunnels. This should really just be a hint. It's OK to spend a > > bit of time reallocating skb's if it's too small, but it's not OK > > to die. > > The recursive tunnel case is handled by the PMTU reductions > in the route, isn't it?
Oh I wasn't suggesting that the current code is broken. I'm just emphasising that LL_MAX_HEADER is by no means the *maximum* header size in a Linux system. Anybody should be able to load a new NIC module with a hard header size exceeding what LL_MAX_HEADER is and the system should still function (albeit slower since every packet sent down that device has to be reallocated). In particular, nested tunnels is one such device which anybody can construct without writing a kernel module. As to getting rid of those ifdefs, here is one idea. We keep a read-mostly global variable that represents the actual current maximum LL header size. Everytime a new device appears (or if its hard header size changes) we update this variable if needed. Hmm, we don't actually update the hard header size should the underlying device change for tunnels. Good thing the tunnels only use that as a hint and reallocate if necessary :) This is not optimal in that it never decreases, but it's certainly better than a compile-time constant (e.g., people using distribution kernels don't necessarily use tunnels). Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html