Netlink message: More...
Modules | |
Netlink message batch helpers | |
This library provides helpers to batch several messages into one single datagram. | |
Data Structures | |
struct | _container_policy_cb |
Functions | |
size_t | mnl_nlmsg_size (size_t len) |
mnl_nlmsg_size - calculate the size of Netlink message (without alignment) More... | |
EXPORT_SYMBOL (mnl_nlmsg_size) | |
size_t | mnl_nlmsg_get_payload_len (const struct nlmsghdr *nlh) |
mnl_nlmsg_get_payload_len - get the length of the Netlink payload More... | |
EXPORT_SYMBOL (mnl_nlmsg_get_payload_len) | |
struct nlmsghdr * | mnl_nlmsg_put_header (void *buf) |
mnl_nlmsg_put_header - reserve and prepare room for Netlink header More... | |
EXPORT_SYMBOL (mnl_nlmsg_put_header) | |
void * | mnl_nlmsg_put_extra_header (struct nlmsghdr *nlh, size_t size) |
mnl_nlmsg_put_extra_header - reserve and prepare room for an extra header More... | |
EXPORT_SYMBOL (mnl_nlmsg_put_extra_header) | |
void * | mnl_nlmsg_get_payload (const struct nlmsghdr *nlh) |
mnl_nlmsg_get_payload - get a pointer to the payload of the netlink message More... | |
EXPORT_SYMBOL (mnl_nlmsg_get_payload) | |
void * | mnl_nlmsg_get_payload_offset (const struct nlmsghdr *nlh, size_t offset) |
mnl_nlmsg_get_payload_offset - get a pointer to the payload of the message More... | |
EXPORT_SYMBOL (mnl_nlmsg_get_payload_offset) | |
bool | mnl_nlmsg_ok (const struct nlmsghdr *nlh, int len) |
mnl_nlmsg_ok - check a there is room for netlink message More... | |
EXPORT_SYMBOL (mnl_nlmsg_ok) | |
struct nlmsghdr * | mnl_nlmsg_next (const struct nlmsghdr *nlh, int *len) |
mnl_nlmsg_next - get the next netlink message in a multipart message More... | |
EXPORT_SYMBOL (mnl_nlmsg_next) | |
void * | mnl_nlmsg_get_payload_tail (const struct nlmsghdr *nlh) |
mnl_nlmsg_get_payload_tail - get the ending of the netlink message More... | |
EXPORT_SYMBOL (mnl_nlmsg_get_payload_tail) | |
bool | mnl_nlmsg_seq_ok (const struct nlmsghdr *nlh, unsigned int seq) |
mnl_nlmsg_seq_ok - perform sequence tracking More... | |
EXPORT_SYMBOL (mnl_nlmsg_seq_ok) | |
bool | mnl_nlmsg_portid_ok (const struct nlmsghdr *nlh, unsigned int portid) |
mnl_nlmsg_portid_ok - perform portID origin check More... | |
EXPORT_SYMBOL (mnl_nlmsg_portid_ok) | |
void | mnl_nlmsg_fprintf (FILE *fd, const void *data, size_t datalen, size_t extra_header_size) |
mnl_nlmsg_fprintf - print netlink message to file More... | |
EXPORT_SYMBOL (mnl_nlmsg_fprintf) | |
struct nlmsghdr * | nfacct_nlmsg_build_hdr (char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) |
nfacct_nlmsg_build_hdr - build netlink message header for nfacct subsystem More... | |
EXPORT_SYMBOL (nfacct_nlmsg_build_hdr) | |
void | nfacct_nlmsg_build_payload (struct nlmsghdr *nlh, struct nfacct *nfacct) |
nfacct_nlmsg_build_payload - build payload from accounting object More... | |
EXPORT_SYMBOL (nfacct_nlmsg_build_payload) | |
int | nfacct_nlmsg_parse_payload (const struct nlmsghdr *nlh, struct nfacct *nfacct) |
nfacct_nlmsg_parse_payload - set accounting object attributes from message More... | |
EXPORT_SYMBOL (nfacct_nlmsg_parse_payload) | |
struct nlmsghdr * | nfct_helper_nlmsg_build_hdr (char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) |
nfct_helper_nlmsg_build_hdr - build netlink message header for nfct_helper subsystem More... | |
EXPORT_SYMBOL (nfct_helper_nlmsg_build_hdr) | |
void | nfct_helper_nlmsg_build_payload (struct nlmsghdr *nlh, struct nfct_helper *h) |
nfct_helper_nlmsg_build_payload - build payload from helper object More... | |
EXPORT_SYMBOL (nfct_helper_nlmsg_build_payload) | |
int | nfct_helper_nlmsg_parse_payload (const struct nlmsghdr *nlh, struct nfct_helper *h) |
nfct_helper_nlmsg_parse_payload - set helper object attributes from message More... | |
EXPORT_SYMBOL (nfct_helper_nlmsg_parse_payload) | |
struct nlmsghdr * | nfct_timeout_nlmsg_build_hdr (char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) |
nfct_timeout_nlmsg_build_hdr - build netlink message header for ct timeout More... | |
EXPORT_SYMBOL (nfct_timeout_nlmsg_build_hdr) | |
void | nfct_timeout_nlmsg_build_payload (struct nlmsghdr *nlh, const struct nfct_timeout *t) |
nfct_timeout_nlmsg_build_payload - build payload from ct timeout object More... | |
EXPORT_SYMBOL (nfct_timeout_nlmsg_build_payload) | |
int | nfct_timeout_nlmsg_parse_payload (const struct nlmsghdr *nlh, struct nfct_timeout *t) |
nfct_timeout_nlmsg_parse_payload - set timeout object attributes from message More... | |
EXPORT_SYMBOL (nfct_timeout_nlmsg_parse_payload) | |
int | nfq_nlmsg_parse (const struct nlmsghdr *nlh, struct nlattr **attr) |
nfq_pkt_parse - set packet attributes from netlink message More... | |
EXPORT_SYMBOL (nfq_nlmsg_parse) | |
Variables | |
void * | mnl_nlmsg_batch::buf |
size_t | mnl_nlmsg_batch::limit |
size_t | mnl_nlmsg_batch::buflen |
void * | mnl_nlmsg_batch::cur |
bool | mnl_nlmsg_batch::overflow |
Netlink message:
|<----------------- 4 bytes ------------------->| |<----- 2 bytes ------>|<------- 2 bytes ------>| |-----------------------------------------------| | Message length (including header) | |-----------------------------------------------| | Message type | Message flags | |-----------------------------------------------| | Message sequence number | |-----------------------------------------------| | Netlink PortID | |-----------------------------------------------| | | . Payload . |_______________________________________________|
There is usually an extra header after the the Netlink header (at the beginning of the payload). This extra header is specific of the Netlink subsystem. After this extra header, it comes the sequence of attributes that are expressed in Type-Length-Value (TLV) format.
EXPORT_SYMBOL | ( | mnl_nlmsg_size | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_get_payload_len | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_put_header | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_put_extra_header | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_get_payload | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_get_payload_offset | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_ok | ) |
EXPORT_SYMBOL | ( | nfq_nlmsg_parse | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_next | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_get_payload_tail | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_seq_ok | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_portid_ok | ) |
EXPORT_SYMBOL | ( | mnl_nlmsg_fprintf | ) |
EXPORT_SYMBOL | ( | nfacct_nlmsg_build_hdr | ) |
EXPORT_SYMBOL | ( | nfacct_nlmsg_build_payload | ) |
EXPORT_SYMBOL | ( | nfct_timeout_nlmsg_build_hdr | ) |
EXPORT_SYMBOL | ( | nfct_helper_nlmsg_build_hdr | ) |
EXPORT_SYMBOL | ( | nfct_timeout_nlmsg_build_payload | ) |
EXPORT_SYMBOL | ( | nfacct_nlmsg_parse_payload | ) |
EXPORT_SYMBOL | ( | nfct_helper_nlmsg_build_payload | ) |
EXPORT_SYMBOL | ( | nfct_timeout_nlmsg_parse_payload | ) |
EXPORT_SYMBOL | ( | nfct_helper_nlmsg_parse_payload | ) |
void mnl_nlmsg_fprintf | ( | FILE * | fd, |
const void * | data, | ||
size_t | datalen, | ||
size_t | extra_header_size | ||
) |
mnl_nlmsg_fprintf - print netlink message to file
fd | pointer to file type |
data | pointer to the buffer that contains messages to be printed |
datalen | length of data stored in the buffer |
extra_header_size | size of the extra header (if any) |
This function prints the netlink header to a file handle. It may be useful for debugging purposes. One example of the output is the following:
---------------- ------------------ | 0000000040 | | message length | | 00016 | R-A- | | type | flags | | 1289148991 | | sequence number| | 0000000000 | | port ID | ---------------- ------------------ | 00 00 00 00 | | extra header | | 00 00 00 00 | | extra header | | 01 00 00 00 | | extra header | | 01 00 00 00 | | extra header | |00008|--|00003| |len |flags| type| | 65 74 68 30 | | data | e t h 0 ---------------- ------------------
This example above shows the netlink message that is send to kernel-space to set up the link interface eth0. The netlink and attribute header data are displayed in base 10 whereas the extra header and the attribute payload are expressed in base 16. The possible flags in the netlink header are:
The lack of one flag is displayed with '-'. On the other hand, the possible attribute flags available are:
References data, datalen, len, mnl_nlmsg_next(), and mnl_nlmsg_ok().
Referenced by nft_chain_add(), and nft_table_add().
mnl_nlmsg_get_payload - get a pointer to the payload of the netlink message
nlh | pointer to a netlink header |
This function returns a pointer to the payload of the netlink message.
References MNL_NLMSG_HDRLEN.
Referenced by ipset_debug_msg(), nfacct_nlmsg_parse_payload(), nfct_helper_nlmsg_parse_payload(), nfct_nlmsg_parse(), nfct_timeout_nlmsg_parse_payload(), nfexp_nlmsg_parse(), nft_chain_nlmsg_parse(), nft_gen_nlmsg_parse(), nft_rule_nlmsg_parse(), nft_set_elems_nlmsg_parse(), nft_set_nlmsg_parse(), and nft_table_nlmsg_parse().
mnl_nlmsg_get_payload_len - get the length of the Netlink payload
nlh | pointer to the header of the Netlink message |
This function returns the Length of the netlink payload, ie. the length of the full message minus the size of the Netlink header.
References MNL_NLMSG_HDRLEN, and nlmsghdr::nlmsg_len.
Referenced by nfct_nlmsg_parse().
mnl_nlmsg_get_payload_offset - get a pointer to the payload of the message
nlh | pointer to a netlink header |
offset | offset to the payload of the attributes TLV set |
This function returns a pointer to the payload of the netlink message plus a given offset.
References MNL_ALIGN, and MNL_NLMSG_HDRLEN.
mnl_nlmsg_get_payload_tail - get the ending of the netlink message
nlh | pointer to netlink message |
This function returns a pointer to the netlink message tail. This is useful to build a message since we continue adding attributes at the end of the message.
References MNL_ALIGN, and nlmsghdr::nlmsg_len.
Referenced by mnl_attr_nest_cancel(), mnl_attr_nest_end(), mnl_attr_nest_start(), and mnl_attr_put().
mnl_nlmsg_next - get the next netlink message in a multipart message
nlh | current netlink message that we are handling |
len | length of the remaining bytes in the buffer (passed by reference). |
This function returns a pointer to the next netlink message that is part of a multi-part netlink message. Netlink can batch several messages into one buffer so that the receiver has to iterate over the whole set of Netlink messages.
You have to use mnl_nlmsg_ok() to check if the next Netlink message is valid.
References MNL_ALIGN, and nlmsghdr::nlmsg_len.
Referenced by ipset_debug_msg(), and mnl_nlmsg_fprintf().
mnl_nlmsg_ok - check a there is room for netlink message
nlh | netlink message that we want to check |
len | remaining bytes in a buffer that contains the netlink message |
This function is used to check that a buffer that contains a netlink message has enough room for the netlink message that it stores, ie. this function can be used to verify that a netlink message is not malformed nor truncated.
This function does not set errno in case of error since it is intended for iterations. Thus, it returns true on success and false on error.
The len parameter may become negative in malformed messages during message iteration, that is why we use a signed integer.
References nlmsghdr::nlmsg_len.
Referenced by ipset_debug_msg(), and mnl_nlmsg_fprintf().
mnl_nlmsg_portid_ok - perform portID origin check
nlh | current netlink message that we are handling |
portid | netlink portid that we want to check |
This functions returns true if the origin is fulfilled, otherwise false is returned. We skip the tracking for netlink message whose portID is zero since it is reserved for event-based kernel notifications. On the other hand, if portid is set but the message PortID is not (i.e. this is an event message coming from kernel-space), then we also skip the tracking. This approach is good if we use the same socket to send commands to kernel-space (that we want to track) and to listen to events (that we do not track).
References nlmsghdr::nlmsg_pid.
mnl_nlmsg_put_extra_header - reserve and prepare room for an extra header
nlh | pointer to Netlink header |
size | size of the extra header that we want to put |
This function sets to zero the room that is required to put the extra header after the initial Netlink header. This function also increases the nlmsg_len field. You have to invoke mnl_nlmsg_put_header() before you call this function. This function returns a pointer to the extra header.
References len, MNL_ALIGN, and nlmsghdr::nlmsg_len.
Referenced by nfacct_nlmsg_build_hdr(), nfct_helper_nlmsg_build_hdr(), nfct_timeout_nlmsg_build_hdr(), nft_compatible_revision(), and nft_nlmsg_build_hdr().
mnl_nlmsg_put_header - reserve and prepare room for Netlink header
buf | memory already allocated to store the Netlink header |
This function sets to zero the room that is required to put the Netlink header in the memory buffer passed as parameter. This function also initializes the nlmsg_len field to the size of the Netlink header. This function returns a pointer to the Netlink header structure.
References buf, len, MNL_ALIGN, nlh, and nlmsghdr::nlmsg_len.
Referenced by nfacct_nlmsg_build_hdr(), nfct_helper_nlmsg_build_hdr(), nfct_timeout_nlmsg_build_hdr(), nft_compatible_revision(), and nft_nlmsg_build_hdr().
mnl_nlmsg_seq_ok - perform sequence tracking
nlh | current netlink message that we are handling |
seq | last sequence number used to send a message |
This functions returns true if the sequence tracking is fulfilled, otherwise false is returned. We skip the tracking for netlink messages whose sequence number is zero since it is usually reserved for event-based kernel notifications. On the other hand, if seq is set but the message sequence number is not set (i.e. this is an event message coming from kernel-space), then we also skip the tracking. This approach is good if we use the same socket to send commands to kernel-space (that we want to track) and to listen to events (that we do not track).
References nlmsghdr::nlmsg_seq.
size_t mnl_nlmsg_size | ( | size_t | len | ) |
mnl_nlmsg_size - calculate the size of Netlink message (without alignment)
len | length of the Netlink payload |
This function returns the size of a netlink message (header plus payload) without alignment.
References MNL_NLMSG_HDRLEN.
nfacct_nlmsg_build_hdr - build netlink message header for nfacct subsystem
buf | buffer where this function outputs the netlink message. |
cmd | nfacct nfnetlink command. |
flags | netlink flags. |
seq | sequence number for this message. |
Possible commands:
Examples:
References flags, mnl_nlmsg_put_extra_header(), mnl_nlmsg_put_header(), nfgenmsg::nfgen_family, NFNETLINK_V0, NFNL_SUBSYS_ACCT, nlh, NLM_F_REQUEST, nlmsghdr::nlmsg_flags, nlmsghdr::nlmsg_seq, nlmsghdr::nlmsg_type, nfgenmsg::res_id, and nfgenmsg::version.
nfacct_nlmsg_build_payload - build payload from accounting object
nlh | netlink message that you want to use to add the payload. |
nfacct | pointer to a accounting object |
References nfacct::bitset, nfacct::bytes, nfacct::flags, htobe64, mnl_attr_put_strz(), mnl_attr_put_u32(), mnl_attr_put_u64(), nfacct::name, NFACCT_ATTR_BYTES, NFACCT_ATTR_FLAGS, NFACCT_ATTR_NAME, NFACCT_ATTR_PKTS, NFACCT_ATTR_QUOTA, NFACCT_BYTES, NFACCT_FLAGS, NFACCT_NAME, NFACCT_PKTS, NFACCT_QUOTA, nfacct::pkts, and nfacct::quota.
nfacct_nlmsg_parse_payload - set accounting object attributes from message
nlh | netlink message that you want to use to add the payload. |
nfacct | pointer to a accounting object |
This function returns -1 in case that some mandatory attributes are missing. On sucess, it returns 0.
References be64toh, mnl_attr_get_str(), mnl_attr_get_u32(), mnl_attr_get_u64(), mnl_attr_parse(), mnl_nlmsg_get_payload(), NFACCT_ATTR_BYTES, NFACCT_ATTR_FLAGS, NFACCT_ATTR_NAME, NFACCT_ATTR_PKTS, NFACCT_ATTR_QUOTA, nfacct_attr_set(), nfacct_attr_set_str(), nfacct_attr_set_u64(), NFACCT_BYTES, NFACCT_FLAGS, NFACCT_MAX, NFACCT_NAME, NFACCT_PKTS, and NFACCT_QUOTA.
struct nlmsghdr* nfct_helper_nlmsg_build_hdr | ( | char * | buf, |
uint8_t | cmd, | ||
uint16_t | flags, | ||
uint32_t | seq | ||
) |
nfct_helper_nlmsg_build_hdr - build netlink message header for nfct_helper subsystem
buf | buffer where this function outputs the netlink message. |
cmd | nfct_helper nfnetlink command. |
flags | netlink flags. |
seq | sequence number for this message. |
Possible commands:
Examples:
References flags, mnl_nlmsg_put_extra_header(), mnl_nlmsg_put_header(), nfgenmsg::nfgen_family, NFNETLINK_V0, NFNL_SUBSYS_CTHELPER, nlh, NLM_F_REQUEST, nlmsghdr::nlmsg_flags, nlmsghdr::nlmsg_seq, nlmsghdr::nlmsg_type, nfgenmsg::res_id, and nfgenmsg::version.
void nfct_helper_nlmsg_build_payload | ( | struct nlmsghdr * | nlh, |
struct nfct_helper * | h | ||
) |
nfct_helper_nlmsg_build_payload - build payload from helper object
nlh | netlink message that you want to use to add the payload. |
nfct_helper | pointer to a helper object |
References nfct_helper::bitset, nfct_helper::expect_policy, nfct_helper::l3num, nfct_helper::l4num, mnl_attr_nest_end(), mnl_attr_nest_start(), mnl_attr_put_strz(), mnl_attr_put_u16(), mnl_attr_put_u32(), mnl_attr_put_u8(), nfct_helper::name, NFCTH_ATTR_NAME, NFCTH_ATTR_POLICY1, NFCTH_ATTR_POLICY2, NFCTH_ATTR_POLICY3, NFCTH_ATTR_POLICY4, NFCTH_ATTR_PRIV_DATA_LEN, NFCTH_ATTR_PROTO_L3NUM, NFCTH_ATTR_PROTO_L4NUM, NFCTH_ATTR_QUEUE_NUM, NFCTH_ATTR_STATUS, NFCTH_NAME, NFCTH_POLICY, NFCTH_POLICY_SET_NUM, NFCTH_PRIV_DATA_LEN, NFCTH_QUEUE_NUM, NFCTH_STATUS, NFCTH_TUPLE, NFCTH_TUPLE_L3PROTONUM, NFCTH_TUPLE_L4PROTONUM, nfct_helper::priv_data_len, nfct_helper::queue_num, nfct_helper::status, and nfct_helper::tuple.
int nfct_helper_nlmsg_parse_payload | ( | const struct nlmsghdr * | nlh, |
struct nfct_helper * | h | ||
) |
nfct_helper_nlmsg_parse_payload - set helper object attributes from message
nlh | netlink message that you want to use to add the payload. |
nfct_helper | pointer to a helper object |
This function returns -1 in case that some mandatory attributes are missing. On sucess, it returns 0.
References mnl_attr_get_str(), mnl_attr_get_u32(), mnl_attr_parse(), mnl_nlmsg_get_payload(), nfct_helper_attr_set_str(), nfct_helper_attr_set_u32(), NFCTH_ATTR_NAME, NFCTH_ATTR_PRIV_DATA_LEN, NFCTH_ATTR_QUEUE_NUM, NFCTH_ATTR_STATUS, NFCTH_MAX, NFCTH_NAME, NFCTH_POLICY, NFCTH_PRIV_DATA_LEN, NFCTH_QUEUE_NUM, NFCTH_STATUS, and NFCTH_TUPLE.
struct nlmsghdr* nfct_timeout_nlmsg_build_hdr | ( | char * | buf, |
uint8_t | cmd, | ||
uint16_t | flags, | ||
uint32_t | seq | ||
) |
nfct_timeout_nlmsg_build_hdr - build netlink message header for ct timeout
buf | buffer where this function outputs the netlink message. |
cmd | nfct_timeout nfnetlink command. |
flags | netlink flags. |
seq | sequence number for this message. |
Possible commands:
References flags, mnl_nlmsg_put_extra_header(), mnl_nlmsg_put_header(), nfgenmsg::nfgen_family, NFNETLINK_V0, NFNL_SUBSYS_CTNETLINK_TIMEOUT, nlh, NLM_F_REQUEST, nlmsghdr::nlmsg_flags, nlmsghdr::nlmsg_seq, nlmsghdr::nlmsg_type, nfgenmsg::res_id, and nfgenmsg::version.
void nfct_timeout_nlmsg_build_payload | ( | struct nlmsghdr * | nlh, |
const struct nfct_timeout * | t | ||
) |
nfct_timeout_nlmsg_build_payload - build payload from ct timeout object
nlh | netlink message that you want to use to add the payload. |
t | pointer to a conntrack timeout object |
References nfct_timeout::attrset, CTA_TIMEOUT_DATA, CTA_TIMEOUT_L3PROTO, CTA_TIMEOUT_L4PROTO, CTA_TIMEOUT_NAME, nfct_timeout::l3num, nfct_timeout::l4num, mnl_attr_nest_end(), mnl_attr_nest_start(), mnl_attr_put_strz(), mnl_attr_put_u16(), mnl_attr_put_u32(), mnl_attr_put_u8(), nfct_timeout::name, NFCT_TIMEOUT_ATTR_L3PROTO, NFCT_TIMEOUT_ATTR_L4PROTO, NFCT_TIMEOUT_ATTR_NAME, NFCT_TIMEOUT_ATTR_POLICY, nfct_timeout::polset, and nfct_timeout::timeout.
int nfct_timeout_nlmsg_parse_payload | ( | const struct nlmsghdr * | nlh, |
struct nfct_timeout * | t | ||
) |
nfct_timeout_nlmsg_parse_payload - set timeout object attributes from message
nlh | netlink message that you want to use to add the payload. |
t | pointer to a conntrack timeout object |
This function returns -1 in case that some mandatory attributes are missing. On sucess, it returns 0.
References CTA_TIMEOUT_DATA, CTA_TIMEOUT_L3PROTO, CTA_TIMEOUT_L4PROTO, CTA_TIMEOUT_MAX, CTA_TIMEOUT_NAME, mnl_attr_get_str(), mnl_attr_get_u16(), mnl_attr_get_u8(), mnl_attr_parse(), mnl_nlmsg_get_payload(), NFCT_TIMEOUT_ATTR_L3PROTO, NFCT_TIMEOUT_ATTR_L4PROTO, NFCT_TIMEOUT_ATTR_NAME, nfct_timeout_attr_set(), nfct_timeout_attr_set_u16(), and nfct_timeout_attr_set_u8().
nfq_pkt_parse - set packet attributes from netlink message
nlh | netlink message that you want to read. |
pkt | pointer to the packet to set. |
This function returns MNL_CB_ERROR if any error occurs, or MNL_CB_OK on success.
References mnl_attr_parse().
void* mnl_nlmsg_batch::buf |
Referenced by mnl_nlmsg_batch_head(), mnl_nlmsg_batch_next(), mnl_nlmsg_batch_reset(), and mnl_nlmsg_batch_start().
size_t mnl_nlmsg_batch::buflen |
void* mnl_nlmsg_batch::cur |
Referenced by mnl_nlmsg_batch_current(), mnl_nlmsg_batch_next(), mnl_nlmsg_batch_reset(), and mnl_nlmsg_batch_start().
size_t mnl_nlmsg_batch::limit |
Referenced by mnl_nlmsg_batch_next(), and mnl_nlmsg_batch_start().
bool mnl_nlmsg_batch::overflow |
Referenced by mnl_nlmsg_batch_next(), mnl_nlmsg_batch_reset(), and mnl_nlmsg_batch_start().