An error occurred while fetching folder content.
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
Hangbin Liu authored
[ Upstream commit bd085ef6 ]

The MTU update code is supposed to be invoked in response to real
networking events that update the PMTU. In IPv6 PMTU update function
__ip6_rt_update_pmtu() we called dst_confirm_neigh() to update neighbor
confirmed time.

But for tunnel code, it will call pmtu before xmit, like:
  - tnl_update_pmtu()
    - skb_dst_update_pmtu()
      - ip6_rt_update_pmtu()
        - __ip6_rt_update_pmtu()
          - dst_confirm_neigh()

If the tunnel remote dst mac address changed and we still do the neigh
confirm, we will not be able to update neigh cache and ping6 remote
will failed.

So for this ip_tunnel_xmit() case, _EVEN_ if the MTU is changed, we
should not be invoking dst_confirm_neigh() as we have no evidence
of successful two-way communication at this point.

On the other hand it is also important to keep the neigh reachability fresh
for TCP flows, so we cannot remove this dst_confirm_ne...
d49ce85c
Name Last commit Last update
..
accessibility treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 70
acpi ACPI: button: Add DMI quirk for Medion Akoya E2215T
amba Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
android binder: fix incorrect calculation for num_valid
ata libata: Ensure ata_port probe has completed before detach
atm atm: he: clean up an indentation issue
auxdisplay Merge tag 'docs-5.4' of git://git.lwn.net/linux
base firmware_loader: Fix labels with comma for builtin firmware
bcma bcma: make arrays pwr_info_offset and sprom_sizes static const, shrinks object size
block nbd: fix shutdown and recv work deadlock v2
bluetooth Bluetooth: btusb: avoid unused function warning
bus bus: ti-sysc: Fix watchdog quirk handling
cdrom cdrom: respect device capabilities during opening action
char tpm: fix invalid locking in NONBLOCKING mode
clk clk: pxa: fix one of the pxa RTC clocks
clocksource clocksource/drivers/timer-of: Use unique device name instead of timer
connector connector: remove redundant input callback from cn_dev
counter counter/ftm-quaddec: Use device-managed registration API
cpufreq cpufreq: Register drivers only after CPU devices have been registered
cpuidle cpuidle: use first valid target residency as poll time
crypto crypto: vmx - Avoid weird build failures
dax Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
dca treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 33
devfreq PM / devfreq: Lock devfreq in trans_stat_show
dio treewide: Add SPDX license identifier - Makefile/Kconfig
dma-buf
dma
edac
eisa
extcon
firewire
firmware
fpga
fsi
gnss
gpio
gpu
greybus
hid
hsi
hv
hwmon
hwspinlock
hwtracing
i2c
i3c
ide
idle
iio
infiniband
input
interconnect
iommu
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md
media
memory
memstick
message
mfd
misc
mmc
mtd
mux
net
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
opp
oprofile
parisc
parport
pci
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc