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);
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* 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 | |||
| ) |
1.5.5