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

Re: kernel/4218: (quad) hme(4) not working after upgrade



The following reply was made to PR kernel/4218; it has been noted by GNATS.

From: Andreas =?iso-8859-1?q?=D6stling?= <andreaso_(_at_)_it_(_dot_)_su_(_dot_)_se>
To: gnats_(_at_)_openbsd_(_dot_)_org
Cc: tybollt_(_at_)_solace_(_dot_)_mh_(_dot_)_se
Subject: Re: kernel/4218: (quad) hme(4) not working after upgrade
Date: Mon, 30 May 2005 09:59:12 +0200

 On 2005-05-24 8:04:12, tybollt_(_at_)_solace_(_dot_)_mh_(_dot_)_se wrote:
 ...
 > Installed 3.7 on an i386 firewall containing a quad hme(4) and a single hme. 
 > The hme's works in 3.6 but not in 3.7 although they are detected seemingly 
 > correct in both.
 > The hme interfaces happily accepts an ipaddress and I can ping them just
 > fine from other computers, however when trying a tcp session, for instance
 > ssh, it just times out. Trying to tcpdump an interface will only pick up
 > carp traffic (from another firewall on the same lan).   
 > Please find dmesgs attached below.
 
 I have the same problem, confirmed on 3.7-CURRENT and 3.7-STABLE at
 2005-05-29 with two different pci hme quad cards tested in two different i386  
 machines setup as firewalls. Pings are passed, but tcp/udp packets are
 dropped. It only happens when PF is enabled, even when it has only two pass
 in/out rules or no rules at all.
 
 It appears that the problem is the tcp/udp checksum offloading support added  
 to the hme driver a few months ago. hme_rxcksum() in sys/dev/ic/hme.c always
 produce a wrong checksum (on i386 at least) and will set
 m->m_pkthdr.csum |= flag_bad. When PF is enabled, this flag is checked for in
 pf_check_proto_cksum() and the packet is dropped. When the call to  
 hme_rxcksum() is avoided the tcp/udp packets are passed.
 
 Btw, the hme driver does not add rx checksum offload capabilities to 
 ifp->if_capabilities. Is that an oversight or has it been left out 
 intentionally for some reason?
 
 dmesg from a Dell 750 follows:
 
 OpenBSD 3.7 (GENERIC) #50: Sun Mar 20 00:01:57 MST 2005
     deraadt_(_at_)_i386_(_dot_)_openbsd_(_dot_)_org:/usr/src/sys/arch/i386/compile/GENERIC
 cpu0: Intel(R) Pentium(R) 4 CPU 2.80GHz ("GenuineIntel" 686-class) 2.80 GHz
 cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,
 CMOV,PAT,PSE36,CFLUSH,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,PNI,
 MWAIT,CNXT-ID
 real mem  = 536195072 (523628K)
 avail mem = 482476032 (471168K)
 using 4278 buffers containing 26910720 bytes (26280K) of memory
 mainbus0 (root)
 bios0 at mainbus0: AT/286+(00) BIOS, date 08/03/04, BIOS32 rev. 0 @ 0xffe90
 pcibios0 at bios0: rev 2.1 @ 0xf0000/0x10000
 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfc570/144 (7 entries)
 pcibios0: no compatible PCI ICU found: ICU vendor 0x8086 product 0x25a1
 pcibios0: Warning, unable to fix up PCI interrupt routing
 pcibios0: PCI bus #4 is the last bus
 bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1000 0xc9000/0x1000 0xec000/0x4000!
 cpu0 at mainbus0
 pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
 pchb0 at pci0 dev 0 function 0 "Intel 82875P Host" rev 0x02
 ppb0 at pci0 dev 3 function 0 "Intel 82875P PCI-CSA" rev 0x02
 pci1 at ppb0 bus 1
 em0 at pci1 dev 1 function 0 "Intel PRO/1000CT (82547EI)" rev 0x00: irq 3, 
 address: 00:0f:1f:f7:99:5c
 ppb1 at pci0 dev 28 function 0 "Intel 6300ESB PCIX" rev 0x02
 pci2 at ppb1 bus 2
 ppb2 at pci2 dev 1 function 0 "DEC 21153 PCI-PCI" rev 0x04
 pci3 at ppb2 bus 3
 "Sun PCIO Ebus2" rev 0x01 at pci3 dev 0 function 0 not configured
 hme0 at pci3 dev 0 function 1 "Sun HME" rev 0x01: address 08:00:20:cb:48:40
 ukphy0 at hme0 phy 1: Generic IEEE 802.3u media interface
 ukphy0: OUI 0x00601d, model 0x000c, rev. 1
 hme0: using irq 11 for interrupt
 "Sun PCIO Ebus2" rev 0x01 at pci3 dev 1 function 0 not configured
 hme1 at pci3 dev 1 function 1 "Sun HME" rev 0x01: address 08:00:20:cb:48:41
 ukphy1 at hme1 phy 1: Generic IEEE 802.3u media interface
 ukphy1: OUI 0x00601d, model 0x000c, rev. 1
 hme1: using irq 11 for interrupt
 "Sun PCIO Ebus2" rev 0x01 at pci3 dev 2 function 0 not configured
 hme2 at pci3 dev 2 function 1 "Sun HME" rev 0x01: address 08:00:20:cb:48:42
 ukphy2 at hme2 phy 1: Generic IEEE 802.3u media interface
 ukphy2: OUI 0x00601d, model 0x000c, rev. 1
 hme2: using irq 11 for interrupt
 "Sun PCIO Ebus2" rev 0x01 at pci3 dev 3 function 0 not configured
 hme3 at pci3 dev 3 function 1 "Sun HME" rev 0x01: address 08:00:20:cb:48:43
 ukphy3 at hme3 phy 1: Generic IEEE 802.3u media interface
 ukphy3: OUI 0x00601d, model 0x000c, rev. 1
 hme3: using irq 11 for interrupt
 uhci0 at pci0 dev 29 function 0 "Intel 6300ESB USB" rev 0x02: irq 11
 usb0 at uhci0: USB revision 1.0
 uhub0 at usb0
 uhub0: Intel 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 29 function 1 "Intel 5300ESB USB" rev 0x02: irq 10
 usb1 at uhci1: USB revision 1.0
 uhub1 at usb1
 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
 uhub1: 2 ports with 2 removable, self powered
 "Intel 6300ESB WDT" rev 0x02 at pci0 dev 29 function 4 not configured
 "Intel 6300ESB APIC" rev 0x02 at pci0 dev 29 function 5 not configured
 ehci0 at pci0 dev 29 function 7 "Intel 6300ESB USB" rev 0x02: irq 7
 ehci0: EHCI version 1.0
 ehci0: companion controllers, 2 ports each: uhci0 uhci1
 usb2 at ehci0: USB revision 2.0
 uhub2 at usb2
 uhub2: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
 uhub2: single transaction translator
 uhub2: 4 ports with 4 removable, self powered
 ppb3 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0x0a
 pci4 at ppb3 bus 4
 em1 at pci4 dev 2 function 0 "Intel PRO/1000MT (82541EI)" rev 0x00: irq 10, 
 address: 00:0f:1f:f7:99:5d
 xl0 at pci4 dev 3 function 0 "3Com 3c905B 100Base-TX" rev 0x28: irq 11, 
 address 00:10:4b:10:af:a2
 exphy0 at xl0 phy 24: 3Com internal media interface
 vga1 at pci4 dev 14 function 0 "ATI Rage XL" rev 0x27
 wsdisplay0 at vga1: console (80x25, vt100 emulation)
 wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
 ichpcib0 at pci0 dev 31 function 0 "Intel 6300ESB LPC" rev 0x02
 pciide0 at pci0 dev 31 function 2 "Intel 6300ESB SATA" rev 0x02: DMA, channel 
 0 configured to compatibility, channel 1 configuredto compatibility
 atapiscsi0 at pciide0 channel 0 drive 0
 scsibus0 at atapiscsi0: 2 targets
 cd0 at scsibus0 targ 0 lun 0: <TEAC, CD-224E, K.9A> SCSI0 5/cdrom removable
 cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
 wd0 at pciide0 channel 1 drive 0: <Maxtor 6Y080M0>
 wd0: 16-sector PIO, LBA, 76293MB, 156250000 sectors
 wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 5
 "Intel 6300ESB SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
 isa0 at ichpcib0
 isadma0 at isa0
 pckbc0 at isa0 port 0x60/5
 pckbd0 at pckbc0 (kbd slot)
 pckbc0: using irq 1 for kbd slot
 wskbd0 at pckbd0 (mux 1 ignored for console): 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
 fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
 fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
 biomask ffe5 netmask ffed ttymask ffef
 pctr: user-level cycle counter enabled
 dkcsum: wd0 matched BIOS disk 80
 root on wd0a
 rootdev=0x0 rrootdev=0x300 rawdev=0x302
 
 /Andreas