old data in pointer fields. NOTE: we'll extend m_pkthdr field soon. why does the code allocate mbuf by its own?