Allocation | |
struct nl_handle * | nl_handle_alloc (void) |
Allocate new netlink socket handle. | |
struct nl_handle * | nl_handle_alloc_cb (struct nl_cb *cb) |
Allocate new socket handle with custom callbacks. | |
void | nl_handle_destroy (struct nl_handle *handle) |
Destroy netlink handle. | |
Sequence Numbers | |
void | nl_disable_sequence_check (struct nl_handle *handle) |
Disable sequence number checking. | |
unsigned int | nl_socket_use_seq (struct nl_handle *handle) |
Use next sequence number. | |
Source Idenficiation | |
uint32_t | nl_socket_get_local_port (struct nl_handle *handle) |
void | nl_socket_set_local_port (struct nl_handle *handle, uint32_t port) |
Set local port of socket. | |
Group Subscriptions | |
int | nl_socket_add_membership (struct nl_handle *handle, int group) |
Join a group. | |
int | nl_socket_drop_membership (struct nl_handle *handle, int group) |
Leave a group. | |
void | nl_join_groups (struct nl_handle *handle, int groups) |
Join multicast groups (deprecated). | |
Peer Identfication | |
uint32_t | nl_socket_get_peer_port (struct nl_handle *handle) |
void | nl_socket_set_peer_port (struct nl_handle *handle, uint32_t port) |
File Descriptor | |
int | nl_socket_get_fd (struct nl_handle *handle) |
int | nl_socket_set_nonblocking (struct nl_handle *handle) |
Set file descriptor of socket handle to non-blocking state. | |
void | nl_socket_enable_msg_peek (struct nl_handle *handle) |
Enable use of MSG_PEEK when reading from socket. | |
void | nl_socket_disable_msg_peek (struct nl_handle *handle) |
Disable use of MSG_PEEK when reading from socket. | |
Callback Handler | |
struct nl_cb * | nl_socket_get_cb (struct nl_handle *handle) |
void | nl_socket_set_cb (struct nl_handle *handle, struct nl_cb *cb) |
int | nl_socket_modify_cb (struct nl_handle *handle, enum nl_cb_type type, enum nl_cb_kind kind, nl_recvmsg_msg_cb_t func, void *arg) |
Modify the callback handler associated to the socket. | |
Utilities | |
int | nl_set_buffer_size (struct nl_handle *handle, int rxbuf, int txbuf) |
Set socket buffer size of netlink handle. | |
int | nl_set_passcred (struct nl_handle *handle, int state) |
Enable/disable credential passing on netlink handle. | |
int | nl_socket_recv_pktinfo (struct nl_handle *handle, int state) |
Enable/disable receival of additional packet information. |
struct nl_handle *handle; // Allocate and initialize a new netlink handle handle = nl_handle_alloc(); // Use nl_socket_get_fd() to fetch the file description, for example to // put a socket into non-blocking i/o mode. fcntl(nl_socket_get_fd(handle), F_SETFL, O_NONBLOCK);
// Event notifications are typically sent to multicast addresses which // represented by groups. Join a group to f.e. receive link notifications. nl_socket_add_membership(handle, RTNLGRP_LINK);
// Finally destroy the netlink handle nl_handle_destroy(handle);
struct nl_handle* nl_handle_alloc | ( | void | ) | [read] |
Definition at line 194 of file socket.c.
References nl_cb_alloc().
struct nl_handle* nl_handle_alloc_cb | ( | struct nl_cb * | cb | ) | [read] |
cb | Callback handler |
void nl_handle_destroy | ( | struct nl_handle * | handle | ) |
handle | Netlink handle. |
Definition at line 228 of file socket.c.
Referenced by nl_cache_mngr_free().
void nl_disable_sequence_check | ( | struct nl_handle * | handle | ) |
handle | Netlink handle. |
Definition at line 267 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_handle * | handle | ) |
void nl_socket_set_local_port | ( | struct nl_handle * | handle, | |
uint32_t | port | |||
) |
int nl_socket_add_membership | ( | struct nl_handle * | handle, | |
int | group | |||
) |
handle | Netlink handle | |
group | Group identifier |
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.
Definition at line 343 of file socket.c.
Referenced by nl_cache_mngr_add().
int nl_socket_drop_membership | ( | struct nl_handle * | handle, | |
int | group | |||
) |
handle | Netlink handle | |
group | Group identifier |
Definition at line 370 of file socket.c.
Referenced by nl_cache_mngr_add().
void nl_join_groups | ( | struct nl_handle * | handle, | |
int | groups | |||
) |
handle | Netlink handle. | |
groups | Bitmask of groups to join. |
int nl_socket_set_nonblocking | ( | struct nl_handle * | handle | ) |
handle | Netlink socket |
Definition at line 436 of file socket.c.
Referenced by nl_cache_mngr_alloc().
void nl_socket_enable_msg_peek | ( | struct nl_handle * | handle | ) |
void nl_socket_disable_msg_peek | ( | struct nl_handle * | handle | ) |
int nl_socket_modify_cb | ( | struct nl_handle * | handle, | |
enum nl_cb_type | type, | |||
enum nl_cb_kind | kind, | |||
nl_recvmsg_msg_cb_t | func, | |||
void * | arg | |||
) |
handle | netlink handle | |
type | which type callback to set | |
kind | kind of callback | |
func | callback function | |
arg | argument to be passwd to callback function |
Definition at line 493 of file socket.c.
References nl_cb_set().
Referenced by nl_cache_mngr_alloc().
int nl_set_buffer_size | ( | struct nl_handle * | handle, | |
int | rxbuf, | |||
int | txbuf | |||
) |
handle | Netlink handle. | |
rxbuf | New receive socket buffer size in bytes. | |
txbuf | New transmit socket buffer size in bytes. |
rxbuf
and txbuf
. Providing a value of 0
assumes a good default value.
Definition at line 520 of file socket.c.
Referenced by nl_connect().
int nl_set_passcred | ( | struct nl_handle * | handle, | |
int | state | |||
) |
int nl_socket_recv_pktinfo | ( | struct nl_handle * | handle, | |
int | state | |||
) |