use std::os::raw::{c_int, c_uchar, c_uint, c_ushort};
pub const RTM_NEWLINK: u16 = 16;
pub const RTM_DELLINK: u16 = 17;
pub const RTM_GETLINK: u16 = 18;
pub const RTM_SETLINK: u16 = 19;
pub const RTM_NEWADDR: u16 = 20;
pub const RTM_DELADDR: u16 = 21;
pub const RTM_GETADDR: u16 = 22;
pub const RTM_NEWROUTE: u16 = 24;
pub const RTM_DELROUTE: u16 = 25;
pub const RTM_GETROUTE: u16 = 26;
pub const RTM_NEWNEIGH: u16 = 28;
pub const RTM_DELNEIGH: u16 = 29;
pub const RTM_GETNEIGH: u16 = 30;
pub const RTM_NEWRULE: u16 = 32;
pub const RTM_DELRULE: u16 = 33;
pub const RTM_GETRULE: u16 = 34;
pub const RTM_NEWQDISC: u16 = 36;
pub const RTM_DELQDISC: u16 = 37;
pub const RTM_GETQDISC: u16 = 38;
pub const RTM_NEWTCLASS: u16 = 40;
pub const RTM_DELTCLASS: u16 = 41;
pub const RTM_GETTCLASS: u16 = 42;
pub const RTM_NEWTFILTER: u16 = 44;
pub const RTM_DELTFILTER: u16 = 45;
pub const RTM_GETTFILTER: u16 = 46;
pub const RTM_NEWACTION: u16 = 48;
pub const RTM_DELACTION: u16 = 49;
pub const RTM_GETACTION: u16 = 50;
pub const RTM_NEWPREFIX: u16 = 52;
pub const RTM_GETMULTICAST: u16 = 58;
pub const RTM_GETANYCAST: u16 = 62;
pub const RTM_NEWNEIGHTBL: u16 = 64;
pub const RTM_GETNEIGHTBL: u16 = 66;
pub const RTM_SETNEIGHTBL: u16 = 67;
pub const RTM_NEWNDUSEROPT: u16 = 68;
pub const RTM_NEWADDRLABEL: u16 = 72;
pub const RTM_DELADDRLABEL: u16 = 73;
pub const RTM_GETADDRLABEL: u16 = 74;
pub const RTM_GETDCB: u16 = 78;
pub const RTM_SETDCB: u16 = 79;
pub const RTM_NEWNETCONF: u16 = 80;
pub const RTM_DELNETCONF: u16 = 81;
pub const RTM_GETNETCONF: u16 = 82;
pub const RTM_NEWMDB: u16 = 84;
pub const RTM_DELMDB: u16 = 85;
pub const RTM_GETMDB: u16 = 86;
pub const RTM_NEWNSID: u16 = 88;
pub const RTM_DELNSID: u16 = 89;
pub const RTM_GETNSID: u16 = 90;
pub const RTM_NEWSTATS: u16 = 92;
pub const RTM_GETSTATS: u16 = 94;
pub const RTM_NEWCACHEREPORT: u16 = 96;
pub const RTMGRP_LINK: u32 = 1;
pub const RTMGRP_NOTIFY: u32 = 2;
pub const RTMGRP_NEIGH: u32 = 4;
pub const RTMGRP_TC: u32 = 8;
pub const RTMGRP_IPV4_IFADDR: u32 = 0x10;
pub const RTMGRP_IPV4_MROUTE: u32 = 0x20;
pub const RTMGRP_IPV4_ROUTE: u32 = 0x40;
pub const RTMGRP_IPV4_RULE: u32 = 0x80;
pub const RTMGRP_IPV6_IFADDR: u32 = 0x100;
pub const RTMGRP_IPV6_MROUTE: u32 = 0x200;
pub const RTMGRP_IPV6_ROUTE: u32 = 0x400;
pub const RTMGRP_IPV6_IFINFO: u32 = 0x800;
pub const RTNLGRP_LINK: c_int = 1;
pub const RTNLGRP_NOTIFY: c_int = 2;
pub const RTNLGRP_NEIGH: c_int = 3;
pub const RTNLGRP_TC: c_int = 4;
pub const RTNLGRP_IPV4_IFADDR: c_int = 5;
pub const RTNLGRP_IPV4_MROUTE: c_int = 6;
pub const RTNLGRP_IPV4_ROUTE: c_int = 7;
pub const RTNLGRP_IPV4_RULE: c_int = 8;
pub const RTNLGRP_IPV6_IFADDR: c_int = 9;
pub const RTNLGRP_IPV6_MROUTE: c_int = 10;
pub const RTNLGRP_IPV6_ROUTE: c_int = 11;
pub const RTNLGRP_IPV6_IFINFO: c_int = 12;
pub const RTNLGRP_DECNET_IFADDR: c_int = 13;
pub const RTNLGRP_NOP2: c_int = 14;
pub const RTNLGRP_DECNET_ROUTE: c_int = 15;
pub const RTNLGRP_DECNET_RULE: c_int = 16;
pub const RTNLGRP_NOP4: c_int = 17;
pub const RTNLGRP_IPV6_PREFIX: c_int = 18;
pub const RTNLGRP_IPV6_RULE: c_int = 19;
pub const RTNLGRP_ND_USEROPT: c_int = 20;
pub const RTNLGRP_PHONET_IFADDR: c_int = 21;
pub const RTNLGRP_PHONET_ROUTE: c_int = 22;
pub const RTNLGRP_DCB: c_int = 23;
pub const RTNLGRP_IPV4_NETCONF: c_int = 24;
pub const RTNLGRP_IPV6_NETCONF: c_int = 25;
pub const RTNLGRP_MDB: c_int = 26;
pub const RTNLGRP_MPLS_ROUTE: c_int = 27;
pub const RTNLGRP_NSID: c_int = 28;
pub const RTA_UNSPEC: u16 = 0;
pub const RTA_DST: u16 = 1;
pub const RTA_SRC: u16 = 2;
pub const RTA_IIF: u16 = 3;
pub const RTA_OIF: u16 = 4;
pub const RTA_GATEWAY: u16 = 5;
pub const RTA_PRIORITY: u16 = 6;
pub const RTA_PREFSRC: u16 = 7;
pub const RTA_METRICS: u16 = 8;
pub const RTA_MULTIPATH: u16 = 9;
pub const RTA_FLOW: u16 = 10;
pub const RTA_CACHEINFO: u16 = 11;
pub const RTA_TABLE: u16 = 12;
pub const RTA_MARK: u16 = 13;
pub const RTA_MFC_STATS: u16 = 14;
#[repr(C)]
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct rtattr {
pub rta_len: c_ushort,
pub rta_type: c_ushort,
}
#[repr(C)]
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct rtgenmsg {
pub rtgen_family: c_uchar,
}
#[repr(C)]
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct rtmsg {
pub rtm_family: u8,
pub rtm_dst_len: u8,
pub rtm_src_len: u8,
pub rtm_tos: u8,
pub rtm_table: u8,
pub rtm_protocol: u8,
pub rtm_scope: u8,
pub rtm_type: u8,
pub rtm_flags: c_uint,
}