rtnetlink/
lib.rs

1// SPDX-License-Identifier: MIT
2
3//! This crate provides methods to manipulate networking resources (links,
4//! addresses, arp tables, route tables) via the netlink protocol.
5
6#![allow(clippy::module_inception)]
7
8pub use netlink_packet_core as packet_core;
9pub use netlink_packet_route as packet_route;
10pub use netlink_proto as proto;
11pub use netlink_sys as sys;
12
13mod addr;
14mod connection;
15pub mod constants;
16mod errors;
17mod handle;
18mod link;
19mod macros;
20mod multicast;
21mod neighbour;
22#[cfg(not(target_os = "freebsd"))]
23mod ns;
24mod route;
25mod rule;
26#[cfg(not(target_os = "freebsd"))]
27mod traffic_control;
28
29#[cfg(feature = "tokio_socket")]
30pub use crate::connection::{new_connection, new_multicast_connection};
31#[cfg(not(target_os = "freebsd"))]
32pub use crate::ns::{NetworkNamespace, NETNS_PATH, NONE_FS, SELF_NS_PATH};
33#[cfg(not(target_os = "freebsd"))]
34pub use crate::traffic_control::{
35    QDiscDelRequest, QDiscGetRequest, QDiscHandle, QDiscNewRequest,
36    TrafficChainGetRequest, TrafficChainHandle, TrafficClassGetRequest,
37    TrafficClassHandle, TrafficFilterGetRequest, TrafficFilterHandle,
38    TrafficFilterNewRequest,
39};
40pub use crate::{
41    addr::{
42        AddressAddRequest, AddressDelRequest, AddressGetRequest, AddressHandle,
43        AddressMessageBuilder,
44    },
45    connection::{
46        from_socket, new_connection_with_socket,
47        new_multicast_connection_with_socket,
48    },
49    errors::Error,
50    handle::Handle,
51    link::{
52        LinkAddRequest, LinkBond, LinkBondPort, LinkBridge, LinkBridgePort,
53        LinkBridgeVlan, LinkDelPropRequest, LinkDelRequest, LinkDummy,
54        LinkGetRequest, LinkHandle, LinkMacSec, LinkMacVlan, LinkMacVtap,
55        LinkMessageBuilder, LinkNetkit, LinkSetRequest, LinkUnspec, LinkVeth,
56        LinkVlan, LinkVrf, LinkVxlan, LinkWireguard, LinkXfrm, QosMapping,
57    },
58    multicast::MulticastGroup,
59    neighbour::{
60        NeighbourAddRequest, NeighbourDelRequest, NeighbourGetRequest,
61        NeighbourHandle,
62    },
63    route::{
64        IpVersion, RouteAddRequest, RouteDelRequest, RouteGetRequest,
65        RouteHandle, RouteMessageBuilder, RouteNextHopBuilder,
66    },
67    rule::{RuleAddRequest, RuleDelRequest, RuleGetRequest, RuleHandle},
68};