Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Jan 2004 12:24:17 +0100
From:      Hendrik Scholz <hscholz@raisdorf.net>
To:        Andreas Moeller <andreas-moeller@gmx.net>
Cc:        current@FreeBSD.org
Subject:   Re: fxp(4) TCP checksum offloading
Message-ID:  <20040119122417.69b2fa94@goanna.raisdorf.net>
In-Reply-To: <4009ADE7.2060101@gmx.net>
References:  <4009ADE7.2060101@gmx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi!

On Sat, 17 Jan 2004 22:49:27 +0100
Andreas Moeller <andreas-moeller@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@cave:~ > ifconfig fxp1 link0
[0.07] root@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@cave:~ > ifconfig fxp1 -link0
[0.06] root@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@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@raisdorf.net> - http://raisdorf.net/
cell phone: 404-606-5324 (US) 0160-1570-272 (DE)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040119122417.69b2fa94>