On Tue, Feb 16, 2016 at 4:33 AM, David Wragg <david@weave.works> wrote: > diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c > index 028e387..f57f9bc 100644 > --- a/drivers/net/geneve.c > +++ b/drivers/net/geneve.c > @@ -37,6 +37,9 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with > corrupted ECN"); > > #define GENEVE_VER 0 > #define GENEVE_BASE_HLEN (sizeof(struct udphdr) + sizeof(struct genevehdr)) > +#define GENEVE_MAX_OPTIONS_LEN (63 * 4) > +#define GENEVE_MAX_MTU (IP_MAX_MTU - sizeof(struct iphdr) - GENEVE_BASE_HLEN > \ > + - GENEVE_MAX_OPTIONS_LEN)
In addition to Tom's comment about taking into account dev->hard_header_len, can you please not include GENEVE_MAX_OPTIONS_LEN in the MTU calculation based on the discussion on the other thread? Otherwise, you are excluding some potentially valid configurations.