Date: Sat, 9 Oct 2004 00:34:34 +0400 From: Gleb Smirnoff <glebius@freebsd.org> To: Giorgos Keramidas <keramida@freebsd.org> Cc: freebsd-net@freebsd.org Subject: Re: Calling m_pullup in ether_input Message-ID: <20041008203434.GA2770@cell.sick.ru> In-Reply-To: <20041008151515.GA3136@orion.daedalusnetworks.priv> References: <20041008151515.GA3136@orion.daedalusnetworks.priv>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Oct 08, 2004 at 06:15:15PM +0300, Giorgos Keramidas wrote: G> In ether_input() we unconditionaly discard the mbufs whose m_len is less than G> ETHER_HDR_LEN. A bit higher M_PKTHDR has been checked but the check made G> before discarding the frame doesn't pay attention to the m->m_pkthdr.len (the G> total packet length). In my humble opinion, all Ethernet device drivers are intentionally written in such a way that they always pass an mbuf with contigous Ethernet header to ether_input(). Why did you write this patch? Do you really have packet loss? G> I am trying to find out how often this happens, by using the attached patch to G> count the number of small frames received in ether_input() and the number of G> failed m_pullup() attempts that result from that. And what results do you have? G> Does this change seem reasonable as an instrumentation of the particular G> problem or am I unknowingly breaking something in the way ether_input() is G> supposed to work? AFAIK, this patch does not break anything but just adds more processing. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041008203434.GA2770>