netlink_packet_route/tc/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// SPDX-License-Identifier: MIT

use netlink_packet_utils::nla::NlaError;
use netlink_packet_utils::DecodeError;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum TcError {
    #[error("Invalid {kind}")]
    InvalidValue {
        kind: &'static str,
        #[source]
        error: DecodeError,
    },

    #[error("failed to parse {kind} TCA_OPTIONS attributes")]
    ParseTcaOptionAttributes {
        kind: &'static str,
        #[source]
        error: DecodeError,
    },

    #[error("failed to parse {kind}")]
    ParseFilterMatchallOption {
        kind: &'static str,
        #[source]
        error: DecodeError,
    },

    #[error("failed to parse {kind}")]
    ParseAction {
        kind: &'static str,
        #[source]
        error: DecodeError,
    },

    #[error("failed to parse TCA_ACT_OPTIONS for kind {kind}")]
    ParseActOptions {
        kind: String,
        #[source]
        error: DecodeError,
    },

    #[error("failed to parse mirror action")]
    ParseMirrorAction(#[source] DecodeError),

    #[error("Unknown matchall option: {kind}")]
    UnknownFilterMatchAllOption {
        kind: String,
        #[source]
        error: DecodeError,
    },

    #[error("Unknown NLA type: {kind}")]
    UnknownNla {
        kind: u16,
        #[source]
        error: DecodeError,
    },

    #[error("Unknown TC_OPTIONS: {kind}")]
    UnknownOption {
        kind: String,
        #[source]
        error: DecodeError,
    },

    #[error(transparent)]
    ParseNla(#[from] NlaError),

    #[error("failed to parse TCA_STATS2 for kind {kind}")]
    ParseTcaStats2 {
        kind: String,
        #[source]
        error: DecodeError,
    },

    #[error("Invalid u32 key")]
    InvalidU32Key(#[source] DecodeError),

    #[error("Invalid TcFqCodelXstats length: {0}")]
    InvalidXstatsLength(usize),
}