#[allow(dead_code)]
pub mod ct_flags {
pub const COMMIT: u16 = 1 << 0;
pub const FORCE: u16 = 1 << 1;
}
#[allow(dead_code)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u16)]
pub enum ActionType {
Output = 0,
CopyTtlOut = 11,
CopyTtlIn = 12,
SetMplsTtl = 15,
DecMplsTtl = 16,
PushVlan = 17,
PopVlan = 18,
PushMpls = 19,
PopMpls = 20,
SetQueue = 21,
Group = 22,
SetNwTtl = 23,
DecNwTtl = 24,
SetField = 25,
PushPbb = 26,
PopPbb = 27,
Experimenter = 0xffff,
}
impl TryFrom<u16> for ActionType {
type Error = crate::Error;
fn try_from(v: u16) -> Result<Self, Self::Error> {
match v {
0 => Ok(Self::Output),
11 => Ok(Self::CopyTtlOut),
12 => Ok(Self::CopyTtlIn),
15 => Ok(Self::SetMplsTtl),
16 => Ok(Self::DecMplsTtl),
17 => Ok(Self::PushVlan),
18 => Ok(Self::PopVlan),
19 => Ok(Self::PushMpls),
20 => Ok(Self::PopMpls),
21 => Ok(Self::SetQueue),
22 => Ok(Self::Group),
23 => Ok(Self::SetNwTtl),
24 => Ok(Self::DecNwTtl),
25 => Ok(Self::SetField),
26 => Ok(Self::PushPbb),
27 => Ok(Self::PopPbb),
0xffff => Ok(Self::Experimenter),
_ => Err(crate::Error::Parse(format!("unknown action type: {v}"))),
}
}
}
pub const NICIRA_VENDOR_ID: u32 = 0x0000_2320;
#[allow(dead_code)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u16)]
pub enum NxActionSubtype {
Resubmit = 1,
ResubmitTable = 14,
Move = 6,
RegLoad = 7,
Ct = 35,
Nat = 36,
Learn = 16,
RegLoad2 = 33,
}
#[allow(dead_code)]
pub mod nat_flags {
pub const SRC: u16 = 1 << 0;
pub const DST: u16 = 1 << 1;
pub const PERSISTENT: u16 = 1 << 2;
pub const PROTO_HASH: u16 = 1 << 3;
pub const PROTO_RANDOM: u16 = 1 << 4;
}
#[allow(dead_code)]
pub mod nat_range {
pub const IPV4_MIN: u16 = 1 << 0;
pub const IPV4_MAX: u16 = 1 << 1;
pub const IPV6_MIN: u16 = 1 << 2;
pub const IPV6_MAX: u16 = 1 << 3;
pub const PROTO_MIN: u16 = 1 << 4;
pub const PROTO_MAX: u16 = 1 << 5;
}
#[allow(dead_code)]
pub mod port {
pub const MAX: u32 = 0xffff_ff00;
pub const CONTROLLER: u32 = 0xffff_fffd;
pub const TABLE: u32 = 0xffff_fff9;
pub const NORMAL: u32 = 0xffff_fffa;
pub const FLOOD: u32 = 0xffff_fffb;
pub const ALL: u32 = 0xffff_fffc;
pub const LOCAL: u32 = 0xffff_fffe;
pub const NONE: u32 = 0xffff_ffff;
pub const IN_PORT: u32 = 0xffff_fff8;
}