#ifndef _NETLINK_ROUTE_INTERFACE_H_
#define _NETLINK_ROUTE_INTERFACE_H_
struct ifinfomsg {
unsigned char ifi_family;
unsigned char __ifi_pad;
unsigned short ifi_type;
int ifi_index;
unsigned ifi_flags;
unsigned ifi_change;
};
#define IFF_LOWER_UP IFF_NETLINK_1
#ifndef _KERNEL
#define _IFINFO_HDRLEN ((int)sizeof(struct ifinfomsg))
#define IFLA_RTA(_ifi) ((struct rtattr *)NL_ITEM_DATA(_ifi, _IFINFO_HDRLEN))
#define IFLA_PAYLOAD(_ifi) NLMSG_PAYLOAD(_ifi, _IFINFO_HDRLEN)
#endif
enum {
IFLA_UNSPEC = 0,
IFLA_ADDRESS = 1,
#define IFLA_ADDRESS IFLA_ADDRESS
IFLA_BROADCAST = 2,
#define IFLA_BROADCAST IFLA_BROADCAST
IFLA_IFNAME = 3,
#define IFLA_IFNAME IFLA_IFNAME
IFLA_MTU = 4,
#define IFLA_MTU IFLA_MTU
IFLA_LINK = 5,
#define IFLA_LINK IFLA_LINK
IFLA_QDISC = 6,
#define IFLA_QDISC IFLA_QDISC
IFLA_STATS = 7,
#define IFLA_STATS IFLA_STATS
IFLA_COST = 8,
#define IFLA_COST IFLA_COST
IFLA_PRIORITY = 9,
#define IFLA_PRIORITY IFLA_PRIORITY
IFLA_MASTER = 10,
#define IFLA_MASTER IFLA_MASTER
IFLA_WIRELESS = 11,
#define IFLA_WIRELESS IFLA_WIRELESS
IFLA_PROTINFO = 12,
#define IFLA_PROTINFO IFLA_PROTINFO
IFLA_TXQLEN = 13,
#define IFLA_TXQLEN IFLA_TXQLEN
IFLA_MAP = 14,
#define IFLA_MAP IFLA_MAP
IFLA_WEIGHT = 15,
#define IFLA_WEIGHT IFLA_WEIGHT
IFLA_OPERSTATE = 16,
#define IFLA_OPERSTATE IFLA_OPERSTATE
IFLA_LINKMODE = 17,
#define IFLA_LINKMODE IFLA_LINKMODE
IFLA_LINKINFO = 18,
#define IFLA_LINKINFO IFLA_LINKINFO
IFLA_NET_NS_PID = 19,
#define IFLA_NET_NS_PID IFLA_NET_NS_PID
IFLA_IFALIAS = 20,
#define IFLA_IFALIAS IFLA_IFALIAS
IFLA_NUM_VF = 21,
#define IFLA_NUM_VF IFLA_NUM_VF
IFLA_VFINFO_LIST= 22,
#define IFLA_VFINFO_LIST IFLA_VFINFO_LIST
IFLA_STATS64 = 23,
#define IFLA_STATS64 IFLA_STATS64
IFLA_VF_PORTS,
IFLA_PORT_SELF,
IFLA_AF_SPEC,
IFLA_GROUP,
IFLA_NET_NS_FD,
IFLA_EXT_MASK,
IFLA_PROMISCUITY,
#define IFLA_PROMISCUITY IFLA_PROMISCUITY
IFLA_NUM_TX_QUEUES,
IFLA_NUM_RX_QUEUES,
IFLA_CARRIER,
IFLA_PHYS_PORT_ID,
IFLA_CARRIER_CHANGES,
IFLA_PHYS_SWITCH_ID,
IFLA_LINK_NETNSID,
IFLA_PHYS_PORT_NAME,
IFLA_PROTO_DOWN,
IFLA_GSO_MAX_SEGS,
IFLA_GSO_MAX_SIZE,
IFLA_PAD,
IFLA_XDP,
IFLA_EVENT,
IFLA_NEW_NETNSID,
IFLA_IF_NETNSID,
IFLA_TARGET_NETNSID = IFLA_IF_NETNSID,
IFLA_CARRIER_UP_COUNT,
IFLA_CARRIER_DOWN_COUNT,
IFLA_NEW_IFINDEX,
IFLA_MIN_MTU,
IFLA_MAX_MTU,
IFLA_PROP_LIST,
IFLA_ALT_IFNAME,
IFLA_PERM_ADDRESS,
IFLA_PROTO_DOWN_REASON,
IFLA_PARENT_DEV_NAME,
IFLA_PARENT_DEV_BUS_NAME,
IFLA_GRO_MAX_SIZE,
IFLA_TSO_MAX_SEGS,
IFLA_ALLMULTI,
IFLA_DEVLINK_PORT,
IFLA_GSO_IPV4_MAX_SIZE,
IFLA_GRO_IPV4_MAX_SIZE,
IFLA_FREEBSD,
__IFLA_MAX
};
#define IFLA_MAX (__IFLA_MAX - 1)
enum {
IFLAF_UNSPEC = 0,
IFLAF_ORIG_IFNAME = 1,
IFLAF_ORIG_HWADDR = 2,
IFLAF_CAPS = 3,
__IFLAF_MAX
};
#define IFLAF_MAX (__IFLAF_MAX - 1)
enum {
IF_OPER_UNKNOWN = 0,
IF_OPER_NOTPRESENT = 1,
IF_OPER_DOWN = 2,
IF_OPER_LOWERLAYERDOWN = 3,
IF_OPER_TESTING = 4,
IF_OPER_DORMANT = 5,
IF_OPER_UP = 6,
};
struct rtnl_link_stats {
uint32_t rx_packets;
uint32_t tx_packets;
uint32_t rx_bytes;
uint32_t tx_bytes;
uint32_t rx_errors;
uint32_t tx_errors;
uint32_t rx_dropped;
uint32_t tx_dropped;
uint32_t multicast;
uint32_t collisions;
uint32_t rx_length_errors;
uint32_t rx_over_errors;
uint32_t rx_crc_errors;
uint32_t rx_frame_errors;
uint32_t rx_fifo_errors;
uint32_t rx_missed_errors;
uint32_t tx_aborted_errors;
uint32_t tx_carrier_errors;
uint32_t tx_fifo_errors;
uint32_t tx_heartbeat_errors;
uint32_t tx_window_errors;
uint32_t rx_compressed;
uint32_t tx_compressed;
uint32_t rx_nohandler;
};
struct rtnl_link_stats64 {
uint64_t rx_packets;
uint64_t tx_packets;
uint64_t rx_bytes;
uint64_t tx_bytes;
uint64_t rx_errors;
uint64_t tx_errors;
uint64_t rx_dropped;
uint64_t tx_dropped;
uint64_t multicast;
uint64_t collisions;
uint64_t rx_length_errors;
uint64_t rx_over_errors;
uint64_t rx_crc_errors;
uint64_t rx_frame_errors;
uint64_t rx_fifo_errors;
uint64_t rx_missed_errors;
uint64_t tx_aborted_errors;
uint64_t tx_carrier_errors;
uint64_t tx_fifo_errors;
uint64_t tx_heartbeat_errors;
uint64_t tx_window_errors;
uint64_t rx_compressed;
uint64_t tx_compressed;
uint64_t rx_nohandler;
};
enum {
IFLA_INFO_UNSPEC,
IFLA_INFO_KIND = 1,
IFLA_INFO_DATA = 2,
IFLA_INFO_XSTATS = 3,
IFLA_INFO_SLAVE_KIND = 4,
IFLA_INFO_SLAVE_DATA = 5,
__IFLA_INFO_MAX,
};
#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1)
enum {
IFLA_TUNNEL_NONE,
IFLA_TUNNEL_GRE_UDP,
__IFLA_TUNNEL_MAX,
};
#define IFLA_TUNNEL_MAX (__IFLA_TUNNEL_MAX - 1)
enum {
IFLA_VLAN_UNSPEC,
IFLA_VLAN_ID,
IFLA_VLAN_FLAGS,
IFLA_VLAN_EGRESS_QOS,
IFLA_VLAN_INGRESS_QOS,
IFLA_VLAN_PROTOCOL,
__IFLA_VLAN_MAX,
};
#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1)
struct ifla_vlan_flags {
uint32_t flags;
uint32_t mask;
};
enum {
IFLA_IPTUN_UNSPEC,
IFLA_IPTUN_LOCAL,
IFLA_IPTUN_REMOTE,
IFLA_IPTUN_FLAGS,
__IFLA_IPTUN_MAX,
};
#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
enum {
IFLA_GRE_UNSPEC,
IFLA_GRE_LOCAL,
IFLA_GRE_REMOTE,
IFLA_GRE_FLAGS,
IFLA_GRE_OKEY,
IFLA_GRE_ENCAP_TYPE,
IFLA_GRE_ENCAP_SPORT,
__IFLA_GRE_MAX,
};
#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
enum {
IFLA_GENEVE_UNSPEC,
IFLA_GENEVE_ID,
IFLA_GENEVE_PROTOCOL,
IFLA_GENEVE_LOCAL,
IFLA_GENEVE_REMOTE,
IFLA_GENEVE_LOCAL_PORT,
IFLA_GENEVE_PORT,
IFLA_GENEVE_PORT_RANGE,
IFLA_GENEVE_DF,
IFLA_GENEVE_TTL,
IFLA_GENEVE_TTL_INHERIT,
IFLA_GENEVE_DSCP_INHERIT,
IFLA_GENEVE_COLLECT_METADATA,
IFLA_GENEVE_FTABLE_LEARN,
IFLA_GENEVE_FTABLE_FLUSH,
IFLA_GENEVE_FTABLE_MAX,
IFLA_GENEVE_FTABLE_TIMEOUT,
IFLA_GENEVE_FTABLE_COUNT,
IFLA_GENEVE_FTABLE_NOSPACE_CNT,
IFLA_GENEVE_FTABLE_LOCK_UP_FAIL_CNT,
IFLA_GENEVE_MC_IFNAME,
IFLA_GENEVE_MC_IFINDEX,
IFLA_GENEVE_TXCSUM_CNT,
IFLA_GENEVE_TSO_CNT,
IFLA_GENEVE_RXCSUM_CNT,
__IFLA_GENEVE_MAX,
};
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
enum ifla_geneve_df {
IFLA_GENEVE_DF_UNSET,
IFLA_GENEVE_DF_SET,
IFLA_GENEVE_DF_INHERIT,
__IFLA_GENEVE_DF_MAX,
};
#define IFLA_GENEVE_DF_MAX (__IFLA_GENEVE_DF_MAX - 1)
struct ifla_geneve_port_range {
uint16_t low;
uint16_t high;
};
#endif