John, Jacques,

thank you very much for your help. An mbuf cluster seems to be the right 
direction.
So I would have to do something like

mbuf = m_getjcl(how, MT_DATA, M_PKTHDR, MJUMPAGESIZE);
left_for_next_rcv = m_split(mbuf, chunksize);
if_input(ifp, mbuf);

right?

>I agree that read-only buffers may be ok in this case but would like to point 
>out that the M_WRITABLE() macro will evaluate to 0 if the refcount on the 
>cluster is >1

The fact that the resulting mbufs returned by m_split() are not writeable any 
more is indeed a problem:
What I would like to do is keep the 'left_for_next_rcv' mbuf until the next 
packet arrives and
then fill it with the next packets data only up to 'chunksize', split it again 
to pass the new mbuf to
the protocol stack and so on until 'left_for_next_rcv' becomes too small to be 
splitted further.
Only then I would want to allocate a new "fresh" jumbo sized mbuf. Is it 
possible to
realize this with cluster mbufs?

Thx,
Lino


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

Reply via email to