Crates.io | netlink-sys-mio-0-8 |
lib.rs | netlink-sys-mio-0-8 |
version | 0.8.3 |
source | src |
created_at | 2022-04-16 02:27:59.828022+00 |
updated_at | 2022-04-16 02:27:59.828022+00 |
description | netlink sockets, with optional integration with tokio (updated for mio 0.8) |
homepage | https://github.com/hugo-cuenca/netlink |
repository | https://github.com/hugo-cuenca/netlink |
max_upload_size | |
id | 568808 |
size | 82,710 |
Forked from netlink-sys
, bumped the mio
version to 0.8
.
Original README.md
follows:
This project aims at providing building blocks for netlink (see man 7 netlink
).
the netlink_sys
crate provides netlink sockets. Integration with mio
and tokio
is optional.
Each netlink protocol has a netlink-packet-<protocol_name>
crate that provides the packets for this protocol:
netlink-packet-route
provides messages for the route protocolnetlink-packet-audit
provides messages for the audit protocolnetlink-packet-sock-diag
provides messages for the sock-diag
protocolnetlink-packet-generic
provides message for the generic netlink
protocolnetlink-packet-netfilter
provides message for the NETLINK_NETFILTER
protocolthe netlink-packet-core
is the glue for all the other netlink-packet-*
crates. It
provides a NetlinkMessage<T>
type that represent any netlink message for any sub-protocol.
the netlink_proto
crate is an asynchronous implementation of the netlink protocol. It only
depends on netlink-packet-core
for the NetlinkMessage
type and netlink-sys
for the socket.
the rtnetlink
crate provides higher level abstraction for the route protocol
the audit
crate provides higher level abstractions for the audit protocol.
the genetlink
crate provide higher level abstraction for the
generic netlink protocol
the ethtool
crate provide higher level abstraction for
ethtool netlink protocol
My main resource so far has been the source code of pyroute2
(python) and netlink
(golang)
a lot. These two projects are great, and very nicely written. As someone who does not read C fluently, and that does not
know much about netlink, they have been invaluable.
I'd also like to praise libnl
for its documentation. It helped me a lot in understanding the protocol basics.
The whole packet parsing logic is inspired by @whitequark excellent blog posts (part 1, part 2 and part 3, although I've only really used the concepts described in the first blog post).
Thanks also to the people behind tokio for the amazing tool they are building, and the support they provide.