[ovs-dev] [PATCH] dpif-netlink-rtnl: Retry a smaller MTU for netdev when MAX_MTU is too large.

Yifeng Sun pkusunyifeng at gmail.com
Fri Jul 6 20:19:41 UTC 2018


Oh yes, I missed that when I tried to make code look compact.

Thanks for pointing it out.
Yifeng

On Fri, Jul 6, 2018 at 1:17 PM, Ben Pfaff <blp at ovn.org> wrote:

> On Thu, Jul 05, 2018 at 11:55:46AM -0700, Yifeng Sun wrote:
> > When MAX_MTU is larger than hw supported max MTU,
> > dpif_netlink_rtnl_create will fail. This leads to
> > testing failure '11: datapath - ping over gre tunnel'
> > in 'make check-kmod'.
> >
> > This patch fixes this issue by retrying a smaller MTU
> > when MAX_MTU is too large.
> >
> > Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
>
> ...
>
> > -        int err2 = nl_transact(NETLINK_ROUTE, &request, NULL);
> > +         * https://bugzilla.redhat.com/show_bug.cgi?id=1488484.
> > +         *
> > +         * In case of MAX_MTU exceeds hw max MTU, retry a smaller
> value. */
> > +        int err2 = rtnl_set_mtu(name, MAX_MTU, &request) &&
> > +                   rtnl_set_mtu(name, 1450, &request);
>
> Probably, this should be more like:
>
>         int err2 = rtnl_set_mtu(name, MAX_MTU, &request);
>         if (err2) {
>             err2 = rtnl_set_mtu(name, 1450, &request);
>         }
>
> because if you use && then the result is 0 or 1, not 0 or an errno
> value.
>
> Thanks,
>
> Ben.
>


More information about the dev mailing list