veth: set peer GSO values
authorStephen Hemminger <stephen@networkplumber.org>
Thu, 7 Dec 2017 23:40:20 +0000 (15:40 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Mar 2018 07:42:54 +0000 (08:42 +0100)
[ Upstream commit 72d24955b44a4039db54a1c252b5031969eeaac3 ]

When new veth is created, and GSO values have been configured
on one device, clone those values to the peer.

For example:
   # ip link add dev vm1 gso_max_size 65530 type veth peer name vm2

This should create vm1 <--> vm2 with both having GSO maximum
size set to 65530.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/veth.c

index f5438d0..a69ad39 100644 (file)
@@ -410,6 +410,9 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
        if (ifmp && (dev->ifindex != 0))
                peer->ifindex = ifmp->ifi_index;
 
+       peer->gso_max_size = dev->gso_max_size;
+       peer->gso_max_segs = dev->gso_max_segs;
+
        err = register_netdevice(peer);
        put_net(net);
        net = NULL;