rtnetlink/
errors.rs

1// SPDX-License-Identifier: MIT
2
3use 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}