Bug#1024328: IPv6 connectivity broken with 6.0.x. RAs seem to be dropped for the CDC_NCM interface

2022-11-21 Thread Santiago Ruano Rincón
Control: tags -1 + upstream patch

Hi there,

El 17/11/22 a las 17:08, Santiago R.R. escribió:
> Package: src:linux
> Version: 6.0.8-1
> Severity: important
> Tags: ipv6
> Control: Found -1 6.1~rc3-1~exp1
> 
> Dear linux maintainers,
> 
> The related machine to this bug is connected to the network via a Dell
> D6000 USB-C docking station. Since a recent linux-image-amd64 update, it
> cannot reach external networks on IPv6. It is able to autoconfigure an
> IPv6 address, but it doesn't get any answer to the router sollicitations
> messages, so it is not able to configure any default route.
> 
> A WiFi interface successfully configures its ip6 route, running on the
> same kernel.
> 
> The problem didn't exist on 5.x, since 5.9 (when IP6 multicast support
> for cdc_ncm was fixed). I've just checked with
> linux-image-5.10.0-12-amd64.
> And the problem is also present in linux-image-6.1.0-0-amd64 6.1~rc3-1~exp1.
> 
> Concerned devices is:
> 
>   *-network
>description: Ethernet interface
>physical id: 14
>bus info: usb@2:1.1
>logical name: enxabcdef123456
>serial: ab:cd:ef:12:34:56
>size: 100Mbit/s
>capabilities: ethernet physical
>configuration: autonegotiation=off broadcast=yes driver=cdc_ncm 
> driverversion=6.0.0-4-amd64 duplex=half firmware=CDC NCM (SEND ZLP) 
> ip=x.x.x.x link=yes multicast=yes port=twisted pair speed=100Mbit/s
> 
[snip]

I've tested the attached patch against debian/6.1_rc5-1_exp1, and IPv6
connectivity is restored in my machine on the DisplayLink-based Dell
D6000 dock.

For convenience, I've created a MR:
https://salsa.debian.org/kernel-team/linux/-/merge_requests/588

Cheers,

 -- Santiago
From 308b171d568530d20ad721dfe72df697d9c0a0b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Santiago=20Ruano=20Rinc=C3=B3n?=
 
Date: Mon, 21 Nov 2022 11:52:10 +0100
Subject: [PATCH] net/cdc_ncm: Fix multicast RX support for CDC NCM devices
 with ZLP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ZLP for DisplayLink ethernet devices was enabled in 6.0:
266c0190aee3 ("net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices").
The related driver_info should be the "same as cdc_ncm_info, but with
FLAG_SEND_ZLP". However, set_rx_mode that enables handling multicast
traffic was missing in the new cdc_ncm_zlp_info.

