fxp(4) TCP checksum offloading

Hendrik Scholz hscholz at raisdorf.net
Mon Jan 19 03:24:24 PST 2004


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)


More information about the freebsd-current mailing list