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>
