Message ID | 1569567500-20113-1-git-send-email-yanhaishuang@cmss.chinamobile.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | erspan: remove the incorrect mtu limit for erspan | expand |
From: Haishuang Yan <yanhaishuang@cmss.chinamobile.com> Date: Fri, 27 Sep 2019 14:58:20 +0800 > erspan driver calls ether_setup(), after commit 61e84623ace3 > ("net: centralize net_device min/max MTU checking"), the range > of mtu is [min_mtu, max_mtu], which is [68, 1500] by default. > > It causes the dev mtu of the erspan device to not be greater > than 1500, this limit value is not correct for ipgre tap device. > > Tested: > Before patch: > # ip link set erspan0 mtu 1600 > Error: mtu greater than device maximum. > After patch: > # ip link set erspan0 mtu 1600 > # ip -d link show erspan0 > 21: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1600 qdisc noop state DOWN > mode DEFAULT group default qlen 1000 > link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0 > > Fixes: 61e84623ace3 ("net: centralize net_device min/max MTU checking") > Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com> Applied and queued up for -stable.
On Thu, Sep 26, 2019 at 11:59 PM Haishuang Yan <yanhaishuang@cmss.chinamobile.com> wrote: > > erspan driver calls ether_setup(), after commit 61e84623ace3 > ("net: centralize net_device min/max MTU checking"), the range > of mtu is [min_mtu, max_mtu], which is [68, 1500] by default. > > It causes the dev mtu of the erspan device to not be greater > than 1500, this limit value is not correct for ipgre tap device. > > Tested: > Before patch: > # ip link set erspan0 mtu 1600 > Error: mtu greater than device maximum. > After patch: > # ip link set erspan0 mtu 1600 > # ip -d link show erspan0 > 21: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1600 qdisc noop state DOWN > mode DEFAULT group default qlen 1000 > link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0 > > Fixes: 61e84623ace3 ("net: centralize net_device min/max MTU checking") > Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com> > --- Thanks for the patch! Acked-by: William Tu <u9012063@gmail.com> > net/ipv4/ip_gre.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c > index a53a543..52690bb 100644 > --- a/net/ipv4/ip_gre.c > +++ b/net/ipv4/ip_gre.c > @@ -1446,6 +1446,7 @@ static void erspan_setup(struct net_device *dev) > struct ip_tunnel *t = netdev_priv(dev); > > ether_setup(dev); > + dev->max_mtu = 0; > dev->netdev_ops = &erspan_netdev_ops; > dev->priv_flags &= ~IFF_TX_SKB_SHARING; > dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; > -- > 1.8.3.1 > > >
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index a53a543..52690bb 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c @@ -1446,6 +1446,7 @@ static void erspan_setup(struct net_device *dev) struct ip_tunnel *t = netdev_priv(dev); ether_setup(dev); + dev->max_mtu = 0; dev->netdev_ops = &erspan_netdev_ops; dev->priv_flags &= ~IFF_TX_SKB_SHARING; dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
erspan driver calls ether_setup(), after commit 61e84623ace3 ("net: centralize net_device min/max MTU checking"), the range of mtu is [min_mtu, max_mtu], which is [68, 1500] by default. It causes the dev mtu of the erspan device to not be greater than 1500, this limit value is not correct for ipgre tap device. Tested: Before patch: # ip link set erspan0 mtu 1600 Error: mtu greater than device maximum. After patch: # ip link set erspan0 mtu 1600 # ip -d link show erspan0 21: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1600 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 0 Fixes: 61e84623ace3 ("net: centralize net_device min/max MTU checking") Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com> --- net/ipv4/ip_gre.c | 1 + 1 file changed, 1 insertion(+)