CONFIG_MPTCP_IPV6 is no longer enabled in Raspi Lunar in v6.2.0

Bug #2027983 reported by Matthieu Baerts
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-raspi (Ubuntu)
Fix Released
Undecided
Unassigned
Lunar
Fix Released
Undecided
Unassigned
Mantic
Fix Released
Undecided
Unassigned

Bug Description

Hello,

First, thank you for maintaining this kernel package for RPi!

When looking at something else[1], Phil Elwell from Raspbian OS noticed that in the Ubuntu Raspi Lunar image with a kernel v6.2, CONFIG_MPTCP_IPV6 is not enabled.

I guess this is because CONFIG_IPV6 is compiled as a module while it should be inlined according to the source code [2][3]:

  CONFIG_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
  CONFIG_IPV6 mark<ENFORCED> note<if this is a module we get a module load for every ipv6 packet>

The note explicitly says that it should not be set as a module.

Note that the previous kernels v5.15 and v5.19 do have CONFIG_IPV6=y (and CONFIG_MPTCP_IPV6=y) [4]. Also, the last v6.2 "generic" kernel config is also OK (CONFIG_IPV6=y) [5].

It looks like the v6.2.0-1001.1 [6] was OK but not the next one, 6.2.0-1002.2 [7]. I hope this will help finding the "regression".

Cheers,
Matt

[1] https://github.com/raspberrypi/linux/pull/5487
[2] https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/lunar/tree/debian.raspi/config/annotations
[3] https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/lunar/tree/debian.master/config/annotations
[4] https://kernel.ubuntu.com/~kernel-ppa/config/lunar/linux-raspi/
[5] https://kernel.ubuntu.com/~kernel-ppa/config/lunar/linux/
[6] https://kernel.ubuntu.com/~kernel-ppa/config/lunar/linux-raspi/6.2.0-1001.1/arm64-config.flavour.raspi
[7] https://kernel.ubuntu.com/~kernel-ppa/config/lunar/linux-raspi/6.2.0-1002.2/arm64-config.flavour.raspi

Revision history for this message
Juerg Haefliger (juergh) wrote :

The rationale for the change is that we want to modularize as much as possible for the raspi kernel because of limited RAM on that platform. Hence the difference to the master kernel. That change by itself is not considered a regression unless you're loosing functionality. Are you?

tags: added: kern-7467
Changed in linux-raspi (Ubuntu Lunar):
status: New → Incomplete
Changed in linux-raspi (Ubuntu):
status: New → Invalid
Revision history for this message
Matthieu Baerts (matttbe) wrote :

Hi Juerg,

> The rationale for the change is that we want to modularize as much as possible for the raspi kernel because of limited RAM on that platform.

Thank you for the explanation. It makes sense for features that are not often used.

When I looked at the source code [1], I didn't find where CONFIG_IPV6 was forced to be used as a module, I could only find references where it should be forced to be inlined instead.

> That change by itself is not considered a regression unless you're loosing functionality. Are you?

Yes, we are loosing functionality here: we can no longer use MPTCP [2] with IPv6, only with IPv4.

But I guess the big question is to have CONFIG_IPV6 as a module or not, right?

When we looked at upstreaming MPTCP, we checked if there was a reason to support CONFIG_IPV6 set as a module. These discussions around the subject with net maintainers ended up with the conclusion that it was not needed to support CONFIG_IPV6=m because in short, "today's Internet is IPv6". IPV6 module will very likely be used and loaded in RAM anyway: if the device has network enabled (I guess it has in most cases), it will use IPv6 except explicitly configured not to. IPv6 will be used at least for the localhost device (::1) plus the link local addresses of each interface.

Adding to that that there is an additional cost to have it as a module each time it has to be used, I don't think it is a good idea to have CONFIG_IPV6=m in "generic" deployments.

[1] https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/lunar/tree/debian.raspi
[2] https://en.wikipedia.org/wiki/Multipath_TCP

Juerg Haefliger (juergh)
Changed in linux-raspi (Ubuntu Lunar):
status: Incomplete → Triaged
Juerg Haefliger (juergh)
Changed in linux-raspi (Ubuntu Lunar):
status: Triaged → Confirmed
Revision history for this message
Juerg Haefliger (juergh) wrote :
Revision history for this message
Juerg Haefliger (juergh) wrote :

And yes, the ipv6 module is automatically loaded so probably not worth modularizing it (and losing functionality because of that).

