1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel/ixgbe
Jiri Benc 94d166c531 vxlan: calculate correct header length for GPE
VXLAN-GPE does not add an extra inner Ethernet header. Take that into
account when calculating header length.

This causes problems in skb_tunnel_check_pmtu, where incorrect PMTU is
cached.

In the collect_md mode (which is the only mode that VXLAN-GPE
supports), there's no magic auto-setting of the tunnel interface MTU.
It can't be, since the destination and thus the underlying interface
may be different for each packet.

So, the administrator is responsible for setting the correct tunnel
interface MTU. Apparently, the administrators are capable enough to
calculate that the maximum MTU for VXLAN-GPE is (their_lower_MTU - 36).
They set the tunnel interface MTU to 1464. If you run a TCP stream over
such interface, it's then segmented according to the MTU 1464, i.e.
producing 1514 bytes frames. Which is okay, this still fits the lower
MTU.

However, skb_tunnel_check_pmtu (called from vxlan_xmit_one) uses 50 as
the header size and thus incorrectly calculates the frame size to be
1528. This leads to ICMP too big message being generated (locally),
PMTU of 1450 to be cached and the TCP stream to be resegmented.

The fix is to use the correct actual header size, especially for
skb_tunnel_check_pmtu calculation.

Fixes: e1e5314de0 ("vxlan: implement GPE")
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-07-24 09:37:32 +01:00
..
ixgbe.h ixgbe: Remove unnecessary aer.h include 2023-03-08 23:34:39 -08:00
ixgbe_82598.c ixgbe: Fix typos in comments 2022-06-09 10:05:31 -07:00
ixgbe_82599.c ixgbe: use checker safe conversions 2021-05-26 09:11:41 -07:00
ixgbe_common.c ixgbe: Filter out spurious link up indication 2023-01-13 09:42:15 -08:00
ixgbe_common.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82598.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82598.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82599.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82599.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_nl.c intel: remove unused macros 2022-06-30 09:40:55 -07:00
ixgbe_debugfs.c netdev: pass the stuck queue to the timeout handler 2019-12-12 21:38:57 -08:00
ixgbe_ethtool.c ixgbe: Enable setting RSS table to default values 2023-04-20 16:20:05 -07:00
ixgbe_fcoe.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
ixgbe_fcoe.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_ipsec.c ixgbe: fill IPsec state validation failure reason 2023-01-26 16:28:48 -08:00
ixgbe_ipsec.h ixgbe: propagate XFRM offload state direction instead of flags 2022-05-06 08:32:52 +02:00
ixgbe_lib.c ixgbe: Fix panic during XDP_TX with > 64 CPUs 2023-04-27 11:54:33 +02:00
ixgbe_main.c vxlan: calculate correct header length for GPE 2023-07-24 09:37:32 +01:00
ixgbe_mbx.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_mbx.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_model.h ixgbe: cleanup sparse warnings 2018-05-17 08:24:30 -07:00
ixgbe_phy.c ixgbe: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
ixgbe_phy.h ixgbe: Check DDM existence in transceiver before access 2019-06-26 09:18:54 -07:00
ixgbe_ptp.c ixgbe: Remove unneeded semicolon 2022-11-04 11:09:57 -07:00
ixgbe_sriov.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-21 13:03:39 -07:00
ixgbe_sriov.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_sysfs.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_txrx_common.h ixgbe, xsk: Terminate Rx side of NAPI when XSK Rx queue gets full 2022-04-15 21:10:45 +02:00
ixgbe_type.h ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_x540.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
ixgbe_x540.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_x550.c ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_xsk.c ixgbe, xsk: Get rid of redundant 'fallthrough' 2022-04-21 16:31:10 +02:00
Makefile ixgbe/ixgbevf: fix XFRM_ALGO dependency 2018-10-31 10:53:15 -07:00