netlink_packet_route/tc/
error.rs
1use netlink_packet_utils::nla::NlaError;
4use netlink_packet_utils::DecodeError;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum TcError {
9 #[error("Invalid {kind}")]
10 InvalidValue {
11 kind: &'static str,
12 #[source]
13 error: DecodeError,
14 },
15
16 #[error("failed to parse {kind} TCA_OPTIONS attributes")]
17 ParseTcaOptionAttributes {
18 kind: &'static str,
19 #[source]
20 error: DecodeError,
21 },
22
23 #[error("failed to parse {kind}")]
24 ParseFilterMatchallOption {
25 kind: &'static str,
26 #[source]
27 error: DecodeError,
28 },
29
30 #[error("failed to parse {kind}")]
31 ParseAction {
32 kind: &'static str,
33 #[source]
34 error: DecodeError,
35 },
36
37 #[error("failed to parse TCA_ACT_OPTIONS for kind {kind}")]
38 ParseActOptions {
39 kind: String,
40 #[source]
41 error: DecodeError,
42 },
43
44 #[error("failed to parse mirror action")]
45 ParseMirrorAction(#[source] DecodeError),
46
47 #[error("Unknown matchall option: {kind}")]
48 UnknownFilterMatchAllOption {
49 kind: String,
50 #[source]
51 error: DecodeError,
52 },
53
54 #[error("Unknown NLA type: {kind}")]
55 UnknownNla {
56 kind: u16,
57 #[source]
58 error: DecodeError,
59 },
60
61 #[error("Unknown TC_OPTIONS: {kind}")]
62 UnknownOption {
63 kind: String,
64 #[source]
65 error: DecodeError,
66 },
67
68 #[error(transparent)]
69 ParseNla(#[from] NlaError),
70
71 #[error("failed to parse TCA_STATS2 for kind {kind}")]
72 ParseTcaStats2 {
73 kind: String,
74 #[source]
75 error: DecodeError,
76 },
77
78 #[error("Invalid u32 key")]
79 InvalidU32Key(#[source] DecodeError),
80
81 #[error("Invalid TcFqCodelXstats length: {0}")]
82 InvalidXstatsLength(usize),
83}