Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Jan 2011 09:05:48 -0800
From:      "Huang, Yusheng" <yusheng.huang@bluecoat.com>
To:        <net@freebsd.org>
Subject:   nfe support for jumbo frame
Message-ID:  <B583FBF374231F4A89607B4D08578A4308BA3C86@bcs-mail03.internal.cacheflow.com>

next in thread | raw e-mail | index | archive | help
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



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