On Fri, Jan 12, 2018 at 12:44:59PM -0800, Ben Pfaff wrote: > The kernel GRE driver ignores IFLA_MTU in RTM_NEWLINK requests and > overrides the MTU to 1472 bytes. This commit works around the problem by > following up a request to create a GRE device with a second request to set > the MTU. > > Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1488484 > Reported-by: Eric Garver <[email protected]> > Reported-by: James Page <[email protected]> > Signed-off-by: Ben Pfaff <[email protected]> > --- > This is not properly tested. It needs to be tested before it makes sense > to commit it. > > lib/dpif-netlink-rtnl.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/lib/dpif-netlink-rtnl.c b/lib/dpif-netlink-rtnl.c > index fe9c8ed7104f..0bf965d29f41 100644 > --- a/lib/dpif-netlink-rtnl.c > +++ b/lib/dpif-netlink-rtnl.c > @@ -329,6 +329,19 @@ dpif_netlink_rtnl_create(const struct > netdev_tunnel_config *tnl_cfg, > nl_msg_end_nested(&request, linkinfo_off); > > err = nl_transact(NETLINK_ROUTE, &request, NULL); > + if (!err && type == OVS_VPORT_TYPE_GRE) { > + /* Work around a bug in kernel GRE driver, which ignores IFLA_MTU in > + * RTM_NEWLINK, by setting the MTU again. See > + * https://bugzilla.redhat.com/show_bug.cgi?id=1488484. */ > + ofpbuf_clear(&request); > + nl_msg_put_nlmsghdr(&request, 0, RTM_SETLINK, > + NLM_F_REQUEST | NLM_F_ACK); > + ofpbuf_put_zeros(&request, sizeof(struct ifinfomsg)); > + nl_msg_put_string(&request, IFLA_IFNAME, name); > + nl_msg_put_u32(&request, IFLA_MTU, UINT16_MAX); > + > + err = nl_transact(NETLINK_ROUTE, &request, NULL); > + } > > exit: > ofpbuf_uninit(&request); > -- > 2.10.2 >
This looks sane to me. It would be nice if James could test it though. Acked-by: Eric Garver <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
