1use thiserror::Error;
4
5use crate::packet::{ErrorMessage, NetlinkMessage, RtnlMessage};
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}