usbnet_cdc_update_filter rx mode was introduced in linux 5.9 with:
e10dcb1b6ba7 ("net: cdc_ncm: hook into set_rx_mode to admit multicast
traffic")

Without this hook, multicast, and then IPv6 SLAAC, is broken.

Fixes: 266c0190aee3 ("net/cdc_ncm: Enable ZLP for DisplayLink ethernet
devices")

Signed-off-by: Santiago Ruano Rincón 
---
 drivers/net/usb/cdc_ncm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 8d5cbda33f66..0897fdb6254b 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -1915,6 +1915,7 @@ static const struct driver_info cdc_ncm_zlp_info = {
 	.status = cdc_ncm_status,
 	.rx_fixup = cdc_ncm_rx_fixup,
 	.tx_fixup = cdc_ncm_tx_fixup,
+	.set_rx_mode = usbnet_cdc_update_filter,
 };
 
 /* Same as cdc_ncm_info, but with FLAG_WWAN */
-- 
2.38.1



signature.asc
Description: PGP signature


Bug#1024328: IPv6 connectivity broken with 6.0.x. RAs seem to be dropped for the CDC_NCM interface

2022-11-17 Thread Santiago R.R.
Package: src:linux
Version: 6.0.8-1
Severity: important
Tags: ipv6
Control: Found -1 6.1~rc3-1~exp1

Dear linux maintainers,

The related machine to this bug is connected to the network via a Dell
D6000 USB-C docking station. Since a recent linux-image-amd64 update, it
cannot reach external networks on IPv6. It is able to autoconfigure an
IPv6 address, but it doesn't get any answer to the router sollicitations
messages, so it is not able to configure any default route.

A WiFi interface successfully configures its ip6 route, running on the
same kernel.

The problem didn't exist on 5.x, since 5.9 (when IP6 multicast support
for cdc_ncm was fixed). I've just checked with
linux-image-5.10.0-12-amd64.
And the problem is also present in linux-image-6.1.0-0-amd64 6.1~rc3-1~exp1.

Concerned devices is:

  *-network
   description: Ethernet interface
   physical id: 14
   bus info: usb@2:1.1
   logical name: enxabcdef123456
   serial: ab:cd:ef:12:34:56
   size: 100Mbit/s
   capabilities: ethernet physical
   configuration: autonegotiation=off broadcast=yes driver=cdc_ncm 
driverversion=6.0.0-4-amd64 duplex=half firmware=CDC NCM (SEND ZLP) ip=x.x.x.x 
link=yes multicast=yes port=twisted pair speed=100Mbit/s


Cheers,

 -- S

-- Package-specific info:
** Version:
Linux version 6.0.0-4-amd64 (debian-ker...@lists.debian.org) (gcc-12 (Debian 
12.2.0-9) 12.2.0, GNU ld (GNU Binutils for Debian) 2.39) #1 SMP PREEMPT_DYNAMIC 
Debian 6.0.8-1 (2022-11-11)

** Command line:
BOOT_IMAGE=/vmlinuz-6.0.0-4-amd64 root=/dev/mapper/bartik--vg-root ro quiet

** Not tainted

** Kernel log:
[   12.633673] iwlwifi :02:00.0: firmware: direct-loading firmware 
iwlwifi-8265-36.ucode
[   12.634019] iwlwifi :02:00.0: loaded firmware version 36.ca7b901d.0 
8265-36.ucode op_mode iwlmvm
[   12.672303] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC3246: 
line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
[   12.672306] snd_hda_codec_realtek hdaudioC1D0:speaker_outs=0 
(0x0/0x0/0x0/0x0/0x0)
[   12.672308] snd_hda_codec_realtek hdaudioC1D0:hp_outs=1 
(0x21/0x0/0x0/0x0/0x0)
[   12.672310] snd_hda_codec_realtek hdaudioC1D0:mono: mono_out=0x0
[   12.672311] snd_hda_codec_realtek hdaudioC1D0:inputs:
[   12.672312] snd_hda_codec_realtek hdaudioC1D0:  Headset Mic=0x19
[   12.672313] snd_hda_codec_realtek hdaudioC1D0:  Headphone Mic=0x1a
[   12.672314] snd_hda_codec_realtek hdaudioC1D0:  Internal Mic=0x12
[   12.704042] intel_rapl_common: Found RAPL domain package
[   12.704045] intel_rapl_common: Found RAPL domain core
[   12.704046] intel_rapl_common: Found RAPL domain uncore
[   12.704048] intel_rapl_common: Found RAPL domain dram
[   12.704049] intel_rapl_common: Found RAPL domain psys
[   12.771464] mei_hdcp :00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: 
bound :00:02.0 (ops i915_hdcp_component_ops [i915])
[   12.802604] Bluetooth: Core ver 2.22
[   12.802625] NET: Registered PF_BLUETOOTH protocol family
[   12.802626] Bluetooth: HCI device and connection manager initialized
[   12.802629] Bluetooth: HCI socket layer initialized
[   12.802630] Bluetooth: L2CAP socket layer initialized
[   12.802633] Bluetooth: SCO socket layer initialized
[   12.897269] dell_laptop: Using i8042 filter function for receiving events
[   12.919215] iwlwifi :02:00.0: Detected Intel(R) Dual Band Wireless AC 
8265, REV=0x230
[   12.919268] thermal thermal_zone8: failed to read out thermal zone (-61)
[   12.982819] iwlwifi :02:00.0: base HW address: 18:1d:ea:6d:5f:56, OTP 
minor version: 0x0
[   13.061505] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[   13.081186] usbcore: registered new interface driver btusb
[   13.082374] Bluetooth: hci0: Firmware revision 0.1 build 19 week 44 2021
[   13.085593] iwlwifi :02:00.0 wlp2s0: renamed from wlan0
[   13.138032] EXT4-fs (nvme0n1p2): mounting ext2 file system using the ext4 
subsystem
[   13.138813] EXT4-fs (nvme0n1p2): mounted filesystem without journal. Quota 
mode: none.
[   13.138822] ext2 filesystem being mounted at /boot supports timestamps until 
2038 (0x7fff)
[   13.142725] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Quota 
mode: none.
[   13.298521] audit: type=1400 audit(1668698064.713:2): apparmor="STATUS" 
operation="profile_load" profile="unconfined" name="firejail-default" pid=686 
comm="apparmor_parser"
[   13.300258] audit: type=1400 audit(1668698064.717:3): apparmor="STATUS" 
operation="profile_load" profile="unconfined" name="lsb_release" pid=688 
comm="apparmor_parser"
[   13.301053] audit: type=1400 audit(1668698064.717:4): apparmor="STATUS" 
operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=690 
comm="apparmor_parser"
[   13.301058] audit: type=1400 audit(1668698064.717:5): apparmor="STATUS" 
operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" 
pid=690 comm="apparmor_parser"
[   13.303175] audit: type=1400 audit(1668698064.717:6):