Maciej Żenczykowski
a5721c5332
net/ipv4: always honour route mtu during forwarding
...
Documentation/networking/ip-sysctl.txt:46 says:
ip_forward_use_pmtu - BOOLEAN
By default we don't trust protocol path MTUs while forwarding
because they could be easily forged and can lead to unwanted
fragmentation by the router.
You only need to enable this if you have user-space software
which tries to discover path mtus by itself and depends on the
kernel honoring this information. This is normally not the case.
Default: 0 (disabled)
Possible values:
0 - disabled
1 - enabled
Which makes it pretty clear that setting it to 1 is a potential
security/safety/DoS issue, and yet it is entirely reasonable to want
forwarded traffic to honour explicitly administrator configured
route mtus (instead of defaulting to device mtu).
Indeed, I can't think of a single reason why you wouldn't want to.
Since you configured a route mtu you probably know better...
It is pretty common to have a higher device mtu to allow receiving
large (jumbo) frames, while having some routes via that interface
(potentially including the default route to the internet) specify
a lower mtu.
Note that ipv6 forwarding uses device mtu unless the route is locked
(in which case it will use the route mtu).
This approach is not usable for IPv4 where an 'mtu lock' on a route
also has the side effect of disabling TCP path mtu discovery via
disabling the IPv4 DF (don't frag) bit on all outgoing frames.
I'm not aware of a way to lock a route from an IPv6 RA, so that also
potentially seems wrong.
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Sunmeet Gill (Sunny) <sgill@qti.qualcomm.com>
Cc: Vinay Paradkar <vparadka@qti.qualcomm.com>
Cc: Tyler Wear <twear@qti.qualcomm.com>
Cc: David Ahern <dsahern@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
(Backported from commit 02a1b175b0e92d9e0fa5df3957ade8d733ceb6a0).
Change-Id: I26f336f891711f0149b2835d2c4a78fc8407b5ba
Git-Commit: 02a1b175b0e92d9e0fa5df3957ade8d733ceb6a0
Git-repo: https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux
Signed-off-by: Sauvik Saha <ssaha@codeaurora.org>
2020-11-06 10:36:16 +05:30
..
9p
bluetooth
Bluetooth: Align minimum encryption key size for LE and BR/EDR connections
2019-07-10 09:55:34 +02:00
caif
caif: reduce stack size with KASAN
2019-05-08 07:19:07 +02:00
irda
iucv
netfilter
Merge android-4.9.224(5791e89) into msm-4.9
2020-05-22 14:58:17 +08:00
netns
inet: switch IP ID generator to siphash
2019-08-25 10:51:42 +02:00
nfc
NFC: Fix the number of pipes
2018-09-29 03:07:30 -07:00
phonet
phonet: fix building with clang
2019-03-23 13:19:44 +01:00
sctp
sctp: cache netns in sctp_ep_common
2019-12-05 15:35:29 +01:00
tc_act
net/sched: act_tunnel_key: fix NULL dereference when 'goto chain' is used
2018-08-24 13:12:37 +02:00
6lowpan.h
6lowpan: add 802.15.4 short addr slaac
2016-06-15 20:41:22 -07:00
act_api.h
net sched: fix reporting the first-time use timestamp
2020-06-03 08:16:25 +02:00
addrconf.h
This is the 4.9.224 stable release
2020-05-20 11:46:34 +02:00
af_ieee802154.h
af_rxrpc.h
rxrpc: Rewrite the data and ack handling code
2016-09-08 11:10:12 +01:00
af_unix.h
af_unix: split 'u->readlock' into two: 'iolock' and 'bindlock'
2016-09-04 13:29:29 -07:00
af_vsock.h
vsock: split dwork to avoid reinitializations
2018-08-22 07:47:13 +02:00
ah.h
arp.h
ipv4: Define __ipv4_neigh_lookup_noref when CONFIG_INET is disabled
2019-06-11 12:22:49 +02:00
atmclip.h
ax25.h
ax25: fix possible use-after-free
2019-02-23 09:05:59 +01:00
ax88796.h
bond_3ad.h
bonding: 3ad: apply ad_actor settings changes immediately
2016-02-09 04:45:49 -05:00
bond_alb.h
bond_options.h
bonding.h
bonding: avoid possible dead-lock
2018-10-18 09:13:21 +02:00
busy_poll.h
calipso.h
calipso: Add a label cache.
2016-06-27 15:06:17 -04:00
cfg80211-wext.h
cfg80211.h
cfg80211: Support key configuration for Beacon protection (BIGTK)
2020-04-13 14:04:23 +05:30
cfg802154.h
ieee802154: add netns support
2016-07-08 12:20:57 +02:00
checksum.h
csum: Update csum_block_add to use rotate instead of byteswap
2016-03-13 15:01:00 -04:00
cipso_ipv4.h
netlabel: out of bound access in cipso_v4_validate()
2017-02-18 15:11:41 +01:00
cls_cgroup.h
cls_cgroup: get sk_classid only from full sockets
2016-04-19 20:09:25 -04:00
cnss.h
Merge "cnss: Add support for PCIe WLAN IPA uc SMMU feature"
2018-07-26 07:45:06 -07:00
cnss2.h
cnss2: Sync code from kernel 4.14
2020-05-17 20:19:19 -07:00
cnss_logger.h
cnss: Add support of cnss driver
2018-02-08 16:32:00 +08:00
cnss_nl.h
cnss_nl: Add new attributes for cld80211 attr list
2020-03-07 00:19:25 +05:30
cnss_prealloc.h
wcnss: Fix buffer overflow in wcnss_prealloc_get
2018-09-12 16:05:33 +05:30
cnss_utils.h
cnss_utils: Add support for derived MAC address
2017-11-09 15:08:16 -08:00
codel.h
codel: split into multiple files
2016-04-25 16:44:27 -04:00
codel_impl.h
codel: split into multiple files
2016-04-25 16:44:27 -04:00
codel_qdisc.h
net_sched: fq_codel: cache skb->truesize into skb->cb
2016-06-25 12:19:35 -04:00
compat.h
packet: compat support for sock_fprog
2016-06-09 23:41:03 -07:00
datalink.h
dcbevent.h
dcbnl.h
devlink.h
devlink: remove unused priv_size
2016-08-26 11:55:18 -07:00
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
net: dsa: add port fast ageing
2016-09-23 08:38:50 -04:00
dsfield.h
dst.h
net: dst: Force 4-byte alignment of dst_metrics
2020-01-04 13:40:19 +01:00
dst_cache.h
net: add dst_cache support
2016-02-16 20:21:48 -05:00
dst_metadata.h
net/dst: Utility functions to build dst_metadata without supplying an skb
2016-09-10 20:53:55 -07:00
dst_ops.h
esp.h
ethoc.h
fib_rules.h
This is the 4.9.217 stable release
2020-03-20 11:01:08 +01:00
firewire.h
flow.h
UPSTREAM: flow: Extend flow informations with xfrm interface id.
2018-10-26 21:39:51 -07:00
flow_dissector.h
net: sched: correct flower port blocking
2020-03-11 07:53:05 +01:00
flowcache.h
fou.h
fou: Add encap ops for IPv6 tunnels
2016-05-20 18:03:16 -04:00
fq.h
net/flow_dissector: switch to siphash
2019-11-10 11:23:31 +01:00
fq_impl.h
net/flow_dissector: switch to siphash
2019-11-10 11:23:31 +01:00
garp.h
gen_stats.h
net: sched: do not acquire qdisc spinlock in qdisc/class stats dump
2016-06-07 16:37:14 -07:00
genetlink.h
Revert "genl: Add genlmsg_new_unicast() for unicast message allocation"
2016-02-18 11:42:19 -05:00
geneve.h
net: Remove deprecated tunnel specific UDP offload functions
2016-06-17 20:23:32 -07:00
gre.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-08-18 01:17:32 -04:00
gro_cells.h
gro_cells: make sure device is up in gro_cells_receive()
2019-03-19 13:14:10 +01:00
gtp.h
gtp: #define #define _GTP_H_ and not #define _GTP_H
2016-07-25 17:55:43 -07:00
gue.h
hwbm.h
net: add a hardware buffer management helper API
2016-03-14 12:19:46 -04:00
icmp.h
net: Add __icmp_send helper.
2019-03-13 14:04:53 -07:00
ieee80211_radiotap.h
mac80211: add support for radiotap timestamp field
2016-09-12 11:45:45 +02:00
ieee802154_netdev.h
mac802154: constify ieee802154_llsec_ops structure
2016-01-04 20:40:41 +01:00
if_inet6.h
UPSTREAM: net/ipv6: allow sysctl to change link-local address generation mode
2019-08-15 21:01:57 +00:00
ila.h
ila: Add generic ILA translation facility
2015-12-15 23:25:20 -05:00
inet6_connection_sock.h
ipv6: remove unused in6_addr struct
2016-03-22 15:45:44 -04:00
inet6_hashtables.h
tcp/dccp: do not touch listener sk_refcnt under synflood
2016-04-04 22:11:20 -04:00
inet_common.h
ip4ip6: Support for GSO/GRO
2016-05-20 18:03:17 -04:00
inet_connection_sock.h
tcp/dccp: drop SYN packets if accept queue is full
2019-03-27 14:13:04 +09:00
inet_ecn.h
ipv6: suppress sparse warnings in IP6_ECN_set_ce()
2016-08-13 15:08:00 -07:00
inet_frag.h
net: IP defrag: encapsulate rbtree defrag code into callable functions
2019-05-02 09:32:06 +02:00
inet_hashtables.h
tcp/dccp: fix possible race __inet_lookup_established()
2020-01-04 13:41:12 +01:00
inet_sock.h
This is the 4.9.134 stable release
2018-10-18 19:18:13 +02:00
inet_timewait_sock.h
soreuseport: initialise timewait reuseport field
2018-05-16 10:08:41 +02:00
inetpeer.h
net: ipv4: use a dedicated counter for icmp_v4 redirect packets
2019-02-23 09:05:59 +01:00
ip.h
net/ipv4: always honour route mtu during forwarding
2020-11-06 10:36:16 +05:30
ip6_checksum.h
ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short
2016-03-13 23:55:13 -04:00
ip6_fib.h
ipv6: fix sparse warning on rt6i_node
2017-09-20 08:19:53 +02:00
ip6_route.h
This is the 4.9.220 stable release
2020-04-24 08:34:09 +02:00
ip6_tunnel.h
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
2019-07-21 09:05:57 +02:00
ip_fib.h
net: ipv4: Fix memory leak in network namespace dismantle
2019-01-31 08:12:33 +01:00
ip_tunnels.h
ip_tunnel: add collect_md mode to IPIP tunnel
2016-09-17 10:13:07 -04:00
ip_vs.h
ipvs: move old_secure_tcp into struct netns_ipvs
2019-11-12 19:15:57 +01:00
ipcomp.h
ipconfig.h
ipv6.h
net: ipv6: add net argument to ip6_dst_lookup_flow
2020-05-20 08:15:30 +02:00
ipv6_frag.h
ip6: fix skb leak in ip6frag_expire_frag_queue()
2019-09-16 08:19:33 +02:00
ipx.h
iw_handler.h
wext: handle NULL extra data in iwe_stream_add_point better
2017-08-11 08:49:34 -07:00
kcm.h
kcm: Use stream parser
2016-08-17 19:36:23 -04:00
l3mdev.h
ipvlan, l3mdev: fix broken l3s mode wrt local routes
2019-02-06 17:33:27 +01:00
lapb.h
lib80211.h
llc.h
llc: avoid blocking in llc_sap_close()
2019-11-25 09:52:18 +01:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc: fix sk_buff leak in llc_conn_service()
2019-11-06 12:18:24 +01:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
lwtunnel.h
lwtunnel: valid encap attr check should return 0 when lwtunnel is disabled
2017-02-18 15:11:42 +01:00
mac80211.h
mac80211: round IEEE80211_TX_STATUS_HEADROOM up to multiple of 4
2018-05-30 07:50:28 +02:00
mac802154.h
ieee802154: cleanup WARN_ON for fc fetch
2016-07-08 13:23:12 +02:00
mip6.h
mld.h
mpls.h
openvswitch: use mpls_hdr
2016-10-03 02:00:22 -04:00
mpls_iptunnel.h
mrp.h
ncsi.h
net/ncsi: Introduce ncsi_stop_dev()
2016-10-04 02:11:51 -04:00
ndisc.h
UPSTREAM: ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier
2020-03-28 11:11:24 +00:00
neighbour.h
Merge android-4.9.209(c830063) into msm-4.9
2020-03-13 15:47:19 +08:00
net_namespace.h
netns: provide pure entropy for net_hash_mix()
2019-04-17 08:36:46 +02:00
net_ratelimit.h
netevent.h
neigh: Send a notification when DELAY_PROBE_TIME changes
2016-07-05 09:06:29 -07:00
netlabel.h
netlabel: Implement CALIPSO config functions for SMACK.
2016-06-27 15:06:18 -04:00
netlink.h
netlink: fix nla_put_{u8,u16,u32} for KASAN
2017-10-12 11:51:25 +02:00
netprio_cgroup.h
netrom.h
nexthop.h
net: fix rtnh_ok()
2018-05-16 10:08:41 +02:00
nl802154.h
ieee802154: add netns support
2016-07-08 12:20:57 +02:00
p8022.h
ping.h
net: ping: make ping_v6_sendmsg static
2016-03-23 22:09:58 -04:00
pkt_cls.h
net/sched: pkt_cls: change tc actions order to be as the user sets
2016-09-28 05:02:44 -04:00
pkt_sched.h
net_sched: Add flow control support to prio qdisc
2017-03-22 17:37:14 -06:00
pptp.h
pptp: Refactor the struct and macros of PPTP codes
2016-08-15 10:55:53 -07:00
protocol.h
udp: Remove udp_offloads
2016-04-07 16:53:30 -04:00
psnap.h
raw.h
sock: struct proto hash function may error
2016-02-11 03:54:14 -05:00
rawv6.h
red.h
net_sched: red: Avoid illegal values
2018-02-25 11:05:48 +01:00
regulatory.h
regulatory: add NUL to request alpha2
2018-05-30 07:50:30 +02:00
request_sock.h
inet: reqsk_alloc() needs to take care of dead listeners
2016-04-04 22:11:19 -04:00
rmnet_config.h
net: rmnet_data: Add snapshot of rmnet_data driver
2016-11-01 20:02:26 -06:00
rose.h
route.h
This is the 4.9.104 stable release
2018-05-30 13:19:56 +02:00
rtnetlink.h
net: rtnetlink: add support for the IFLA_STATS_LINK_XSTATS_SLAVE attribute
2016-06-30 06:15:04 -04:00
sch_generic.h
sch_netem: fix rcu splat in netem_enqueue()
2019-11-06 12:18:25 +01:00
scm.h
unix: correctly track in-flight fds in sending process user_struct
2016-02-08 10:30:42 -05:00
secure_seq.h
slhc_vj.h
slip: Check if rstate is initialized before uncompressing
2018-04-20 08:21:07 +02:00
snmp.h
net: snmp: fix 64bit stats on 32bit arches
2016-04-28 11:49:45 -04:00
sock.h
Merge android-4.9.208(9759f95) into msm-4.9
2020-03-12 15:59:20 +08:00
sock_reuseport.h
soreuseport: fix NULL ptr dereference SO_REUSEPORT after bind
2016-01-19 14:44:23 -05:00
Space.h
stp.h
strparser.h
kcm: Remove TCP specific references from kcm and strparser
2016-08-28 23:32:41 -04:00
switchdev.h
switchdev: remove FIB offload infrastructure
2016-09-28 04:48:00 -04:00
tcp.h
Merge android-4.9.221(cf77b7c) into msm-4.9
2020-05-11 17:25:31 +08:00
tcp_states.h
timewait_sock.h
transp_v6.h
ipv6: add new struct ipcm6_cookie
2016-05-03 16:08:14 -04:00
tso.h
udp.h
udp6: set rx_dst_cookie on rx_dst updates
2017-10-09 16:01:04 -06:00
udp_tunnel.h
vxlan: Add new UDP encapsulation offload type for VXLAN-GPE
2016-06-17 20:23:32 -07:00
udplite.h
udplite: fix partial checksum initialization
2018-03-11 16:21:32 +01:00
vsock_addr.h
vxlan.h
vxlan: fix hlist corruption
2017-07-21 07:42:18 +02:00
wext.h
wimax.h
x25.h
net: x25: fix one potential use-after-free issue
2018-04-13 19:48:00 +02:00
x25device.h
xfrm.h
Merge android-4.9.193 ( 23f8789) into msm-4.9
2019-10-23 14:01:12 +08:00