rtnetlink/
errors.rs

1// SPDX-License-Identifier: MIT
2
3use netlink_packet_core::{ErrorMessage, NetlinkMessage};
4use netlink_packet_route::RtnlMessage;
5use thiserror::Error;
6
7#[derive(Clone, Eq, PartialEq, Debug, Error)]
8pub enum Error {
9    #[error("Received an unexpected message {0:?}")]
10    UnexpectedMessage(NetlinkMessage<RtnlMessage>),
11
12    #[error("Received a netlink error message {0}")]
13    NetlinkError(ErrorMessage),
14
15    #[error("A netlink request failed")]
16    RequestFailed,
17
18    #[error("Namespace error {0}")]
19    NamespaceError(String),
20
21    #[error(
22        "Received a link message (RTM_GETLINK, RTM_NEWLINK, RTM_SETLINK or RTMGETLINK) with an invalid hardware address attribute: {0:?}."
23    )]
24    InvalidHardwareAddress(Vec<u8>),
25
26    #[error("Failed to parse an IP address: {0:?}")]
27    InvalidIp(Vec<u8>),
28
29    #[error("Failed to parse a network address (IP and mask): {0:?}/{1:?}")]
30    InvalidAddress(Vec<u8>, Vec<u8>),
31
32    #[error("Attempting to set and Invalid NLA: {0}")]
33    InvalidNla(String),
34}