use msg_append to avoid small mbuf fragments