linux-uconsole/drivers
Rocco Yue dcf509fea7 ANDROID: ipv6: add vendor hook for gen ipv6 link-local addr
This patch provides an ipv6 vendor hook which can be used to
disable kernel auto generate the ipv6 link-local address.

The reasons why the kernel does not need to automatically
generate the ipv6 link-local address are as follows:

(1) In the 3GPP TS 29.061, here is a description as follows:
"in order to avoid any conflict between the link-local address
of the MS and that of the GGSN, the Interface-Identifier used
by the MS to build its link-local address shall be assigned by
the GGSN. The GGSN ensures the uniqueness of this Interface-
Identifier. The MT shall then enforce the use of this
Interface-Identifier by the TE"

In other words, in the cellular network, GGSN determines whether
to reply a solicited RA message by identifying the low 64 bits
of the source address of the received RS message. Therefore,
cellular network device's ipv6 link-local address should be set
as the format of fe80::(GGSN assigned IID).

For example: When using a new kernel and ARPHRD_RAWIP, kernel
will generate an EUI64 format ipv6 link-local address, and the
Linux kernel will uses this link-local address to send RS message.
The result is that the GGSN will not reply to the RS message with
a solicited RA message.

For mobile operators that don't need to support RFC7217, setting
addr_gen_mode == 1 is sufficient, it can avoid the above issue,
but when the addr_gen_mode is changed to the
IN6_ADDR_GEN_MODE_STABLE_PRIVACY, the above problem still exist.
The detail as follows:

(2) For some other mobile operators that need to support RFC7217,
the mobile device's addr_gen_mode will be switched to the
IN6_ADDR_GEN_MODE_STABLE_PRIVACY, instead of using
IN6_ADDR_GEN_MODE_NONE.
The purpose is: in the IN6_ADDR_GEN_MODE_STABLE_PRIVACY mode,
kernel can gererate a stable privacy global ipv6 address after
receiveing RA, and network processes can use this global address
to communicate with the outside network.

Of course, mobile operators that need to support RFC7217 should
also meet the requirement of 3GPP TS 29.061, that is, MT should
use IID assigned by the GGSN to build its ipv6 link-local address
and use this address to send RS. We don't want the kernel to
automatically generate an ipv6 link-local address when
addr_gen_mode == 2. Otherwise, using the stable privacy ipv6
link-local address automatically generated by the kernel to send
RS message, GGSN will not be able to respond to the RS and reply
a RA message.

Therefore, after this patch, the kernel can determine whether to
disable the automatic ipv6 link-local address generation by judging
the net device name.

