libnl
3.2.24-rc1
|
Representation of a netlink socket. More...
Allocation | |
struct nl_sock * | nl_socket_alloc (void) |
Allocate new netlink socket. More... | |
struct nl_sock * | nl_socket_alloc_cb (struct nl_cb *cb) |
Allocate new socket with custom callbacks. More... | |
void | nl_socket_free (struct nl_sock *sk) |
Free a netlink socket. More... | |
Sequence Numbers | |
void | nl_socket_disable_seq_check (struct nl_sock *sk) |
Disable sequence number checking. More... | |
unsigned int | nl_socket_use_seq (struct nl_sock *sk) |
Use next sequence number. More... | |
void | nl_socket_disable_auto_ack (struct nl_sock *sk) |
Disable automatic request for ACK. More... | |
void | nl_socket_enable_auto_ack (struct nl_sock *sk) |
Enable automatic request for ACK (default) More... | |
Source Idenficiation | |
uint32_t | nl_socket_get_local_port (const struct nl_sock *sk) |
void | nl_socket_set_local_port (struct nl_sock *sk, uint32_t port) |
Set local port of socket. More... | |
Group Subscriptions | |
int | nl_socket_add_memberships (struct nl_sock *sk, int group,...) |
Join groups. More... | |
int | nl_socket_add_membership (struct nl_sock *sk, int group) |
int | nl_socket_drop_memberships (struct nl_sock *sk, int group,...) |
Leave groups. More... | |
int | nl_socket_drop_membership (struct nl_sock *sk, int group) |
void | nl_join_groups (struct nl_sock *sk, int groups) |
Join multicast groups (deprecated) More... | |
File Descriptor | |
int | nl_socket_get_fd (const struct nl_sock *sk) |
Return the file descriptor of the backing socket. More... | |
int | nl_socket_set_nonblocking (const struct nl_sock *sk) |
Set file descriptor of socket to non-blocking state. More... | |
void | nl_socket_enable_msg_peek (struct nl_sock *sk) |
Enable use of MSG_PEEK when reading from socket. More... | |
void | nl_socket_disable_msg_peek (struct nl_sock *sk) |
Disable use of MSG_PEEK when reading from socket. More... | |
Callback Handler | |
struct nl_cb * | nl_socket_get_cb (const struct nl_sock *sk) |
void | nl_socket_set_cb (struct nl_sock *sk, struct nl_cb *cb) |
int | nl_socket_modify_cb (struct nl_sock *sk, enum nl_cb_type type, enum nl_cb_kind kind, nl_recvmsg_msg_cb_t func, void *arg) |
Modify the callback handler associated with the socket. More... | |
int | nl_socket_modify_err_cb (struct nl_sock *sk, enum nl_cb_kind kind, nl_recvmsg_err_cb_t func, void *arg) |
Modify the error callback handler associated with the socket. More... | |
Utilities | |
int | nl_socket_set_buffer_size (struct nl_sock *sk, int rxbuf, int txbuf) |
Set socket buffer size of netlink socket. More... | |
int | nl_socket_set_msg_buf_size (struct nl_sock *sk, size_t bufsize) |
Set default message buffer size of netlink socket. More... | |
size_t | nl_socket_get_msg_buf_size (struct nl_sock *sk) |
Get default message buffer size of netlink socket. More... | |
int | nl_socket_set_passcred (struct nl_sock *sk, int state) |
Enable/disable credential passing on netlink socket. More... | |
int | nl_socket_recv_pktinfo (struct nl_sock *sk, int state) |
Enable/disable receival of additional packet information. More... | |
Representation of a netlink socket.
Related sections in the development guide:
|
read |
Allocate new netlink socket.
Definition at line 142 of file socket.c.
References nl_cb_alloc().
Referenced by nl_cache_mngr_alloc().
|
read |
Allocate new socket with custom callbacks.
cb | Callback handler |
The reference to the callback handler is taken into account automatically, it is released again upon calling nl_socket_free().
void nl_socket_free | ( | struct nl_sock * | sk | ) |
Free a netlink socket.
sk | Netlink socket. |
Definition at line 180 of file socket.c.
Referenced by nl_cache_mngr_alloc(), and nl_cache_mngr_free().
void nl_socket_disable_seq_check | ( | struct nl_sock * | sk | ) |
Disable sequence number checking.
sk | Netlink socket. |
Disables checking of sequence numbers on the netlink socket This is required to allow messages to be processed which were not requested by a preceding request message, e.g. netlink events.
Definition at line 219 of file socket.c.
References NL_CB_CUSTOM, NL_CB_SEQ_CHECK, and nl_cb_set().
Referenced by nl_cache_mngr_alloc().
unsigned int nl_socket_use_seq | ( | struct nl_sock * | sk | ) |
void nl_socket_disable_auto_ack | ( | struct nl_sock * | sk | ) |
Disable automatic request for ACK.
sk | Netlink socket. |
The default behaviour of a socket is to request an ACK for each message sent to allow for the caller to synchronize to the completion of the netlink operation. This function disables this behaviour and will result in requests being sent which will not have the NLM_F_ACK flag set automatically. However, it is still possible for the caller to set the NLM_F_ACK flag explicitely.
void nl_socket_enable_auto_ack | ( | struct nl_sock * | sk | ) |
Enable automatic request for ACK (default)
sk | Netlink socket. |
void nl_socket_set_local_port | ( | struct nl_sock * | sk, |
uint32_t | port | ||
) |
int nl_socket_add_memberships | ( | struct nl_sock * | sk, |
int | group, | ||
... | |||
) |
Join groups.
sk | Netlink socket |
group | Group identifier |
Joins the specified groups using the modern socket option which is available since kernel version 2.6.14. It allows joining an almost arbitary number of groups without limitation. The list of groups has to be terminated by 0 (NFNLGRP_NONE).
Make sure to use the correct group definitions as the older bitmask definitions for nl_join_groups() are likely to still be present for backward compatibility reasons.
int nl_socket_drop_memberships | ( | struct nl_sock * | sk, |
int | group, | ||
... | |||
) |
Leave groups.
sk | Netlink socket |
group | Group identifier |
Leaves the specified groups using the modern socket option which is available since kernel version 2.6.14. The list of groups has to terminated by 0 (NFNLGRP_NONE).
void nl_join_groups | ( | struct nl_sock * | sk, |
int | groups | ||
) |
Join multicast groups (deprecated)
sk | Netlink socket. |
groups | Bitmask of groups to join. |
This function defines the old way of joining multicast group which has to be done prior to calling nl_connect(). It works on any kernel version but is very limited as only 32 groups can be joined.
int nl_socket_get_fd | ( | const struct nl_sock * | sk | ) |
Return the file descriptor of the backing socket.
sk | Netlink socket |
Only valid after calling nl_connect() to create and bind the respective socket.
Definition at line 475 of file socket.c.
Referenced by nl_cache_mngr_data_ready(), nl_cache_mngr_get_fd(), and nl_cache_mngr_poll().
int nl_socket_set_nonblocking | ( | const struct nl_sock * | sk | ) |
Set file descriptor of socket to non-blocking state.
sk | Netlink socket. |
Definition at line 486 of file socket.c.
Referenced by nl_cache_mngr_alloc().
void nl_socket_enable_msg_peek | ( | struct nl_sock * | sk | ) |
void nl_socket_disable_msg_peek | ( | struct nl_sock * | sk | ) |
int nl_socket_modify_cb | ( | struct nl_sock * | sk, |
enum nl_cb_type | type, | ||
enum nl_cb_kind | kind, | ||
nl_recvmsg_msg_cb_t | func, | ||
void * | arg | ||
) |
Modify the callback handler associated with the socket.
sk | Netlink socket. |
type | which type callback to set |
kind | kind of callback |
func | callback function |
arg | argument to be passed to callback function |
Definition at line 546 of file socket.c.
References nl_cb_set().
int nl_socket_modify_err_cb | ( | struct nl_sock * | sk, |
enum nl_cb_kind | kind, | ||
nl_recvmsg_err_cb_t | func, | ||
void * | arg | ||
) |
Modify the error callback handler associated with the socket.
sk | Netlink socket. |
kind | kind of callback |
func | callback function |
arg | argument to be passed to callback function |
Definition at line 562 of file socket.c.
References nl_cb_err().
int nl_socket_set_buffer_size | ( | struct nl_sock * | sk, |
int | rxbuf, | ||
int | txbuf | ||
) |
Set socket buffer size of netlink socket.
sk | Netlink socket. |
rxbuf | New receive socket buffer size in bytes. |
txbuf | New transmit socket buffer size in bytes. |
Sets the socket buffer size of a netlink socket to the specified values rxbuf
and txbuf
. Providing a value of 0
assumes a good default value.
Definition at line 588 of file socket.c.
Referenced by nl_connect().
int nl_socket_set_msg_buf_size | ( | struct nl_sock * | sk, |
size_t | bufsize | ||
) |
Set default message buffer size of netlink socket.
sk | Netlink socket. |
bufsize | Default message buffer size in bytes. |
Sets the default message buffer size to the specified length in bytes. The default message buffer size limits the maximum message size the socket will be able to receive. It is generally recommneded to specify a buffer size no less than the size of a memory page.
size_t nl_socket_get_msg_buf_size | ( | struct nl_sock * | sk | ) |
int nl_socket_set_passcred | ( | struct nl_sock * | sk, |
int | state | ||
) |