Date: Thu, 21 Nov 2002 22:54:17 +0100 From: Andre Oppermann <oppermann@pipeline.ch> To: Luigi Rizzo <rizzo@icir.org> Cc: current@freebsd.org Subject: Re: mbuf header bloat ? Message-ID: <3DDD5609.8D158A66@pipeline.ch> References: <20021121111709.A23435@xorpc.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Luigi Rizzo wrote: > > [Bcc to -net because it is relevant there. This email has been > triggered by a private discussion i was having with other committers > (who will easily recognise themselves :) which suggested the > possibility of adding more fields to mbuf headers] > > Just recently came up to my attention that we have the following > code in <sys/_label.h> > > #define MAC_MAX_POLICIES 4 > struct label { > int l_flags; > union { > void *l_ptr; > long l_long; > } l_perpolicy[MAC_MAX_POLICIES]; > }; > > (what are l_perpolicy[], ints ? Could this be written a bit better ?) > and then in <sys/mbuf.h> > > struct pkthdr { > struct ifnet *rcvif; /* rcv interface */ > int len; /* total packet length */ > /* variables for ip and tcp reassembly */ > void *header; /* pointer to packet header */ > /* variables for hardware checksum */ > int csum_flags; /* flags regarding checksum */ > int csum_data; /* data field used by csum routines */ > SLIST_HEAD(packet_tags, m_tag) tags; /* list of packet tags */ > struct label label; /* MAC label of data in packet */ > }; > > The label is 5 ints, the pkthdr a total of 11 ints (and m_hdr takes > another 6, for a total of 136 bytes of header info on 64-bit architectures). > > Of the pkthdr, only 3 fields (rcvif, len, tags) are of really general > use, the rest being used only in certain cases and for very specific > purposes (e.g. reassembly of fragments, or hw capabilities, or MAC). > > Now that Sam has done the excellent work of integrating packet tags > to carry annotations around, i really believe that we should try > to move out of the pkthdr all non-general fields, and move them to > m_tags so we only pay the cost when needed and not in all cases. > Also this pays a lot in terms of ABI compatibility and extensibility. > I understand that for 5.0 it is a bit late to act, but i do hope > that we can reconsider this issue for 5.1 and pull out of the pkthdr > at least the MAC label, and possibly also the csum_* fields, much > in the same way it has been done for VLAN labels. Sounds good to me. -- Andre To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DDD5609.8D158A66>