Bug: 190685002
Change-Id: I93420cacd96789769edc7214fb8a2dd1455ce374
Signed-off-by: Rocco Yue <rocco.yue@mediatek.com>
2021-07-13 18:13:57 +00:00
..
accessibility
acpi Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
amba Merge 5.10.20 into android12-5.10 2021-03-07 12:33:33 +01:00
android ANDROID: ipv6: add vendor hook for gen ipv6 link-local addr 2021-07-13 18:13:57 +00:00
ata ata: libahci_platform: fix IRQ check 2021-05-14 09:50:24 +02:00
atm atm: idt77252: fix null-ptr-dereference 2021-03-30 14:31:50 +02:00
auxdisplay auxdisplay: ht16k33: Fix refresh rate handling 2021-03-04 11:38:00 +01:00
base ANDROID: power: wakeup_reason: change abort log 2021-06-25 16:31:57 +00:00
bcma
block Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
bluetooth Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
bus bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act 2021-06-10 13:39:22 +02:00
cdrom cdrom: gdrom: initialize global variable at init time 2021-05-26 12:06:55 +02:00
char Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
clk Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
clocksource Revert "Revert "clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940"" 2021-06-04 11:15:17 -07:00
connector
counter counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register 2021-03-25 09:04:16 +01:00
cpufreq ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power 2021-06-01 20:59:53 +08:00
cpuidle ANDROID: cpuidle: Allow for an early exit from cpuidle_enter_state() 2021-07-02 19:45:07 +00:00
crypto Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
dax device-dax: Fix default return code of range_parse() 2021-03-04 11:38:15 +01:00
dca
devfreq PM / devfreq: Use more accurate returned new_freq as resume_freq 2021-05-14 09:50:15 +02:00
dio
dma Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
dma-buf BACKPORT: FROMLIST: dma-heap: Let dma heap use dma_map_attrs to map & unmap iova 2021-07-10 09:34:39 +00:00
edac EDAC/amd64: Do not load on family 0x15, model 0x13 2021-03-07 12:34:08 +01:00
eisa
extcon extcon: arizona: Fix various races on driver unbind 2021-05-11 14:47:24 +02:00
firewire firewire: nosy: Fix a use-after-free bug in nosy_ioctl() 2021-04-07 15:00:11 +02:00
firmware Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
fpga fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER 2021-05-14 09:50:06 +02:00
fsi
gnss
gpio UPSTREAM: gpiolib: Fix error return code in gpiolib_dev_init() 2021-06-10 20:26:20 -07:00
gpu Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
greybus
hid Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
hsi HSI: core: fix resource leaks in hsi_add_client_from_dt() 2021-05-14 09:50:28 +02:00
hv Drivers: hv: vmbus: Increase wait time for VMbus unload 2021-05-14 09:50:21 +02:00
hwmon Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
hwspinlock
hwtracing ANDROID: coresight: Update ETE/TRBE to v6 merged upstream 2021-06-23 22:48:15 +00:00
i2c Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
i3c Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" 2021-05-14 09:50:05 +02:00
ide ide/falconide: Fix module unload 2021-03-04 11:38:21 +01:00
idle
iio iio: adc: ad7192: handle regulator voltage error first 2021-06-03 09:00:33 +02:00
infiniband RDMA/uverbs: Fix a NULL vs IS_ERR() bug 2021-05-26 12:06:49 +02:00
input This is the 5.10.39 stable release 2021-05-22 15:34:48 +02:00
interconnect interconnect: qcom: Add missing MODULE_DEVICE_TABLE 2021-06-03 09:00:46 +02:00
iommu ANDROID: iommu/io-pgtable-arm: Add IOMMU_CACHE_ICACHE_OCACHE_NWA 2021-06-30 08:29:33 +00:00
ipack
irqchip ANDROID: irqchip: gic-v3: Move struct gic_chip_data to header 2021-07-06 21:05:45 +00:00
isdn isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info 2021-06-03 09:00:42 +02:00
leds leds: lp5523: check return value of lp5xx_read and jump to cleanup code 2021-05-26 12:06:56 +02:00
lightnvm lightnvm: fix memory leak when submit fails 2021-01-27 11:55:22 +01:00
macintosh macintosh/adb-iop: Use big-endian autopoll mask 2021-03-04 11:37:42 +01:00
mailbox mailbox: sprd: Introduce refcnt when clients requests/free channels 2021-05-14 09:50:27 +02:00
mcb
md Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
media ANDROID: media: v4l2-core: extend the v4l2 subdev ioctl to support request 2021-06-30 15:56:19 +00:00
memory Merge 5.10.37 into android12-5.10 2021-05-15 09:28:55 +02:00
memstick
message
mfd mfd: stm32-timers: Avoid clearing auto reload register 2021-05-14 09:50:27 +02:00
misc Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
mmc ANDROID: GKI: mmc: add Android ABI padding to some structures 2021-07-01 22:32:05 -07:00
most
mtd mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init 2021-05-14 09:50:15 +02:00
mux
net FROMGIT: net: cdc_ncm: switch to eth%d interface naming 2021-07-08 04:01:26 +00:00
nfc nfc: pn533: prevent potential memory corruption 2021-05-14 09:50:32 +02:00
ntb
nubus
nvdimm libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC 2021-04-21 13:00:55 +02:00
nvme nvmet: fix freeing unallocated p2pmem 2021-06-10 13:39:18 +02:00
nvmem drivers: nvmem: Fix voltage settings for QTI qfprom-efuse 2021-05-14 09:50:14 +02:00
of FROMGIT: of: Add stub for of_add_property() 2021-07-12 17:10:22 +00:00
opp Merge 5.10.20 into android12-5.10 2021-03-07 12:33:33 +01:00
oprofile
parisc
parport
pci This is the 5.10.39 stable release 2021-05-22 15:34:48 +02:00
pcmcia
perf perf/arm_pmu_platform: Fix error handling 2021-05-11 14:47:19 +02:00
phy phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally 2021-05-14 09:50:13 +02:00
pinctrl Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
platform Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
pnp
power Merge 5.10.37 into android12-5.10 2021-05-15 09:28:55 +02:00
powercap UPSTREAM: powercap/drivers/dtpm: Add the experimental label to the option description 2021-03-22 15:24:47 +00:00
pps
ps3
ptp ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation 2021-04-10 13:36:09 +02:00
pwm Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
rapidio rapidio: handle create_workqueue() failure 2021-05-26 12:06:52 +02:00
ras RAS/CEC: Correct ce_add_elem()'s returned values 2021-04-14 08:42:12 +02:00
regulator UPSTREAM: regulator: qcom-rpmh: fix build after QCOM_COMMAND_DB is tristate 2021-06-10 20:26:00 -07:00
remoteproc ANDROID: rproc: Add vendor hook for recovery 2021-07-01 22:32:04 -07:00
reset FROMLIST: reset: reset-scmi: port driver to the new scmi_reset_proto_ops interface 2021-03-02 17:34:33 -08:00
rpmsg Merge 5.10.38 into android12-5.10 2021-05-20 15:35:25 +02:00
rtc Merge 5.10.40 into android12-5.10 2021-05-27 08:36:46 +02:00
s390 Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
sbus
scsi FROMLIST: scsi: ufs: add quirk to enable host controller without interface configuration 2021-07-09 14:27:51 +00:00
sfi
sh
siox
slimbus
soc Merge 5.10.37 into android12-5.10 2021-05-15 09:28:55 +02:00
soundwire soundwire: stream: fix memory leak in stream config error path 2021-05-14 09:50:14 +02:00
spi Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
spmi spmi: spmi-pmic-arb: Fix hw_irq overflow 2021-03-04 11:38:40 +01:00
ssb
staging ANDROID: ashmem: Export is_ashmem_file 2021-07-13 15:48:06 +00:00
target scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found 2021-05-22 11:40:54 +02:00
tc
tee optee: use export_uuid() to copy client UUID 2021-06-10 13:39:21 +02:00
thermal Merge 5.10.42 into android12-5.10 2021-06-03 18:47:38 +02:00
thunderbolt thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue 2021-06-03 09:00:32 +02:00
tty Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
uio uio_hv_generic: Fix a memory leak in error handling paths 2021-05-26 12:06:52 +02:00
usb ANDROID: usb: gadget: fix NULL pointer dereference in android_setup 2021-07-13 11:08:58 +00:00
vdpa {net,vdpa}/mlx5: Configure interface MAC into mpfs L2 table 2021-06-03 09:00:36 +02:00
vfio Merge 5.10.43 into android12-5.10 2021-06-12 14:48:14 +02:00
vhost vhost-vdpa: fix vm_flags for virtqueue doorbell mapping 2021-05-11 14:47:12 +02:00
video Merge 5.10.40 into android12-5.10 2021-05-27 08:36:46 +02:00
virt nitro_enclaves: Fix stale file descriptors on failed usercopy 2021-05-11 14:47:11 +02:00
virtio FROMGIT: mm, page_poison: remove CONFIG_PAGE_POISONING_NO_SANITY 2021-03-24 15:09:17 -07:00
visorbus
vlynq
vme
w1 w1: w1_therm: Fix conversion result for negative temperatures 2021-03-04 11:37:18 +01:00
watchdog Merge 5.10.20 into android12-5.10 2021-03-07 12:33:33 +01:00
xen xen-pciback: reconfigure also from backend watch handler 2021-05-26 12:06:54 +02:00
zorro
Kconfig
Makefile
OWNERS ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS 2021-04-03 14:11:30 +00:00