NAME
m_tag
, m_tag_get
,
m_tag_free
, m_tag_prepend
,
m_tag_unlink
, m_tag_delete
,
m_tag_delete_chain
,
m_tag_find
, m_tag_copy
,
m_tag_copy_chain
—
mbuf tagging interfaces
SYNOPSIS
#include
<sys/mbuf.h>
struct m_tag *
m_tag_get
(int
type, int len,
int wait);
void
m_tag_free
(struct
m_tag *t);
void
m_tag_prepend
(struct
mbuf *m, struct m_tag
*t);
void
m_tag_unlink
(struct
mbuf *m, struct m_tag
*t);
void
m_tag_delete
(struct
mbuf *m, struct m_tag
*t);
void
m_tag_delete_chain
(struct
mbuf *m);
struct m_tag *
m_tag_find
(struct
mbuf *m, int
type);
struct m_tag *
m_tag_copy
(struct
m_tag *m);
int
m_tag_copy_chain
(struct
mbuf *to, struct mbuf
*from);
DESCRIPTION
The m_tag
interface is used to
“tag” mbufs.
FUNCTIONS
m_tag_get
(type, len, wait)- Allocate an mbuf tag. type is one of the
PACKET_TAG_
macros. len is the size of the data associated with the tag, in bytes. wait is eitherM_WAITOK
orM_NOWAIT
. m_tag_free
(t)- Free the mbuf tag t.
m_tag_prepend
(m, t)- Prepend the mbuf tag t to the mbuf m. t will become the first tag of the mbuf m. When m is freed, t will also be freed.
m_tag_unlink
(m, t)- Unlink the mbuf tag t from the mbuf m.
m_tag_delete
(m, t)- The same as
m_tag_unlink
() followed bym_tag_free
(). m_tag_delete_chain
(m)- Unlink and free mbuf tags from the mbuf m.
m_tag_find
(m, type)- Find an mbuf tag with type type in the tag chain
associated with the mbuf m. If an mbuf tag is found,
return a pointer to it. Otherwise return
NULL
. m_tag_copy
(t)- Copy an mbuf tag t. Return a new mbuf tag on
success. Otherwise return
NULL
. m_tag_copy_chain
(to, from)- Copy all mbuf tags associated with the mbuf from to the mbuf to. If to already has any mbuf tags, they will be unlinked and freed beforehand. Return 1 on success. Otherwise return 0.
CODE REFERENCES
The mbuf tagging interfaces are implemented within the file sys/kern/uipc_mbuf.c.
The PACKET_TAG_
macros are defined in the
file sys/sys/mbuf.h.
SEE ALSO
BUGS
The semantics of the term "persistent tag" are vague.