Re: fxp(4) TCP checksum offloading

From: Hendrik Scholz <hscholz_at_raisdorf.net>
Date: Mon, 19 Jan 2004 12:24:17 +0100
Hi!

On Sat, 17 Jan 2004 22:49:27 +0100
Andreas Moeller <andreas-moeller_at_gmx.net> wrote:

> I got an Intel PRO/100 S NIC (Intel 82550 chip) which supports TCP 
> checksum offloading. I am also able to load the microcode necessary in
> 
> order to activate that feature:
> 
> fxp0: Microcode loaded, int_delay: 1000 usec  bundle_max: 6

That ain't TCP checksum offloading, that is IRQ mitigation.
When using IRQ mitigation the FIFO buffer in the network card is used to
'delay' interrupts. Up to 6 packets will be buffered for up to 1000usec
before raising an interrupt. In case more than one packet arrives during
the 1000usec period only one interrupt is triggered instead of multiple
thus reducing the time spend for context switching and handling the
interrupts.

IRQ mitigation is enabled using the link0 feature as described in the
fxp manpage.

fxp1: <Intel 82550 Pro/100 Ethernet> port 0x8440-0x847f mem
0xfc320000-0xfc33ffff,0xfc362000-0xfc362fff irq 23 at device 5.0 on pci4

[0.08] root_at_cave:~ > ifconfig fxp1 link0
[0.07] root_at_cave:~ > ifconfig fxp1
fxp1: flags=9802<BROADCAST,SIMPLEX,LINK0,MULTICAST> mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:02:b3:b0:60:8c
        media: Ethernet autoselect (none)
        status: no carrier
[0.07] root_at_cave:~ > ifconfig fxp1 -link0
[0.06] root_at_cave:~ > ifconfig fxp1
fxp1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:02:b3:b0:60:8c
        media: Ethernet autoselect (none)
        status: no carrier
[0.06] root_at_cave:~ > 

Additionally the options shows that RX and TX checksums are enabled by
the driver.

> Unfortunately, when enabled, network connections (at least those based
> 
> on TCP) start timing out while ping remains working flawlessly. The 
> system in question is running latest -CURRENT source as of today.

I cannot reproduce this problem since my box is running 1000baseSX.

As of 5.2-REL you have to enable the sshd and in case security is set to
'extreme' sshd won't be fired up. Do you have sshd_enable="YES" in
/etc/rc.conf?

> Any ideas? (Is there a way to unload the microcode again besides 
> rebooting the system?)

$ ifconfig fxp0 -link0

Hendrik

-- 
Hendrik Scholz - <hscholz_at_raisdorf.net> - http://raisdorf.net/
cell phone: 404-606-5324 (US) 0160-1570-272 (DE)
Received on Mon Jan 19 2004 - 02:24:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:38 UTC