mirror of https://github.com/hak5/openwrt-owl.git
libnl-tiny: remove include/linux overrides to fix various build issues
Signed-off-by: Felix Fietkau <nbd@nbd.name>owl
parent
3d680c5728
commit
d723f2573a
|
@ -1,79 +0,0 @@
|
||||||
#ifndef __LINUX_GEN_STATS_H
|
|
||||||
#define __LINUX_GEN_STATS_H
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
|
||||||
|
|
||||||
enum {
|
|
||||||
TCA_STATS_UNSPEC,
|
|
||||||
TCA_STATS_BASIC,
|
|
||||||
TCA_STATS_RATE_EST,
|
|
||||||
TCA_STATS_QUEUE,
|
|
||||||
TCA_STATS_APP,
|
|
||||||
TCA_STATS_RATE_EST64,
|
|
||||||
__TCA_STATS_MAX,
|
|
||||||
};
|
|
||||||
#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct gnet_stats_basic - byte/packet throughput statistics
|
|
||||||
* @bytes: number of seen bytes
|
|
||||||
* @packets: number of seen packets
|
|
||||||
*/
|
|
||||||
struct gnet_stats_basic
|
|
||||||
{
|
|
||||||
__u64 bytes;
|
|
||||||
__u32 packets;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct gnet_stats_rate_est - rate estimator
|
|
||||||
* @bps: current byte rate
|
|
||||||
* @pps: current packet rate
|
|
||||||
*/
|
|
||||||
struct gnet_stats_rate_est
|
|
||||||
{
|
|
||||||
__u32 bps;
|
|
||||||
__u32 pps;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct gnet_stats_rate_est64 - rate estimator
|
|
||||||
* @bps: current byte rate
|
|
||||||
* @pps: current packet rate
|
|
||||||
*/
|
|
||||||
struct gnet_stats_rate_est64
|
|
||||||
{
|
|
||||||
__u64 bps;
|
|
||||||
__u64 pps;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct gnet_stats_queue - queuing statistics
|
|
||||||
* @qlen: queue length
|
|
||||||
* @backlog: backlog size of queue
|
|
||||||
* @drops: number of dropped packets
|
|
||||||
* @requeues: number of requeues
|
|
||||||
* @overlimits: number of enqueues over the limit
|
|
||||||
*/
|
|
||||||
struct gnet_stats_queue
|
|
||||||
{
|
|
||||||
__u32 qlen;
|
|
||||||
__u32 backlog;
|
|
||||||
__u32 drops;
|
|
||||||
__u32 requeues;
|
|
||||||
__u32 overlimits;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct gnet_estimator - rate estimator configuration
|
|
||||||
* @interval: sampling period
|
|
||||||
* @ewma_log: the log of measurement window weight
|
|
||||||
*/
|
|
||||||
struct gnet_estimator
|
|
||||||
{
|
|
||||||
signed char interval;
|
|
||||||
unsigned char ewma_log;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __LINUX_GEN_STATS_H */
|
|
|
@ -1,83 +0,0 @@
|
||||||
#ifndef __LINUX_GENERIC_NETLINK_H
|
|
||||||
#define __LINUX_GENERIC_NETLINK_H
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <linux/netlink.h>
|
|
||||||
|
|
||||||
#define GENL_NAMSIZ 16 /* length of family name */
|
|
||||||
|
|
||||||
#define GENL_MIN_ID NLMSG_MIN_TYPE
|
|
||||||
#define GENL_MAX_ID 1023
|
|
||||||
|
|
||||||
struct genlmsghdr {
|
|
||||||
__u8 cmd;
|
|
||||||
__u8 version;
|
|
||||||
__u16 reserved;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr))
|
|
||||||
|
|
||||||
#define GENL_ADMIN_PERM 0x01
|
|
||||||
#define GENL_CMD_CAP_DO 0x02
|
|
||||||
#define GENL_CMD_CAP_DUMP 0x04
|
|
||||||
#define GENL_CMD_CAP_HASPOL 0x08
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List of reserved static generic netlink identifiers:
|
|
||||||
*/
|
|
||||||
#define GENL_ID_GENERATE 0
|
|
||||||
#define GENL_ID_CTRL NLMSG_MIN_TYPE
|
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
* Controller
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
enum {
|
|
||||||
CTRL_CMD_UNSPEC,
|
|
||||||
CTRL_CMD_NEWFAMILY,
|
|
||||||
CTRL_CMD_DELFAMILY,
|
|
||||||
CTRL_CMD_GETFAMILY,
|
|
||||||
CTRL_CMD_NEWOPS,
|
|
||||||
CTRL_CMD_DELOPS,
|
|
||||||
CTRL_CMD_GETOPS,
|
|
||||||
CTRL_CMD_NEWMCAST_GRP,
|
|
||||||
CTRL_CMD_DELMCAST_GRP,
|
|
||||||
CTRL_CMD_GETMCAST_GRP, /* unused */
|
|
||||||
__CTRL_CMD_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
|
|
||||||
|
|
||||||
enum {
|
|
||||||
CTRL_ATTR_UNSPEC,
|
|
||||||
CTRL_ATTR_FAMILY_ID,
|
|
||||||
CTRL_ATTR_FAMILY_NAME,
|
|
||||||
CTRL_ATTR_VERSION,
|
|
||||||
CTRL_ATTR_HDRSIZE,
|
|
||||||
CTRL_ATTR_MAXATTR,
|
|
||||||
CTRL_ATTR_OPS,
|
|
||||||
CTRL_ATTR_MCAST_GROUPS,
|
|
||||||
__CTRL_ATTR_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
|
|
||||||
|
|
||||||
enum {
|
|
||||||
CTRL_ATTR_OP_UNSPEC,
|
|
||||||
CTRL_ATTR_OP_ID,
|
|
||||||
CTRL_ATTR_OP_FLAGS,
|
|
||||||
__CTRL_ATTR_OP_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
|
|
||||||
|
|
||||||
enum {
|
|
||||||
CTRL_ATTR_MCAST_GRP_UNSPEC,
|
|
||||||
CTRL_ATTR_MCAST_GRP_NAME,
|
|
||||||
CTRL_ATTR_MCAST_GRP_ID,
|
|
||||||
__CTRL_ATTR_MCAST_GRP_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
|
|
||||||
|
|
||||||
#endif /* __LINUX_GENERIC_NETLINK_H */
|
|
|
@ -1,131 +0,0 @@
|
||||||
/*
|
|
||||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
|
||||||
* operating system. INET is implemented using the BSD Socket
|
|
||||||
* interface as the means of communication with the user level.
|
|
||||||
*
|
|
||||||
* Global definitions for the INET interface module.
|
|
||||||
*
|
|
||||||
* Version: @(#)if.h 1.0.2 04/18/93
|
|
||||||
*
|
|
||||||
* Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988
|
|
||||||
* Ross Biro
|
|
||||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version
|
|
||||||
* 2 of the License, or (at your option) any later version.
|
|
||||||
*/
|
|
||||||
#ifndef _LINUX_IF_H
|
|
||||||
#define _LINUX_IF_H
|
|
||||||
|
|
||||||
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
|
|
||||||
|
|
||||||
#define IFNAMSIZ 16
|
|
||||||
|
|
||||||
/* Standard interface flags (netdevice->flags). */
|
|
||||||
#define IFF_UP 0x1 /* interface is up */
|
|
||||||
#define IFF_BROADCAST 0x2 /* broadcast address valid */
|
|
||||||
#define IFF_DEBUG 0x4 /* turn on debugging */
|
|
||||||
#define IFF_LOOPBACK 0x8 /* is a loopback net */
|
|
||||||
#define IFF_POINTOPOINT 0x10 /* interface is has p-p link */
|
|
||||||
#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */
|
|
||||||
#define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */
|
|
||||||
#define IFF_NOARP 0x80 /* no ARP protocol */
|
|
||||||
#define IFF_PROMISC 0x100 /* receive all packets */
|
|
||||||
#define IFF_ALLMULTI 0x200 /* receive all multicast packets*/
|
|
||||||
|
|
||||||
#define IFF_MASTER 0x400 /* master of a load balancer */
|
|
||||||
#define IFF_SLAVE 0x800 /* slave of a load balancer */
|
|
||||||
|
|
||||||
#define IFF_MULTICAST 0x1000 /* Supports multicast */
|
|
||||||
|
|
||||||
#define IFF_PORTSEL 0x2000 /* can set media type */
|
|
||||||
#define IFF_AUTOMEDIA 0x4000 /* auto media select active */
|
|
||||||
#define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/
|
|
||||||
|
|
||||||
#define IFF_LOWER_UP 0x10000 /* driver signals L1 up */
|
|
||||||
#define IFF_DORMANT 0x20000 /* driver signals dormant */
|
|
||||||
|
|
||||||
#define IFF_ECHO 0x40000 /* echo sent packets */
|
|
||||||
|
|
||||||
#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\
|
|
||||||
IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
|
|
||||||
|
|
||||||
/* Private (from user) interface flags (netdevice->priv_flags). */
|
|
||||||
#define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */
|
|
||||||
#define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */
|
|
||||||
#define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */
|
|
||||||
#define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */
|
|
||||||
#define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */
|
|
||||||
#define IFF_BONDING 0x20 /* bonding master or slave */
|
|
||||||
#define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */
|
|
||||||
#define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */
|
|
||||||
|
|
||||||
#define IF_GET_IFACE 0x0001 /* for querying only */
|
|
||||||
#define IF_GET_PROTO 0x0002
|
|
||||||
|
|
||||||
/* For definitions see hdlc.h */
|
|
||||||
#define IF_IFACE_V35 0x1000 /* V.35 serial interface */
|
|
||||||
#define IF_IFACE_V24 0x1001 /* V.24 serial interface */
|
|
||||||
#define IF_IFACE_X21 0x1002 /* X.21 serial interface */
|
|
||||||
#define IF_IFACE_T1 0x1003 /* T1 telco serial interface */
|
|
||||||
#define IF_IFACE_E1 0x1004 /* E1 telco serial interface */
|
|
||||||
#define IF_IFACE_SYNC_SERIAL 0x1005 /* can't be set by software */
|
|
||||||
#define IF_IFACE_X21D 0x1006 /* X.21 Dual Clocking (FarSite) */
|
|
||||||
|
|
||||||
/* For definitions see hdlc.h */
|
|
||||||
#define IF_PROTO_HDLC 0x2000 /* raw HDLC protocol */
|
|
||||||
#define IF_PROTO_PPP 0x2001 /* PPP protocol */
|
|
||||||
#define IF_PROTO_CISCO 0x2002 /* Cisco HDLC protocol */
|
|
||||||
#define IF_PROTO_FR 0x2003 /* Frame Relay protocol */
|
|
||||||
#define IF_PROTO_FR_ADD_PVC 0x2004 /* Create FR PVC */
|
|
||||||
#define IF_PROTO_FR_DEL_PVC 0x2005 /* Delete FR PVC */
|
|
||||||
#define IF_PROTO_X25 0x2006 /* X.25 */
|
|
||||||
#define IF_PROTO_HDLC_ETH 0x2007 /* raw HDLC, Ethernet emulation */
|
|
||||||
#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 /* Create FR Ethernet-bridged PVC */
|
|
||||||
#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 /* Delete FR Ethernet-bridged PVC */
|
|
||||||
#define IF_PROTO_FR_PVC 0x200A /* for reading PVC status */
|
|
||||||
#define IF_PROTO_FR_ETH_PVC 0x200B
|
|
||||||
#define IF_PROTO_RAW 0x200C /* RAW Socket */
|
|
||||||
|
|
||||||
/* RFC 2863 operational status */
|
|
||||||
enum {
|
|
||||||
IF_OPER_UNKNOWN,
|
|
||||||
IF_OPER_NOTPRESENT,
|
|
||||||
IF_OPER_DOWN,
|
|
||||||
IF_OPER_LOWERLAYERDOWN,
|
|
||||||
IF_OPER_TESTING,
|
|
||||||
IF_OPER_DORMANT,
|
|
||||||
IF_OPER_UP,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* link modes */
|
|
||||||
enum {
|
|
||||||
IF_LINK_MODE_DEFAULT,
|
|
||||||
IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Device mapping structure. I'd just gone off and designed a
|
|
||||||
* beautiful scheme using only loadable modules with arguments
|
|
||||||
* for driver options and along come the PCMCIA people 8)
|
|
||||||
*
|
|
||||||
* Ah well. The get() side of this is good for WDSETUP, and it'll
|
|
||||||
* be handy for debugging things. The set side is fine for now and
|
|
||||||
* being very small might be worth keeping for clean configuration.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct ifmap
|
|
||||||
{
|
|
||||||
unsigned long mem_start;
|
|
||||||
unsigned long mem_end;
|
|
||||||
unsigned short base_addr;
|
|
||||||
unsigned char irq;
|
|
||||||
unsigned char dma;
|
|
||||||
unsigned char port;
|
|
||||||
/* 3 bytes spare */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _LINUX_IF_H */
|
|
|
@ -1,62 +0,0 @@
|
||||||
#ifndef __LINUX_IF_ADDR_H
|
|
||||||
#define __LINUX_IF_ADDR_H
|
|
||||||
|
|
||||||
#include <linux/netlink.h>
|
|
||||||
|
|
||||||
struct ifaddrmsg
|
|
||||||
{
|
|
||||||
__u8 ifa_family;
|
|
||||||
__u8 ifa_prefixlen; /* The prefix length */
|
|
||||||
__u8 ifa_flags; /* Flags */
|
|
||||||
__u8 ifa_scope; /* Address scope */
|
|
||||||
__u32 ifa_index; /* Link index */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Important comment:
|
|
||||||
* IFA_ADDRESS is prefix address, rather than local interface address.
|
|
||||||
* It makes no difference for normally configured broadcast interfaces,
|
|
||||||
* but for point-to-point IFA_ADDRESS is DESTINATION address,
|
|
||||||
* local address is supplied in IFA_LOCAL attribute.
|
|
||||||
*/
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
IFA_UNSPEC,
|
|
||||||
IFA_ADDRESS,
|
|
||||||
IFA_LOCAL,
|
|
||||||
IFA_LABEL,
|
|
||||||
IFA_BROADCAST,
|
|
||||||
IFA_ANYCAST,
|
|
||||||
IFA_CACHEINFO,
|
|
||||||
IFA_MULTICAST,
|
|
||||||
__IFA_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define IFA_MAX (__IFA_MAX - 1)
|
|
||||||
|
|
||||||
/* ifa_flags */
|
|
||||||
#define IFA_F_SECONDARY 0x01
|
|
||||||
#define IFA_F_TEMPORARY IFA_F_SECONDARY
|
|
||||||
|
|
||||||
#define IFA_F_NODAD 0x02
|
|
||||||
#define IFA_F_OPTIMISTIC 0x04
|
|
||||||
#define IFA_F_HOMEADDRESS 0x10
|
|
||||||
#define IFA_F_DEPRECATED 0x20
|
|
||||||
#define IFA_F_TENTATIVE 0x40
|
|
||||||
#define IFA_F_PERMANENT 0x80
|
|
||||||
|
|
||||||
struct ifa_cacheinfo
|
|
||||||
{
|
|
||||||
__u32 ifa_prefered;
|
|
||||||
__u32 ifa_valid;
|
|
||||||
__u32 cstamp; /* created timestamp, hundredths of seconds */
|
|
||||||
__u32 tstamp; /* updated timestamp, hundredths of seconds */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* backwards compatibility for userspace */
|
|
||||||
#ifndef __KERNEL__
|
|
||||||
#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
|
|
||||||
#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,151 +0,0 @@
|
||||||
#ifndef __LINUX_NETLINK_H
|
|
||||||
#define __LINUX_NETLINK_H
|
|
||||||
|
|
||||||
#include <linux/socket.h> /* for sa_family_t */
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <sys/socket.h> /* for sa_family_t */
|
|
||||||
|
|
||||||
#define NETLINK_ROUTE 0 /* Routing/device hook */
|
|
||||||
#define NETLINK_UNUSED 1 /* Unused number */
|
|
||||||
#define NETLINK_USERSOCK 2 /* Reserved for user mode socket protocols */
|
|
||||||
#define NETLINK_FIREWALL 3 /* Firewalling hook */
|
|
||||||
#define NETLINK_INET_DIAG 4 /* INET socket monitoring */
|
|
||||||
#define NETLINK_NFLOG 5 /* netfilter/iptables ULOG */
|
|
||||||
#define NETLINK_XFRM 6 /* ipsec */
|
|
||||||
#define NETLINK_SELINUX 7 /* SELinux event notifications */
|
|
||||||
#define NETLINK_ISCSI 8 /* Open-iSCSI */
|
|
||||||
#define NETLINK_AUDIT 9 /* auditing */
|
|
||||||
#define NETLINK_FIB_LOOKUP 10
|
|
||||||
#define NETLINK_CONNECTOR 11
|
|
||||||
#define NETLINK_NETFILTER 12 /* netfilter subsystem */
|
|
||||||
#define NETLINK_IP6_FW 13
|
|
||||||
#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
|
|
||||||
#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
|
|
||||||
#define NETLINK_GENERIC 16
|
|
||||||
/* leave room for NETLINK_DM (DM Events) */
|
|
||||||
#define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */
|
|
||||||
#define NETLINK_ECRYPTFS 19
|
|
||||||
|
|
||||||
#define MAX_LINKS 32
|
|
||||||
|
|
||||||
struct sockaddr_nl
|
|
||||||
{
|
|
||||||
sa_family_t nl_family; /* AF_NETLINK */
|
|
||||||
unsigned short nl_pad; /* zero */
|
|
||||||
__u32 nl_pid; /* port ID */
|
|
||||||
__u32 nl_groups; /* multicast groups mask */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct nlmsghdr
|
|
||||||
{
|
|
||||||
__u32 nlmsg_len; /* Length of message including header */
|
|
||||||
__u16 nlmsg_type; /* Message content */
|
|
||||||
__u16 nlmsg_flags; /* Additional flags */
|
|
||||||
__u32 nlmsg_seq; /* Sequence number */
|
|
||||||
__u32 nlmsg_pid; /* Sending process port ID */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Flags values */
|
|
||||||
|
|
||||||
#define NLM_F_REQUEST 1 /* It is request message. */
|
|
||||||
#define NLM_F_MULTI 2 /* Multipart message, terminated by NLMSG_DONE */
|
|
||||||
#define NLM_F_ACK 4 /* Reply with ack, with zero or error code */
|
|
||||||
#define NLM_F_ECHO 8 /* Echo this request */
|
|
||||||
|
|
||||||
/* Modifiers to GET request */
|
|
||||||
#define NLM_F_ROOT 0x100 /* specify tree root */
|
|
||||||
#define NLM_F_MATCH 0x200 /* return all matching */
|
|
||||||
#define NLM_F_ATOMIC 0x400 /* atomic GET */
|
|
||||||
#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH)
|
|
||||||
|
|
||||||
/* Modifiers to NEW request */
|
|
||||||
#define NLM_F_REPLACE 0x100 /* Override existing */
|
|
||||||
#define NLM_F_EXCL 0x200 /* Do not touch, if it exists */
|
|
||||||
#define NLM_F_CREATE 0x400 /* Create, if it does not exist */
|
|
||||||
#define NLM_F_APPEND 0x800 /* Add to end of list */
|
|
||||||
|
|
||||||
/*
|
|
||||||
4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL
|
|
||||||
4.4BSD CHANGE NLM_F_REPLACE
|
|
||||||
|
|
||||||
True CHANGE NLM_F_CREATE|NLM_F_REPLACE
|
|
||||||
Append NLM_F_CREATE
|
|
||||||
Check NLM_F_EXCL
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define NLMSG_ALIGNTO 4
|
|
||||||
#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
|
|
||||||
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
|
||||||
#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
|
|
||||||
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
|
||||||
#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
|
|
||||||
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
|
|
||||||
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
|
|
||||||
#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
|
|
||||||
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
|
|
||||||
(nlh)->nlmsg_len <= (len))
|
|
||||||
#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
|
|
||||||
|
|
||||||
#define NLMSG_NOOP 0x1 /* Nothing. */
|
|
||||||
#define NLMSG_ERROR 0x2 /* Error */
|
|
||||||
#define NLMSG_DONE 0x3 /* End of a dump */
|
|
||||||
#define NLMSG_OVERRUN 0x4 /* Data lost */
|
|
||||||
|
|
||||||
#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */
|
|
||||||
|
|
||||||
struct nlmsgerr
|
|
||||||
{
|
|
||||||
int error;
|
|
||||||
struct nlmsghdr msg;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define NETLINK_ADD_MEMBERSHIP 1
|
|
||||||
#define NETLINK_DROP_MEMBERSHIP 2
|
|
||||||
#define NETLINK_PKTINFO 3
|
|
||||||
|
|
||||||
struct nl_pktinfo
|
|
||||||
{
|
|
||||||
__u32 group;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define NET_MAJOR 36 /* Major 36 is reserved for networking */
|
|
||||||
|
|
||||||
enum {
|
|
||||||
NETLINK_UNCONNECTED = 0,
|
|
||||||
NETLINK_CONNECTED,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)-->
|
|
||||||
* +---------------------+- - -+- - - - - - - - - -+- - -+
|
|
||||||
* | Header | Pad | Payload | Pad |
|
|
||||||
* | (struct nlattr) | ing | | ing |
|
|
||||||
* +---------------------+- - -+- - - - - - - - - -+- - -+
|
|
||||||
* <-------------- nlattr->nla_len -------------->
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct nlattr
|
|
||||||
{
|
|
||||||
__u16 nla_len;
|
|
||||||
__u16 nla_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* nla_type (16 bits)
|
|
||||||
* +---+---+-------------------------------+
|
|
||||||
* | N | O | Attribute Type |
|
|
||||||
* +---+---+-------------------------------+
|
|
||||||
* N := Carries nested attributes
|
|
||||||
* O := Payload stored in network byte order
|
|
||||||
*
|
|
||||||
* Note: The N and O flag are mutually exclusive.
|
|
||||||
*/
|
|
||||||
#define NLA_F_NESTED (1 << 15)
|
|
||||||
#define NLA_F_NET_BYTEORDER (1 << 14)
|
|
||||||
#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
|
|
||||||
|
|
||||||
#define NLA_ALIGNTO 4
|
|
||||||
#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
|
|
||||||
#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
|
|
||||||
|
|
||||||
#endif /* __LINUX_NETLINK_H */
|
|
Loading…
Reference in New Issue