[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#773737: linux-image-3.16.0-4-amd64: cannot set promiscuous mode of cdc-ether devices



Package: src:linux
Version: 3.16.7-ckt2-1
Severity: normal

Dear Maintainer,

I have a DSL router Speedtouch ST-536i, which is connected to my server via USB. I use it only as a pure modem. Since I use PPPoE connections to two different providers at the same time, i have to use two different MAC addresses. So, the virtual ethernet interface in the modem has to be in promiscuous mode.

Up to kernel 3.14.12 this setup runs without problems. With kernel 3.16.7-ckt2-1, the second PPPoE connection does not work anymore:

[2014/12/22 16:22:34] alu info kernel: [ 6628.476309] usb 1-1.5: new full-speed USB device number 4 using ehci-pci [2014/12/22 16:22:34] alu info kernel: [ 6628.570435] usb 1-1.5: New USB device found, idVendor=06b9, idProduct=4062 [2014/12/22 16:22:34] alu info kernel: [ 6628.570442] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [2014/12/22 16:22:34] alu info kernel: [ 6628.569423] usb 1-1.5: Product: USB Network Interface [2014/12/22 16:22:34] alu info kernel: [ 6628.570446] usb 1-1.5: Manufacturer: Speedtouch [2014/12/22 16:22:34] alu info kernel: [ 6628.570452] usb 1-1.5: SerialNumber: 00147f****** [2014/12/22 16:22:34] alu info kernel: [ 6628.572584] cdc_ether 1-1.5:2.0 eth0: register 'cdc_ether' at usb-0000:00:1a.0-1.5, CDC Ethernet Device, 00:14:7f:**:**:** [2014/12/22 16:22:34] alu info kernel: 6328.592746] systemd-udevd[10947]: renamed network interface eth0 to ethdsl [2014/12/22 16:22:53] alu info kernel: [ 6647.462783] device ethdsl entered promiscuous mode
[2014/12/22 16:22:28] alu err pppoe[11062]:  Timeout waiting for PADO packets

The problem arises from commit c472ab68ad67db23c9907a27649b7dc0899b61f9 (cdc-ether: clean packet filter upon probe) in the vanilla kernel. It initializes the packet filter of the virtual ethernet interface explicitly. The driver cdc-ether in kernel 3.16 has no code to enable promiscuous mode. Before this patch, the interface came up without any packet filter. This behavior does not conform to the USB standard, but allows this modem and some other USB ethernet devices to use promiscuous mode.

In kernel 3.18, there are three additional patches applied to allow control of the promiscuous mode of cdc-ether devices:
   commit d80c679bc1526183f1cf4adc54b0b72e8798555e:
       cdc-ether: extract usbnet_cdc_update_filter function
   commit b77e26d191590c73b4a982ea3b3b87194069a56a:
       cdc-ether: handle promiscuous mode with a set_rx_mode callback
   commit 1efed2d06c703489342ab6af2951683e07509c99:
       usbnet: add a callback for set_rx_mode

Applying these three patches to the kernel 3.16.7-ckt2-1 solves the problem for me. With the patched kernel I can switch on or off the promiscuous mode of the virtual ethernet interface.


Reply to: