Date: Fri, 15 Apr 2005 06:13:00 GMT From: Lobach Pavel <lobach_pavel@mail.ru> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/79946: Checksum offloading doesn't work on intel 82551 NIC (chip rev=0x10) Message-ID: <200504150613.j3F6D0wA016881@www.freebsd.org> Resent-Message-ID: <200504150620.j3F6KAYg042565@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 79946 >Category: kern >Synopsis: Checksum offloading doesn't work on intel 82551 NIC (chip rev=0x10) >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Apr 15 06:20:10 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Lobach Pavel >Release: FreeBSD 5.3 >Organization: >Environment: FreeBSD 5.3-RELEASE Intel PRO/100 ethernet adapter (82551 chip rev=0x10) >Description: We bought a couple of Intel 82551's cards (chip rev=0x10) But fxp driver doesn't enable checksum offloading for it nether in RELENG_5, nor in HEAD, because of in if_fxp.c: if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { ...skipped... sc->flags |= FXP_FLAG_EXT_RFA; i.e. flag FXP_FLAG_EXT_RFA enabled only for 82550 and thus prevents enabling checksum offloading for 82551(chips rev=0x0f, 0x10) and even for 82550 (chip rev=0x0e) below: /* Enable checksum offload for 82550 or better chips */ if (sc->flags & FXP_FLAG_EXT_RFA) { <-- this flag doesn't set for "better chips" ifp->if_hwassist = FXP_CSUM_FEATURES; ifp->if_capabilities |= IFCAP_HWCSUM; ifp->if_capenable |= IFCAP_HWCSUM; } >How-To-Repeat: Install intel pro/100 card with 82551 chip and do: ifconfig fxp0 txcsum rxcsum it doesn't work >Fix: In if_fxp.c it should be: if (sc->revision >= FXP_REV_82550) { ... instead of if (sc->revision == FXP_REV_82550 || sc->revision == FXP_REV_82550_C) { Because intel chipset beginning from 82550 all have this feature or we can #define FXP_REV_82551 0x10 in if_fxpreg.h and in if_fxp.c: if (sc->revision >= FXP_REV_82550 && sc->revision <= FXP_REV_82551) { ... >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504150613.j3F6D0wA016881>