android_kernel_xiaomi_sm8450/Documentation/networking
Patrick Rohr d491ac7aa1 net: change accept_ra_min_rtr_lft to affect all RA lifetimes
commit 5027d54a9c30bc7ec808360378e2b4753f053f25 upstream.

accept_ra_min_rtr_lft only considered the lifetime of the default route
and discarded entire RAs accordingly.

This change renames accept_ra_min_rtr_lft to accept_ra_min_lft, and
applies the value to individual RA sections; in particular, router
lifetime, PIO preferred lifetime, and RIO lifetime. If any of those
lifetimes are lower than the configured value, the specific RA section
is ignored.

In order for the sysctl to be useful to Android, it should really apply
to all lifetimes in the RA, since that is what determines the minimum
frequency at which RAs must be processed by the kernel. Android uses
hardware offloads to drop RAs for a fraction of the minimum of all
lifetimes present in the RA (some networks have very frequent RAs (5s)
with high lifetimes (2h)). Despite this, we have encountered networks
that set the router lifetime to 30s which results in very frequent CPU
wakeups. Instead of disabling IPv6 (and dropping IPv6 ethertype in the
WiFi firmware) entirely on such networks, it seems better to ignore the
misconfigured routers while still processing RAs from other IPv6 routers
on the same network (i.e. to support IoT applications).

The previous implementation dropped the entire RA based on router
lifetime. This turned out to be hard to expand to the other lifetimes
present in the RA in a consistent manner; dropping the entire RA based
on RIO/PIO lifetimes would essentially require parsing the whole thing
twice.

