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

Multicast problems in a 2 Intel Gigabit NIC bridge



I tried to submit this twice using sendbug and it disappeared into 
the void (maillog said 
sent), so now the direct approach.

>Submitter-Id:	net
>Originator:	Mark Nejedlo
>Organization:	Computer Systems Lab, University of Wisconsin - Madison

>Confidential:	no
>Synopsis:
A bridge consisiting of 2 Intel Gigabit NICs doesn't pass multicast correctly.
>Severity:	non-critical
>Priority:	medium
>Category:	kernel
>Class:		sw-bug
>Release:	2.9
>Environment:
	
	System      : OpenBSD 2.9
	Architecture: OpenBSD.i386
	Machine     : i386
>Description:
	A bridge consisting of 2 Intel Gigabit NICs (wx) will pass unicast fine
but will not pass multicast correctly.  A bridge of 2 Digital 21140 cards will
work fine, so the problem would seem to lie in the wx driver itself.  The actual
problem is that a multicast group is able to be transmitted in one direction but
not in the other, and a different multicast group would be able to pass in the
opposite direction of the first but not be able to pass in the same direction
as the first.  This was done using an OpenBSD 2.8 machine from CD with the
kernel upgraded to -stable and also on an OpenBSD 2.9 machine from CVS source 
and clean from CD, all using the GENERIC kernel.  Dmesg is:

OpenBSD 2.9 (GENERIC) #653: Sat Apr 28 13:57:59 MDT 2001
    deraadt_(_at_)_i386_(_dot_)_openbsd_(_dot_)_org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: AMD Athlon Model 4 (Thunderbird) ("AuthenticAMD" 686-class) 807 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SYS,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR
real mem  = 267935744 (261656K)
avail mem = 243515392 (237808K)
using 3296 buffers containing 13500416 bytes (13184K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(c9) BIOS, date 01/10/01, BIOS32 rev. 0 @ 0xf0f50
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
pcibios0 at bios0: rev. 2.1 @ 0xf0000/0x17d2
pcibios0: PCI IRQ Routing Table rev. 1.0 @ 0xf1720/176 (9 entries)
pcibios0: PCI Interrupt Router at 000:04:0 ("VIA VT82C686A PCI-ISA" rev 0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc0000/0x7a00 0xc8000/0x2000 0xec000/0x4000!
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "VIA VT8363 Host" rev 0x03
ppb0 at pci0 dev 1 function 0 "VIA VT8363 PCI-AGP" rev 0x00
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "Intel 82740 AGP" rev 0x21
wsdisplay0 at vga1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcib0 at pci0 dev 4 function 0 "VIA VT82C686A PCI-ISA" rev 0x40
pciide0 at pci0 dev 4 function 1 "VIA VT82C571 IDE" rev 0x06: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility
atapiscsi0 at pciide0 channel 1
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <CD-ROM, Drive/G6D, 1.30> SCSI0 5/cdrom removable
pciide0: channel 1 interrupting at irq 15
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
uhci0 at pci0 dev 4 function 2 "VIA VT83C572 USB" rev 0x16: irq 3
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: vendor 0x0000 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 4 function 3 "VIA VT83C572 USB" rev 0x16: irq 3
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: vendor 0x0000 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pchb1 at pci0 dev 4 function 4 "VIA VT82C686A SMBus" rev 0x40
wx0 at pci0 dev 9 function 0 "Intel PRO 1000" rev 0x03: address 00:90:27:4d:58:c7, irq 3
wx1 at pci0 dev 10 function 0 "Intel PRO 1000T" rev 0x02: address 00:03:47:6b:65:48
eephy0 at wx1 phy 1: Marvell Semiconductor 88E1000* Gigabit
rl0 at pci0 dev 11 function 0 "Accton Technology MPX 5030/5038" rev 0x10: irq 10 address 00:e0:29:9b:12:0f
rlphy0 at rl0 phy 0: RTL internal phy
pciide1 at pci0 dev 17 function 0 "Promise PDC20265" rev 0x02: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI
pciide1: using irq 10 for native-PCI interrupt
wd0 at pciide1 channel 0 drive 0: <ST320420A>
wd0: 16-sector PIO, LBA, 19458MB, 16383 cyl, 16 head, 63 sec, 39851760 sectors
wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 4
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom0: console
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
biomask 8448 netmask 9448 ttymask 944a
pctr: user-level cycle counter enabled
mtrr: Pentium Pro MTRR support
dkcsum: wd0 matched BIOS disk 80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302

>How-To-Repeat:
  1. install 2 Intel Gigabit NICs into a machine.
  2. ifconfig wx0 up && ifconfig wx1 up && brconfig add wx0 add wx1 up
  3. try to pass multicast packets accross bridge
	
>Fix:
	don't know