nell 0.3.0

Linux netlink interface
Documentation
// Copyright (C) 2018 - Will Glozer. All rights reserved.

pub const IFA_UNSPEC:              u16 = 0;
pub const IFA_ADDRESS:             u16 = 1;
pub const IFA_LOCAL:               u16 = 2;
pub const IFA_LABEL:               u16 = 3;
pub const IFA_BROADCAST:           u16 = 4;
pub const IFA_ANYCAST:             u16 = 5;
pub const IFA_CACHEINFO:           u16 = 6;
pub const IFA_MULTICAST:           u16 = 7;
pub const IFA_FLAGS:               u16 = 8;

pub const IFA_F_SECONDARY:         u32 =  0x01;
pub const IFA_F_NODAD:             u32 =  0x02;
pub const IFA_F_OPTIMISTIC:        u32 =  0x04;
pub const IFA_F_DADFAILED:         u32 =  0x08;
pub const IFA_F_HOMEADDRESS:       u32 =  0x10;
pub const IFA_F_DEPRECATED:        u32 =  0x20;
pub const IFA_F_TENTATIVE:         u32 =  0x40;
pub const IFA_F_PERMANENT:         u32 =  0x80;
pub const IFA_F_MANAGETEMPADDR:    u32 = 0x100;
pub const IFA_F_NOPREFIXROUTE:     u32 = 0x200;
pub const IFA_F_MCAUTOJOIN:        u32 = 0x400;
pub const IFA_F_STABLE_PRIVACY:    u32 = 0x800;

#[repr(C)]
#[derive(Clone, Debug, Default)]
pub struct ifaddrmsg {
    pub ifa_family:    u8,
    pub ifa_prefixlen: u8,
    pub ifa_flags:     u8,
    pub ifa_scope:     u8,
    pub ifa_index:     u32,
}

#[repr(C)]
#[derive(Clone, Debug, Default)]
pub struct ifa_cacheinfo {
    pub ifa_prefered: u32,
    pub ifa_valid:    u32,
    pub ifa_cstamp:   u32,
    pub ifa_tstamp:   u32,
}