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]"

