lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Mon, 17 Mar 2008 23:32:17 +0100
From:	Hans-Peter Jansen <hpj@...la.net>
To:	Ayaz Abdulla <aabdulla@...dia.com>
Cc:	netdev@...r.kernel.org
Subject: Re: multicast problems in forcedeth driver with MCP51 Ethernet Controller

Am Sonntag, 16. März 2008 schrieb Hans-Peter Jansen:
> Hi Ayaz, hi forcedeth hackers,
>
> I'm trying to get my first multicast application to life ATM, but even
> the first tests failed mysteriously for some systems, running a 2.6.24.3
> kernel. Goggling around let me to one of your fixes:
> [PATCH 5/5] forcedeth: multicast fix, which Linus applied before
> 2.6.25-rc1 as: bb9a4fd1f7cc083f72e52f01938c23ac5b3403d5
>
> I applied your patch to my local 2.6.24.3 kernel build, but still no go.
> Try attached python script (after setting up a route like this):
>
> Destination     Gateway        Genmask         Flags Metric Ref   Use 
> Iface 229.0.0.0       *              255.0.0.0       U     0      0      
>  0 eth0
>
> Run one instance as './mctest.py server' and others without arguments.
> Normally, the server sends out a multicast packet every second, and the
> clients catch 10 of those before quitting, unless such a MCP51 Ethernet
> Controller is in the equation: that one doesn't send/receive a single MC
> bit here... Other nics (well, I tested this on e1000s and another MCP55)
> behave well in this respect.
>
> If I make the MCP51 the server, tcpdump is able to fetch the packets, but
> nothing is received on the other systems. Looks, like multicasting is
> still broken for the NIC in question.
>
> Here's the complete hwinfo for the affected NIC:
> ~# hwinfo --netcards
> 15: PCI 14.0: 0200 Ethernet controller
>   [Created at pci.286]
>   UDI: /org/freedesktop/Hal/devices/pci_10de_269
>   Unique ID: MZfG.uQ5k42VxsiA
>   SysFS ID: /devices/pci0000:00/0000:00:14.0
>   SysFS BusID: 0000:00:14.0
>   Hardware Class: network
>   Model: "ASUSTeK MCP51 Ethernet Controller"
>   Vendor: pci 0x10de "nVidia Corporation"
>   Device: pci 0x0269 "MCP51 Ethernet Controller"
>   SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
>   SubDevice: pci 0x816a
>   Revision: 0xa3
>   Driver: "forcedeth"
>   Driver Modules: "forcedeth"
>   Memory Range: 0xfe02b000-0xfe02bfff (rw,non-prefetchable)
>   I/O Ports: 0xc800-0xc807 (rw)
>   IRQ: 18 (309189603 events)
>   Module Alias: "pci:v000010DEd00000269sv00001043sd0000816Abc06sc80i00"
>   Driver Info #0:
>     Driver Status: forcedeth is active
>     Driver Activation Cmd: "modprobe forcedeth"
>   Config Status: cfg=no, avail=yes, need=no, active=unknown
>
> Board: ASUS M2NPV-VM ACPI BIOS Revision 0603
> Distr: openSUSE 10.2
>
> Ideas, patches, workarounds are heightly appreciated.

Okay, I've read the multicast howto again, inquired on linux-net about my 
procedures, and did more tests. 

In my environment, it seems to not matter, what multicast routing I use:
route add -net 224.0.0.0/4 dev eth0
ip route add 224.0.0.0/4 dev eth0
ip route add multicast 224.0.0.0/4 dev eth0

On those systems, that work fine, it does without, and on those, that don't, 
it doesn't change behavior (nothing is send/received), _unless_ I use 
224.0.0.1 as the multicast group address, which should be avoided, AFAICS.

I've learned to look for the group membership, and while the test program 
runs, it looks fine:

~# LANG=C netstat -gn
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      224.0.0.1
eth0            1      232.1.1.1	    <-- new mc group address default
eth0            1      224.0.0.1
lo              1      ff02::1
eth0            1      ff02::1:ff24:683c
eth0            1      ff02::1

Below, you find the updated/cleaned up version of my test script.

Still busted,
Pete

Download attachment "mctest.py" of type "application/x-python" (2694 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