l2tp 0.2.0

High-level L2TP interface for Linux kernel
Documentation
#[derive(Debug, thiserror::Error)]
pub enum Error {
    #[error("netlink error: {0}")]
    Netlink(#[from] netlink_packet_core::DecodeError),

    #[error("genetlink family resolution failed: {0}")]
    FamilyResolution(String),

    #[error("I/O error: {0}")]
    Io(#[from] std::io::Error),

    #[error("invalid interface name: {0}")]
    InvalidIfName(String),

    #[error("invalid cookie length {0}: must be 0, 4, or 8")]
    InvalidCookieLength(usize),

    #[error("address family mismatch: local and remote must be the same IP version")]
    AddressFamilyMismatch,

    #[error("operation requires a managed socket (tunnel was created without L2TP_ATTR_FD)")]
    UnmanagedSocket,

    #[error("kernel error {code}: {message}")]
    KernelError { code: i32, message: String },
}

pub type Result<T> = std::result::Result<T, Error>;