Fixes: 1671bcfd76fd ("net: add sysctl accept_ra_min_rtr_lft")
Cc: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: Patrick Rohr <prohr@google.com>
Reviewed-by: Maciej Żenczykowski <maze@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20230726230701.919212-1-prohr@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-10-25 11:54:14 +02:00
..
caif net: caif: Remove unused caif SPI driver 2020-09-29 14:02:53 -07:00
device_drivers ixgbe: Document how to enable NBASE-T support 2021-12-22 09:30:55 +01:00
devlink ice: docs fix a devlink info that broke a table 2020-10-28 11:41:15 -06:00
dsa doc: net: dsa: Fix typo in config code sample 2020-09-03 10:38:22 -07:00
mac80211_hwsim docs: net: convert two README files to ReST format 2019-07-31 13:31:56 -06:00
6lowpan.rst docs: networking: convert 6lowpan.txt to ReST 2020-02-28 14:52:36 +01:00
6pack.rst docs: networking: convert 6pack.txt to ReST 2020-04-28 14:38:38 -07:00
af_xdp.rst xsk: Honor SO_BINDTODEVICE on bind 2023-07-27 08:44:09 +02:00
alias.rst docs: networking: Convert alias.txt to rst 2018-07-18 15:28:27 -07:00
arcnet-hardware.rst docs: networking: arcnet-hardware.rst: don't duplicate chapter names 2020-05-01 12:24:43 -07:00
arcnet.rst Documentation: networking: arcnet: drop doubled word 2020-07-04 17:46:21 -07:00
atm.rst docs: networking: convert atm.txt to ReST 2020-04-28 14:38:38 -07:00
ax25.rst Documentation: networking: ax25: drop doubled word 2020-07-04 17:46:21 -07:00
bareudp.rst Documentation: bareudp: Corrected description of bareudp module. 2020-07-28 17:53:03 -07:00
batman-adv.rst batman-adv: Fix typos and grammar in documentation 2020-06-26 10:36:30 +02:00
bonding.rst bonding: fix ad_actor_system option setting to default 2021-12-29 12:25:57 +01:00
bridge.rst docs: networking: Convert bridge.txt to rst 2018-07-18 15:28:27 -07:00
can_ucan_protocol.rst Documentation: networking: can_ucan_protocol: drop doubled words 2020-07-04 17:46:21 -07:00
can.rst docs: networking: convert netdevices.txt to ReST 2020-04-30 12:56:36 -07:00
cdc_mbim.rst docs: networking: convert cdc_mbim.txt to ReST 2020-04-28 14:38:39 -07:00
checksum-offloads.rst docs: networking: convert netdev-features.txt to ReST 2020-04-30 12:56:36 -07:00
dccp.rst net: dccp: Add SIOCOUTQ IOCTL support (send buffer fill) 2020-07-22 17:00:37 -07:00
dctcp.rst docs: networking: convert dctcp.txt to ReST 2020-04-28 14:38:39 -07:00
dns_resolver.rst docs: networking: convert dns_resolver.txt to ReST 2020-04-28 14:39:46 -07:00
driver.rst docs: networking: convert driver.txt to ReST 2020-04-28 14:39:46 -07:00
eql.rst docs: networking: convert eql.txt to ReST 2020-04-28 14:39:46 -07:00
ethtool-netlink.rst Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-22 16:45:34 -07:00
failover.rst net: Introduce generic failover module 2018-05-28 22:59:54 -04:00
fib_trie.rst docs: networking: convert fib_trie.txt to ReST 2020-04-28 14:39:46 -07:00
filter.rst Documentation/bpf: Use valid and new links in index.rst 2020-07-31 18:17:51 +02:00
framerelay.rst docs: networking: convert framerelay.txt to ReST 2020-04-28 14:39:46 -07:00
gen_stats.rst docs: networking: convert gen_stats.txt to ReST 2020-04-28 14:39:46 -07:00
generic_netlink.rst docs: networking: convert generic_netlink.txt to ReST 2020-04-28 14:39:46 -07:00
generic-hdlc.rst docs: networking: convert generic-hdlc.txt to ReST 2020-04-28 14:39:46 -07:00
gtp.rst docs: networking: convert gtp.txt to ReST 2020-04-28 14:39:46 -07:00
ieee802154.rst docs: net: ieee802154.rst: fix C expressions 2020-10-15 07:49:41 +02:00
ila.rst docs: networking: convert ila.txt to ReST 2020-04-28 14:39:47 -07:00
index.rst Remove DECnet support from kernel 2023-06-21 15:45:38 +02:00
ip_dynaddr.rst docs: networking: convert ip_dynaddr.txt to ReST 2020-04-28 14:39:47 -07:00
ip-sysctl.rst net: change accept_ra_min_rtr_lft to affect all RA lifetimes 2023-10-25 11:54:14 +02:00
ipddp.rst docs: networking: convert ipddp.txt to ReST 2020-04-28 14:39:47 -07:00
ipsec.rst docs: networking: convert ipsec.txt to ReST 2020-04-28 14:39:47 -07:00
ipv6.rst docs: networking: convert ipv6.txt to ReST 2020-04-28 14:40:18 -07:00
ipvlan.rst docs: networking: convert ipvlan.txt to ReST 2020-04-28 14:40:18 -07:00
ipvs-sysctl.rst netfilter: ipvs: Fix reuse connection if RS weight is 0 2021-12-01 09:19:02 +01:00
j1939.rst can: j1939: use backquotes for code samples 2020-11-03 22:30:31 +01:00
kapi.rst net: phy: Document core PHY structures 2020-09-23 18:02:49 -07:00
kcm.rst docs: networking: convert kcm.txt to ReST 2020-04-28 14:40:19 -07:00
l2tp.rst docs: networking: add tracepoint info to l2tp.rst 2020-08-22 12:44:37 -07:00
lapb-module.rst docs: networking: convert lapb-module.txt to ReST 2020-04-30 12:56:35 -07:00
mac80211-auth-assoc-deauth.txt
mac80211-injection.rst doc: networking: wireless: fix wiki website url 2020-06-08 10:05:53 +02:00
mpls-sysctl.rst docs: networking: convert mpls-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
msg_zerocopy.rst doc: fix link to MSG_ZEROCOPY patchset 2019-03-18 09:50:21 -07:00
multiqueue.rst docs: networking: convert multiqueue.txt to ReST 2020-04-30 12:56:36 -07:00
net_dim.rst docs: networking: add full DIM API 2020-04-10 18:11:04 -07:00
net_failover.rst docs: networking: net_failover: Fix a few typos 2020-03-03 16:07:02 -08:00
netconsole.rst docs: networking: convert netconsole.txt to ReST 2020-04-30 12:56:36 -07:00
netdev-FAQ.rst docs: networking: drop special stable handling 2021-03-17 17:06:13 +01:00
netdev-features.rst docs: networking: convert netdev-features.txt to ReST 2020-04-30 12:56:36 -07:00
netdevices.rst docs: net: explain struct net_device lifetime 2022-07-29 17:19:07 +02:00
netfilter-sysctl.rst docs: networking: convert netfilter-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
netif-msg.rst docs: networking: convert netif-msg.txt to ReST 2020-04-30 12:56:36 -07:00
nf_conntrack-sysctl.rst docs: networking: convert nf_conntrack-sysctl.txt to ReST 2020-04-30 12:56:36 -07:00
nf_flowtable.rst docs: nf_flowtable: fix typo. 2020-10-20 13:54:53 +02:00
nfc.rst docs: networking: nfc: change to rst format 2019-11-23 11:00:19 -08:00
openvswitch.rst docs: networking: convert openvswitch.txt to ReST 2020-04-30 12:56:36 -07:00
operstates.rst docs: networking: convert operstates.txt to ReST 2020-04-30 12:56:37 -07:00
packet_mmap.rst docs: networking: convert timestamping.txt to ReST 2020-04-30 12:56:38 -07:00
page_pool.rst net: page_pool: Add documentation on page_pool API 2020-02-21 08:13:30 -08:00
phonet.rst docs: networking: convert phonet.txt to ReST 2020-04-30 12:56:37 -07:00
phy.rst docs: networking: phy: s/2.5 times faster/2.5 times as fast/ 2020-11-09 17:28:06 -08:00
pktgen.rst docs: networking: convert pktgen.txt to ReST 2020-04-30 12:56:37 -07:00
plip.rst docs: networking: convert PLIP.txt to ReST 2020-04-30 12:56:37 -07:00
ppp_generic.rst docs: networking: convert ppp_generic.txt to ReST 2020-04-30 12:56:37 -07:00
proc_net_tcp.rst docs: networking: convert proc_net_tcp.txt to ReST 2020-04-30 12:56:37 -07:00
radiotap-headers.rst docs: networking: convert radiotap-headers.txt to ReST 2020-04-30 12:56:37 -07:00
rds.rst docs: networking: convert rds.txt to ReST 2020-04-30 12:56:37 -07:00
regulatory.rst doc: networking: wireless: fix wiki website url 2020-06-08 10:05:53 +02:00
rxrpc.rst Documentation: networking: rxrpc: drop doubled word 2020-07-04 17:46:21 -07:00
scaling.rst docs: networking: update XPS to account for netif_set_xps_queue 2020-10-13 16:21:54 -07:00
sctp.rst docs: networking: convert sctp.txt to ReST 2020-04-30 12:56:38 -07:00
secid.rst docs: networking: convert secid.txt to ReST 2020-04-30 12:56:38 -07:00
seg6-sysctl.rst docs: networking: convert seg6-sysctl.txt to ReST 2020-04-30 12:56:38 -07:00
segmentation-offloads.rst networking: : fix typos in code comments 2019-05-20 20:24:34 -04:00
sfp-phylink.rst doc: sfp-phylink: correct code indentation 2020-03-03 15:33:55 -08:00
snmp_counter.rst docs: networking: convert ip-sysctl.txt to ReST 2020-04-28 14:40:18 -07:00
statistics.rst docs: net: statistics.rst: remove a duplicated kernel-doc 2020-10-28 11:26:10 -06:00
strparser.rst docs: networking: convert strparser.txt to ReST 2020-04-30 12:56:38 -07:00
switchdev.rst docs: networking: convert switchdev.txt to ReST 2020-04-30 12:56:38 -07:00
sysfs-tagging.rst Documentation: better locations for sysfs-pci, sysfs-tagging 2020-10-09 09:33:23 -06:00
tc-actions-env-rules.rst docs: networking: convert tc-actions-env-rules.txt to ReST 2020-04-30 12:56:38 -07:00
tcp-thin.rst docs: networking: convert tcp-thin.txt to ReST 2020-04-30 12:56:38 -07:00
team.rst docs: networking: convert team.txt to ReST 2020-04-30 12:56:38 -07:00
timestamping.rst docs: networking: timestamping: add section for stacked PHC devices 2020-07-15 17:51:30 -07:00
tls-offload-layers.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload-reorder-bad.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload-reorder-good.svg Documentation: add TLS offload documentation 2019-05-22 12:18:20 -07:00
tls-offload.rst net/mlx5e: kTLS, Add kTLS RX stats 2020-06-27 14:00:23 -07:00
tls.rst net/tls: add TlsDeviceRxResync statistic 2019-10-05 16:29:00 -07:00
tproxy.rst docs: networking: convert tproxy.txt to ReST 2020-04-30 12:56:38 -07:00
tuntap.rst docs: networking: convert tuntap.txt to ReST 2020-05-01 12:24:40 -07:00
udplite.rst docs: networking: convert udplite.txt to ReST 2020-05-01 12:24:40 -07:00
vrf.rst docs: networking: convert vrf.txt to ReST 2020-05-01 12:24:40 -07:00
vxlan.rst docs: vxlan: add info about device features 2020-09-28 12:50:12 -07:00
x25-iface.rst docs: networking: convert x25-iface.txt to ReST 2020-05-01 12:24:40 -07:00
x25.rst docs: networking: convert x25.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_device.rst docs: networking: convert xfrm_device.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_proc.rst docs: networking: convert xfrm_proc.txt to ReST 2020-05-01 12:24:40 -07:00
xfrm_sync.rst docs: networking: convert xfrm_sync.txt to ReST 2020-05-01 12:24:41 -07:00
xfrm_sysctl.rst docs: networking: convert xfrm_sysctl.txt to ReST 2020-05-01 12:24:41 -07:00