mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
vxlan: Update hard_header_len based on lowerdev when instantiating VXLAN
In the event of a VXLAN device being linked to a device that has a hard_header_len greater than that of standard ethernet we could end up with the hard_header_len not being large enough for outgoing frames. In order to prevent this we should update the length when a lowerdev is provided. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
eb5ce43997
commit
1ba56fb45a
1 changed files with 4 additions and 0 deletions
|
@ -1102,6 +1102,10 @@ static int vxlan_newlink(struct net *net, struct net_device *dev,
|
||||||
|
|
||||||
if (!tb[IFLA_MTU])
|
if (!tb[IFLA_MTU])
|
||||||
dev->mtu = lowerdev->mtu - VXLAN_HEADROOM;
|
dev->mtu = lowerdev->mtu - VXLAN_HEADROOM;
|
||||||
|
|
||||||
|
/* update header length based on lower device */
|
||||||
|
dev->hard_header_len = lowerdev->hard_header_len +
|
||||||
|
VXLAN_HEADROOM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data[IFLA_VXLAN_TOS])
|
if (data[IFLA_VXLAN_TOS])
|
||||||
|
|
Loading…
Reference in a new issue