Crate mnl_sys

Crate mnl_sys 

Source
Expand description

Low level FFI bindings to libmnl. A minimalistic user-space library oriented to Netlink developers. See mnl for a higher level safe abstraction.

These bindings were generated with bindgen. See the generate_bindings.sh script in the repository.

§Linking to libmnl

By default this crate uses pkg-config to find and link to libmnl. To manually configure where to look for the library, set the environment variable LIBMNL_LIB_DIR to point to the directory where libmnl.so or libmnl.a resides.

§Selecting version of libmnl

This crate has bindings for multiple versions of libmnl. All bindings are generated by bindgen via the generate_bindings.sh script in this repository.

Only one version of libmnl can be exposed via this crate. By default the crate exports the bindings for the oldest supported version (libmnl-1.0.3). To get newer versions activate the corresponding features. See Cargo.toml for available features/versions.

So for example, to get bindings to libmnl-1.0.4 depend on this crate like this:

[dependencies]
mnl-sys = { version = "0.1", features = ["mnl-1-0-4"] }

Re-exports§

pub use libc;

Structs§

mnl_nlmsg_batch
mnl_socket

Constants§

MNL_ALIGNTO
MNL_CB_ERROR
MNL_CB_OK
MNL_CB_STOP
MNL_SOCKET_AUTOPID
MNL_TYPE_BINARY
MNL_TYPE_FLAG
MNL_TYPE_MAX
MNL_TYPE_MSECS
MNL_TYPE_NESTED
MNL_TYPE_NESTED_COMPAT
MNL_TYPE_NUL_STRING
MNL_TYPE_STRING
MNL_TYPE_U8
MNL_TYPE_U16
MNL_TYPE_U32
MNL_TYPE_U64
MNL_TYPE_UNSPEC

Functions§

MNL_ALIGN
MNL_SOCKET_BUFFER_SIZE
mnl_attr_get_len
mnl_attr_get_payload
mnl_attr_get_payload_len
mnl_attr_get_str
mnl_attr_get_type
mnl_attr_get_u8
mnl_attr_get_u16
mnl_attr_get_u32
mnl_attr_get_u64
mnl_attr_nest_cancel
mnl_attr_nest_end
mnl_attr_nest_start
mnl_attr_nest_start_check
mnl_attr_next
mnl_attr_ok
mnl_attr_parse
mnl_attr_parse_nested
mnl_attr_parse_payload
mnl_attr_put
mnl_attr_put_check
mnl_attr_put_str
mnl_attr_put_str_check
mnl_attr_put_strz
mnl_attr_put_strz_check
mnl_attr_put_u8
mnl_attr_put_u8_check
mnl_attr_put_u16
mnl_attr_put_u32
mnl_attr_put_u64
mnl_attr_put_u16_check
mnl_attr_put_u32_check
mnl_attr_put_u64_check
mnl_attr_type_valid
mnl_attr_validate
mnl_attr_validate2
mnl_cb_run
mnl_cb_run2
mnl_nlmsg_batch_current
mnl_nlmsg_batch_head
mnl_nlmsg_batch_is_empty
mnl_nlmsg_batch_next
mnl_nlmsg_batch_reset
mnl_nlmsg_batch_size
mnl_nlmsg_batch_start
mnl_nlmsg_batch_stop
mnl_nlmsg_fprintf
mnl_nlmsg_get_payload
mnl_nlmsg_get_payload_len
mnl_nlmsg_get_payload_offset
mnl_nlmsg_get_payload_tail
mnl_nlmsg_next
mnl_nlmsg_ok
mnl_nlmsg_portid_ok
mnl_nlmsg_put_extra_header
mnl_nlmsg_put_header
mnl_nlmsg_seq_ok
mnl_nlmsg_size
mnl_socket_bind
mnl_socket_close
mnl_socket_get_fd
mnl_socket_get_portid
mnl_socket_getsockopt
mnl_socket_open
mnl_socket_recvfrom
mnl_socket_sendto
mnl_socket_setsockopt

Type Aliases§

mnl_attr_cb_t
mnl_attr_data_type
mnl_cb_t