From owner-freebsd-net@FreeBSD.ORG Mon Jan 24 17:16:51 2011 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE4301065674 for ; Mon, 24 Jan 2011 17:16:51 +0000 (UTC) (envelope-from yusheng.huang@bluecoat.com) Received: from whisker.bluecoat.com (whisker.bluecoat.com [216.52.23.28]) by mx1.freebsd.org (Postfix) with ESMTP id 88AAE8FC2A for ; Mon, 24 Jan 2011 17:16:51 +0000 (UTC) Received: from bcs-mail03.internal.cacheflow.com ([10.2.2.95]) by whisker.bluecoat.com (8.14.2/8.14.2) with ESMTP id p0OH5twr027386 for ; Mon, 24 Jan 2011 09:05:55 -0800 (PST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from 216.52.23.29 ([216.52.23.29]) by bcs-mail03.internal.cacheflow.com ([10.2.2.95]) via Exchange Front-End Server webmail.bluecoat.com ([10.2.2.114]) with Microsoft Exchange Server HTTP-DAV ; Mon, 24 Jan 2011 17:05:49 +0000 MIME-Version: 1.0 X-Mailer: Apple Mail (2.1082) Content-class: urn:content-classes:message Date: Mon, 24 Jan 2011 09:05:48 -0800 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: nfe support for jumbo frame Thread-Index: Acu76PNchYbR6MJhShCIr8KrBqfUtQ== From: "Huang, Yusheng" To: Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: nfe support for jumbo frame X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2011 17:16:51 -0000 Hi all, We have ported nfe driver to our product and when we try to set mtu to = 9000 on nfe interface, it does not work. No jumbo frame buffer were = allocated. Looking at the code, we found the following: In nfe_ioctl: else { NFE_LOCK(sc); ifp->if_mtu =3D ifr->ifr_mtu; if ((ifp->if_drv_flags & IFF_DRV_RUNNING) !=3D 0) =3D=3D> if = IFF_DRV_RUNNING is set, call nfe_init_locked nfe_init_locked(sc); NFE_UNLOCK(sc); } However, in nfe_init_locked, it has the following test: NFE_LOCK_ASSERT(sc); mii =3D device_get_softc(sc->nfe_miibus); if (ifp->if_drv_flags & IFF_DRV_RUNNING) =3D=3D> if IFF_DRV_RUNNING is = set, return return; nfe_stop(ifp); sc->nfe_framesize =3D ifp->if_mtu + NFE_RX_HEADERS; So it ends up doing nothing. Is there something we missed totally on changing the mtu? -yusheng