Juerg Haefliger (juergh)
Changed in linux-raspi (Ubuntu Mantic):
status: Invalid → Confirmed
Juerg Haefliger (juergh)
Changed in linux-raspi (Ubuntu Lunar):
status: Confirmed → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-raspi/6.2.0-1012.14 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-lunar-linux-raspi' to 'verification-done-lunar-linux-raspi'. If the problem still exists, change the tag 'verification-needed-lunar-linux-raspi' to 'verification-failed-lunar-linux-raspi'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-lunar-linux-raspi-v2 verification-needed-lunar-linux-raspi
Revision history for this message
Matthieu Baerts (matttbe) wrote :

Hello,

Thank you for the modifications!

I looked at the generated kconfig[1] and I see that now we have CONFIG_MPTCP_IPV6=y (and CONFIG_IPV6=y). So it looks like this issue has been fixed.

[1] https://kernel.ubuntu.com/~kernel-ppa/config/lunar/linux-raspi/6.2.0-1012.14/arm64-config.flavour.raspi

tags: added: verification-done-lunar-linux-raspi
removed: verification-needed-lunar-linux-raspi
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (51.0 KiB)

This bug was fixed in the package linux-raspi - 6.2.0-1012.14

---------------
linux-raspi (6.2.0-1012.14) lunar; urgency=medium

  * lunar/linux-raspi: 6.2.0-1012.14 -proposed tracker (LP: #2030377)

  * CONFIG_MPTCP_IPV6 is no longer enabled in Raspi Lunar in v6.2.0
    (LP: #2027983)
    - [Config] raspi: Enable MPTCP_IPV6

  [ Ubuntu: 6.2.0-32.32 ]

  * lunar/linux: 6.2.0-32.32 -proposed tracker (LP: #2031134)
  * libgnutls report "trap invalid opcode" when trying to install packages over
    https (LP: #2031093)
    - [Config]: disable CONFIG_GDS_FORCE_MITIGATION

  [ Ubuntu: 6.2.0-30.30 ]

  * lunar/linux: 6.2.0-30.30 -proposed tracker (LP: #2030381)
  * CVE-2022-40982
    - init: Provide arch_cpu_finalize_init()
    - x86/cpu: Switch to arch_cpu_finalize_init()
    - ARM: cpu: Switch to arch_cpu_finalize_init()
    - ia64/cpu: Switch to arch_cpu_finalize_init()
    - m68k/cpu: Switch to arch_cpu_finalize_init()
    - mips/cpu: Switch to arch_cpu_finalize_init()
    - sh/cpu: Switch to arch_cpu_finalize_init()
    - sparc/cpu: Switch to arch_cpu_finalize_init()
    - um/cpu: Switch to arch_cpu_finalize_init()
    - init: Remove check_bugs() leftovers
    - init: Invoke arch_cpu_finalize_init() earlier
    - init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
    - x86/init: Initialize signal frame size late
    - x86/fpu: Remove cpuinfo argument from init functions
    - x86/fpu: Mark init functions __init
    - x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
    - x86/mem_encrypt: Unbreak the AMD_MEM_ENCRYPT=n build
    - x86/xen: Fix secondary processors' FPU initialization
    - x86/speculation: Add Gather Data Sampling mitigation
    - x86/speculation: Add force option to GDS mitigation
    - x86/speculation: Add Kconfig option for GDS
    - KVM: Add GDS_NO support to KVM
    - Documentation/x86: Fix backwards on/off logic about YMM support
    - [Config]: Enable CONFIG_ARCH_HAS_CPU_FINALIZE_INIT and
      CONFIG_GDS_FORCE_MITIGATION
  * CVE-2023-4015
    - netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound
      set/chain
    - netfilter: nf_tables: unbind non-anonymous set if rule construction fails
    - netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR
  * CVE-2023-3995
    - netfilter: nf_tables: disallow rule addition to bound chain via
      NFTA_RULE_CHAIN_ID
  * CVE-2023-3777
    - netfilter: nf_tables: skip bound chain on rule flush
  * CVE-2023-3609
    - net/sched: cls_u32: Fix reference counter leak leading to overflow
  * NULL pointer dereference on CS35L41 HDA AMP (LP: #2029199)
    - ASoC: cs35l41: Refactor error release code
    - ALSA: cs35l41: Add shared boost feature
    - ASoC: dt-bindings: cirrus, cs35l41: Document CS35l41 shared boost
    - ALSA: hda: cs35l41: Ensure firmware/tuning pairs are always loaded
    - ALSA: hda: cs35l41: Enable Amp High Pass Filter
    - ALSA: cs35l41: Use mbox command to enable speaker output for external boost
    - ALSA: cs35l41: Poll for Power Up/Down rather than waiting a fixed delay
    - ALSA: hda: cs35l41: Check mailbox status of pause command after firmware
      load
    - ALSA: hda: cs35l41: Ensure we correctly...

Changed in linux-raspi (Ubuntu Lunar):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (9.8 KiB)

This bug was fixed in the package linux-raspi - 6.5.0-1002.2

---------------
linux-raspi (6.5.0-1002.2) mantic; urgency=medium

  * mantic/linux-raspi: 6.5.0-1002.2 -proposed tracker (LP: #2033637)

  * Packaging resync (LP: #1786013)
    - [Packaging] update update.conf

  * Miscellaneous Ubuntu changes
    - [Config] raspi: Add notes to configs that differ from master
    - [Config] raspi: Set CONFIG_ARM_ERRATA_<foo>=n
    - [Config] raspi: Set PREEMPT_DYNAMIC=y
    - [Config] raspi: Set STAGING_MEDIA_DEPRECATED=n
    - [Config] raspi: Set EFI=n
    - [Config] raspi: Set POWER_RESET_GPIO_RESTART=n
    - [Config] raspi: Set HID_BPF=n
    - [Config] raspi: Set COMMON_CLK_FIXED_MMIO=n
    - [Config] raspi: Set PWM_STMPE=n
    - [Config] raspi: Set LEDS_SYSCON=n
    - [Packaging] raspi: Include bcm2835_smi module in linux-modules
    - SAUCE: (no-up) Disable FIQ split-transaction FSM in dwc_otg

  * Miscellaneous upstream changes
    - drivers: media: imx296: Updated imx296 driver for external trigger
    - char: broadcom: vc_mem: Fix preprocessor conditional
    - drivers: dwc_otg: Fix fallthrough warnings
    - vc04_services/vc-sm-cma: Switch one-bit bitfields to bool
    - media: i2c: ov2311: Fix uninitialized variable usage
    - drm/panel: Fix default values for Waveshare 7.9 inch DSI touchscreen (#5565)
    - dtoverlays: Add i2c bus overrides to edt-ft5406 overlay
    - dtoverlays: Fix README text for i2c-fan
    - drivers: irqchip: irq-bcm2835: Concurrency fix
    - defconfigs: Add TINYDRM_ILI9486 to defconfigs
    - dtoverlays: Add drm option to piscreen overlay
    - drm/ili9486: Resolve clash in spi_device_id names
    - input: ads7846: Add missing spi_device_id strings
    - staging: bcm2835-codec: Downgrade the level for a debug message
    - configs: Raise 8250 UART limit to 5 on BCM2711

  [ Ubuntu: 6.5.0-5.5 ]

  * mantic/linux: 6.5.0-5.5 -proposed tracker (LP: #2034546)
  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
    - debian/dkms-versions -- update from kernel-versions (main/d2023.08.23)

  [ Ubuntu: 6.5.0-4.4 ]

  * mantic/linux: 6.5.0-4.4 -proposed tracker (LP: #2034042)
  * Packaging resync (LP: #1786013)
    - debian/dkms-versions -- update from kernel-versions (main/d2023.08.23)

  [ Ubuntu: 6.5.0-3.3 ]

  * mantic/linux: 6.5.0-3.3 -proposed tracker (LP: #2033904)
  * Packaging resync (LP: #1786013)
    - debian/dkms-versions -- update from kernel-versions (main/d2023.08.23)
  * [23.10] Please test secure-boot and lockdown on the early 6.5 kernel (s390x)
    (LP: #2026833)
    - [Packaging] re-enable signing for s390x
  * Miscellaneous upstream changes
    - module/decompress: use vmalloc() for zstd decompression workspace

  [ Ubuntu: 6.5.0-2.2 ]

  * mantic/linux: 6.5.0-2.2 -proposed tracker (LP: #2033240)
  * Soundwire support for Dell SKU0C87 devices (LP: #2029281)
    - SAUCE: ASoC: Intel: soc-acpi: add support for Dell SKU0C87 devices
  * Fix numerous AER related issues (LP: #2033025)
    - SAUCE: PCI/AER: Disable AER service during suspend, again
    - SAUCE: PCI/DPC: Disable DPC service during suspend, again
  * Support Realtek RTL8852CE WiFi 6E/BT Combo (LP: #2025672)
    - wifi: r...

Changed in linux-raspi (Ubuntu Mantic):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.