netlink_packet_route/rule/
action.rs
1const FR_ACT_UNSPEC: u8 = 0;
4const FR_ACT_TO_TBL: u8 = 1;
5const FR_ACT_GOTO: u8 = 2;
6const FR_ACT_NOP: u8 = 3;
7const FR_ACT_BLACKHOLE: u8 = 6;
10const FR_ACT_UNREACHABLE: u8 = 7;
11const FR_ACT_PROHIBIT: u8 = 8;
12
13#[derive(Eq, PartialEq, Debug, Clone, Copy, Default)]
14#[non_exhaustive]
15pub enum RuleAction {
16 #[default]
17 Unspec,
18 ToTable,
19 Goto,
20 Nop,
21 Blackhole,
22 Unreachable,
23 Prohibit,
24 Other(u8),
25}
26
27impl From<u8> for RuleAction {
28 fn from(d: u8) -> Self {
29 match d {
30 FR_ACT_UNSPEC => Self::Unspec,
31 FR_ACT_TO_TBL => Self::ToTable,
32 FR_ACT_GOTO => Self::Goto,
33 FR_ACT_NOP => Self::Nop,
34 FR_ACT_BLACKHOLE => Self::Blackhole,
35 FR_ACT_UNREACHABLE => Self::Unreachable,
36 FR_ACT_PROHIBIT => Self::Prohibit,
37 _ => Self::Other(d),
38 }
39 }
40}
41
42impl From<RuleAction> for u8 {
43 fn from(v: RuleAction) -> u8 {
44 match v {
45 RuleAction::Unspec => FR_ACT_UNSPEC,
46 RuleAction::ToTable => FR_ACT_TO_TBL,
47 RuleAction::Goto => FR_ACT_GOTO,
48 RuleAction::Nop => FR_ACT_NOP,
49 RuleAction::Blackhole => FR_ACT_BLACKHOLE,
50 RuleAction::Unreachable => FR_ACT_UNREACHABLE,
51 RuleAction::Prohibit => FR_ACT_PROHIBIT,
52 RuleAction::Other(d) => d,
53 }
54 }
55}