Android-cuttlefish cvd tool
Classes | Macros | Enumerations
netlink.h File Reference
#include <linux/const.h>
#include <linux/socket.h>
#include <linux/types.h>
Include dependency graph for netlink.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sockaddr_nl
 
struct  nlmsghdr
 
struct  nlmsgerr
 
struct  nl_pktinfo
 
struct  nl_mmap_req
 
struct  nl_mmap_hdr
 
struct  nlattr
 
struct  nla_bitfield32
 

Macros

#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 /* Unused number, formerly ip_queue */
 
#define NETLINK_SOCK_DIAG   4 /* 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 (obsolete) */
 
#define NETLINK_KOBJECT_UEVENT   15 /* Kernel messages to userspace */
 
#define NETLINK_GENERIC   16
 
#define NETLINK_SCSITRANSPORT   18 /* SCSI Transports */
 
#define NETLINK_ECRYPTFS   19
 
#define NETLINK_RDMA   20
 
#define NETLINK_CRYPTO   21 /* Crypto layer */
 
#define NETLINK_SMC   22 /* SMC monitoring */
 
#define NETLINK_INET_DIAG   NETLINK_SOCK_DIAG
 
#define MAX_LINKS   32
 
#define NLM_F_REQUEST   0x01 /* It is request message. */
 
#define NLM_F_MULTI   0x02 /* Multipart message, terminated by NLMSG_DONE */
 
#define NLM_F_ACK   0x04 /* Reply with ack, with zero or error code */
 
#define NLM_F_ECHO   0x08 /* Receive resulting notifications */
 
#define NLM_F_DUMP_INTR   0x10 /* Dump was inconsistent due to sequence change */
 
#define NLM_F_DUMP_FILTERED   0x20 /* Dump was filtered as requested */
 
#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)
 
#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 */
 
#define NLM_F_NONREC   0x100 /* Do not delete recursively */
 
#define NLM_F_BULK   0x200 /* Delete multiple objects */
 
#define NLM_F_CAPPED   0x100 /* request was capped */
 
#define NLM_F_ACK_TLVS   0x200 /* extended ACK TVLs were included */
 
#define NLMSG_ALIGNTO   4U
 
#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_HDRLEN)
 
#define NLMSG_SPACE(len)   NLMSG_ALIGN(NLMSG_LENGTH(len))
 
#define NLMSG_DATA(nlh)   ((void *)(((char *)nlh) + NLMSG_HDRLEN))
 
#define NLMSG_NEXT(nlh, len)
 
#define NLMSG_OK(nlh, 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 */
 
#define NETLINK_ADD_MEMBERSHIP   1
 
#define NETLINK_DROP_MEMBERSHIP   2
 
#define NETLINK_PKTINFO   3
 
#define NETLINK_BROADCAST_ERROR   4
 
#define NETLINK_NO_ENOBUFS   5
 
#define NETLINK_RX_RING   6
 
#define NETLINK_TX_RING   7
 
#define NETLINK_LISTEN_ALL_NSID   8
 
#define NETLINK_LIST_MEMBERSHIPS   9
 
#define NETLINK_CAP_ACK   10
 
#define NETLINK_EXT_ACK   11
 
#define NETLINK_GET_STRICT_CHK   12
 
#define NL_MMAP_MSG_ALIGNMENT   NLMSG_ALIGNTO
 
#define NL_MMAP_MSG_ALIGN(sz)   __ALIGN_KERNEL(sz, NL_MMAP_MSG_ALIGNMENT)
 
#define NL_MMAP_HDRLEN   NL_MMAP_MSG_ALIGN(sizeof(struct nl_mmap_hdr))
 
#define NET_MAJOR   36 /* Major 36 is reserved for networking */
 
#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)))
 

Enumerations

enum  nlmsgerr_attrs {
  NLMSGERR_ATTR_UNUSED , NLMSGERR_ATTR_MSG , NLMSGERR_ATTR_OFFS , NLMSGERR_ATTR_COOKIE ,
  NLMSGERR_ATTR_POLICY , NLMSGERR_ATTR_MISS_TYPE , NLMSGERR_ATTR_MISS_NEST , __NLMSGERR_ATTR_MAX ,
  NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
}
 
enum  nl_mmap_status {
  NL_MMAP_STATUS_UNUSED , NL_MMAP_STATUS_RESERVED , NL_MMAP_STATUS_VALID , NL_MMAP_STATUS_COPY ,
  NL_MMAP_STATUS_SKIP
}
 
enum  { NETLINK_UNCONNECTED = 0 , NETLINK_CONNECTED }
 
enum  netlink_attribute_type {
  NL_ATTR_TYPE_INVALID , NL_ATTR_TYPE_FLAG , NL_ATTR_TYPE_U8 , NL_ATTR_TYPE_U16 ,
  NL_ATTR_TYPE_U32 , NL_ATTR_TYPE_U64 , NL_ATTR_TYPE_S8 , NL_ATTR_TYPE_S16 ,
  NL_ATTR_TYPE_S32 , NL_ATTR_TYPE_S64 , NL_ATTR_TYPE_BINARY , NL_ATTR_TYPE_STRING ,
  NL_ATTR_TYPE_NUL_STRING , NL_ATTR_TYPE_NESTED , NL_ATTR_TYPE_NESTED_ARRAY , NL_ATTR_TYPE_BITFIELD32 ,
  NL_ATTR_TYPE_SINT , NL_ATTR_TYPE_UINT
}
 
enum  netlink_policy_type_attr {
  NL_POLICY_TYPE_ATTR_UNSPEC , NL_POLICY_TYPE_ATTR_TYPE , NL_POLICY_TYPE_ATTR_MIN_VALUE_S , NL_POLICY_TYPE_ATTR_MAX_VALUE_S ,
  NL_POLICY_TYPE_ATTR_MIN_VALUE_U , NL_POLICY_TYPE_ATTR_MAX_VALUE_U , NL_POLICY_TYPE_ATTR_MIN_LENGTH , NL_POLICY_TYPE_ATTR_MAX_LENGTH ,
  NL_POLICY_TYPE_ATTR_POLICY_IDX , NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE , NL_POLICY_TYPE_ATTR_BITFIELD32_MASK , NL_POLICY_TYPE_ATTR_PAD ,
  NL_POLICY_TYPE_ATTR_MASK , __NL_POLICY_TYPE_ATTR_MAX , NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1
}
 

Macro Definition Documentation

◆ MAX_LINKS

#define MAX_LINKS   32

◆ NET_MAJOR

#define NET_MAJOR   36 /* Major 36 is reserved for networking */

◆ NETLINK_ADD_MEMBERSHIP

#define NETLINK_ADD_MEMBERSHIP   1

◆ NETLINK_AUDIT

#define NETLINK_AUDIT   9 /* auditing */

◆ NETLINK_BROADCAST_ERROR

#define NETLINK_BROADCAST_ERROR   4

◆ NETLINK_CAP_ACK

#define NETLINK_CAP_ACK   10

◆ NETLINK_CONNECTOR

#define NETLINK_CONNECTOR   11

◆ NETLINK_CRYPTO

#define NETLINK_CRYPTO   21 /* Crypto layer */

◆ NETLINK_DNRTMSG

#define NETLINK_DNRTMSG   14 /* DECnet routing messages (obsolete) */

◆ NETLINK_DROP_MEMBERSHIP

#define NETLINK_DROP_MEMBERSHIP   2

◆ NETLINK_ECRYPTFS

#define NETLINK_ECRYPTFS   19

◆ NETLINK_EXT_ACK

#define NETLINK_EXT_ACK   11

◆ NETLINK_FIB_LOOKUP

#define NETLINK_FIB_LOOKUP   10

◆ NETLINK_FIREWALL

#define NETLINK_FIREWALL   3 /* Unused number, formerly ip_queue */

◆ NETLINK_GENERIC

#define NETLINK_GENERIC   16

◆ NETLINK_GET_STRICT_CHK

#define NETLINK_GET_STRICT_CHK   12

◆ NETLINK_INET_DIAG

#define NETLINK_INET_DIAG   NETLINK_SOCK_DIAG

◆ NETLINK_IP6_FW

#define NETLINK_IP6_FW   13

◆ NETLINK_ISCSI

#define NETLINK_ISCSI   8 /* Open-iSCSI */

◆ NETLINK_KOBJECT_UEVENT

#define NETLINK_KOBJECT_UEVENT   15 /* Kernel messages to userspace */

◆ NETLINK_LIST_MEMBERSHIPS

#define NETLINK_LIST_MEMBERSHIPS   9

◆ NETLINK_LISTEN_ALL_NSID

#define NETLINK_LISTEN_ALL_NSID   8

◆ NETLINK_NETFILTER

#define NETLINK_NETFILTER   12 /* netfilter subsystem */

◆ NETLINK_NFLOG

#define NETLINK_NFLOG   5 /* netfilter/iptables ULOG */

◆ NETLINK_NO_ENOBUFS

#define NETLINK_NO_ENOBUFS   5

◆ NETLINK_PKTINFO

#define NETLINK_PKTINFO   3

◆ NETLINK_RDMA

#define NETLINK_RDMA   20

◆ NETLINK_ROUTE

#define NETLINK_ROUTE   0 /* Routing/device hook */

◆ NETLINK_RX_RING

#define NETLINK_RX_RING   6

◆ NETLINK_SCSITRANSPORT

#define NETLINK_SCSITRANSPORT   18 /* SCSI Transports */

◆ NETLINK_SELINUX

#define NETLINK_SELINUX   7 /* SELinux event notifications */

◆ NETLINK_SMC

#define NETLINK_SMC   22 /* SMC monitoring */

◆ NETLINK_SOCK_DIAG

#define NETLINK_SOCK_DIAG   4 /* socket monitoring */

◆ NETLINK_TX_RING

#define NETLINK_TX_RING   7

◆ NETLINK_UNUSED

#define NETLINK_UNUSED   1 /* Unused number */

◆ NETLINK_USERSOCK

#define NETLINK_USERSOCK   2 /* Reserved for user mode socket protocols */

◆ NETLINK_XFRM

#define NETLINK_XFRM   6 /* ipsec */

◆ NL_MMAP_HDRLEN

#define NL_MMAP_HDRLEN   NL_MMAP_MSG_ALIGN(sizeof(struct nl_mmap_hdr))

◆ NL_MMAP_MSG_ALIGN

#define NL_MMAP_MSG_ALIGN (   sz)    __ALIGN_KERNEL(sz, NL_MMAP_MSG_ALIGNMENT)

◆ NL_MMAP_MSG_ALIGNMENT

#define NL_MMAP_MSG_ALIGNMENT   NLMSG_ALIGNTO

◆ NLA_ALIGN

#define NLA_ALIGN (   len)    (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))

◆ NLA_ALIGNTO

#define NLA_ALIGNTO   4

◆ NLA_F_NESTED

#define NLA_F_NESTED   (1 << 15)

◆ NLA_F_NET_BYTEORDER

#define NLA_F_NET_BYTEORDER   (1 << 14)

◆ NLA_HDRLEN

#define NLA_HDRLEN   ((int) NLA_ALIGN(sizeof(struct nlattr)))

◆ NLA_TYPE_MASK

#define NLA_TYPE_MASK   ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)

◆ NLM_F_ACK

#define NLM_F_ACK   0x04 /* Reply with ack, with zero or error code */

◆ NLM_F_ACK_TLVS

#define NLM_F_ACK_TLVS   0x200 /* extended ACK TVLs were included */

◆ NLM_F_APPEND

#define NLM_F_APPEND   0x800 /* Add to end of list */

◆ NLM_F_ATOMIC

#define NLM_F_ATOMIC   0x400 /* atomic GET */

◆ NLM_F_BULK

#define NLM_F_BULK   0x200 /* Delete multiple objects */

◆ NLM_F_CAPPED

#define NLM_F_CAPPED   0x100 /* request was capped */

◆ NLM_F_CREATE

#define NLM_F_CREATE   0x400 /* Create, if it does not exist */

◆ NLM_F_DUMP

#define NLM_F_DUMP   (NLM_F_ROOT|NLM_F_MATCH)

◆ NLM_F_DUMP_FILTERED

#define NLM_F_DUMP_FILTERED   0x20 /* Dump was filtered as requested */

◆ NLM_F_DUMP_INTR

#define NLM_F_DUMP_INTR   0x10 /* Dump was inconsistent due to sequence change */

◆ NLM_F_ECHO

#define NLM_F_ECHO   0x08 /* Receive resulting notifications */

◆ NLM_F_EXCL

#define NLM_F_EXCL   0x200 /* Do not touch, if it exists */

◆ NLM_F_MATCH

#define NLM_F_MATCH   0x200 /* return all matching */

◆ NLM_F_MULTI

#define NLM_F_MULTI   0x02 /* Multipart message, terminated by NLMSG_DONE */

◆ NLM_F_NONREC

#define NLM_F_NONREC   0x100 /* Do not delete recursively */

◆ NLM_F_REPLACE

#define NLM_F_REPLACE   0x100 /* Override existing */

◆ NLM_F_REQUEST

#define NLM_F_REQUEST   0x01 /* It is request message. */

◆ NLM_F_ROOT

#define NLM_F_ROOT   0x100 /* specify tree root */

◆ NLMSG_ALIGN

#define NLMSG_ALIGN (   len)    ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )

◆ NLMSG_ALIGNTO

#define NLMSG_ALIGNTO   4U

◆ NLMSG_DATA

#define NLMSG_DATA (   nlh)    ((void *)(((char *)nlh) + NLMSG_HDRLEN))

◆ NLMSG_DONE

#define NLMSG_DONE   0x3 /* End of a dump */

◆ NLMSG_ERROR

#define NLMSG_ERROR   0x2 /* Error */

◆ NLMSG_HDRLEN

#define NLMSG_HDRLEN   ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))

◆ NLMSG_LENGTH

#define NLMSG_LENGTH (   len)    ((len) + NLMSG_HDRLEN)

◆ NLMSG_MIN_TYPE

#define NLMSG_MIN_TYPE   0x10 /* < 0x10: reserved control messages */

◆ NLMSG_NEXT

#define NLMSG_NEXT (   nlh,
  len 
)
Value:
((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
(struct nlmsghdr *)(((char *)(nlh)) + \
NLMSG_ALIGN((nlh)->nlmsg_len)))
Definition: netlink.h:52

◆ NLMSG_NOOP

#define NLMSG_NOOP   0x1 /* Nothing. */

◆ NLMSG_OK

#define NLMSG_OK (   nlh,
  len 
)
Value:
((len) >= (int)sizeof(struct nlmsghdr) && \
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
(nlh)->nlmsg_len <= (len))
__u32 nlmsg_len
Definition: netlink.h:53

◆ NLMSG_OVERRUN

#define NLMSG_OVERRUN   0x4 /* Data lost */

◆ NLMSG_PAYLOAD

#define NLMSG_PAYLOAD (   nlh,
  len 
)    ((nlh)->nlmsg_len - NLMSG_SPACE((len)))

◆ NLMSG_SPACE

#define NLMSG_SPACE (   len)    NLMSG_ALIGN(NLMSG_LENGTH(len))

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NETLINK_UNCONNECTED 
NETLINK_CONNECTED 

◆ netlink_attribute_type

enum netlink_attribute_type - type of an attribute @NL_ATTR_TYPE_INVALID: unused @NL_ATTR_TYPE_FLAG: flag attribute (present/not present) @NL_ATTR_TYPE_U8: 8-bit unsigned attribute @NL_ATTR_TYPE_U16: 16-bit unsigned attribute @NL_ATTR_TYPE_U32: 32-bit unsigned attribute @NL_ATTR_TYPE_U64: 64-bit unsigned attribute @NL_ATTR_TYPE_S8: 8-bit signed attribute @NL_ATTR_TYPE_S16: 16-bit signed attribute @NL_ATTR_TYPE_S32: 32-bit signed attribute @NL_ATTR_TYPE_S64: 64-bit signed attribute @NL_ATTR_TYPE_BINARY: binary data, min/max length may be specified @NL_ATTR_TYPE_STRING: string, min/max length may be specified @NL_ATTR_TYPE_NUL_STRING: NUL-terminated string, min/max length may be specified @NL_ATTR_TYPE_NESTED: nested, i.e. the content of this attribute consists of sub-attributes. The nested policy and maxtype inside may be specified. @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i.e. the content of this attribute contains sub-attributes whose type is irrelevant (just used to separate the array entries) and each such array entry has attributes again, the policy for those inner ones and the corresponding maxtype may be specified. @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfield32 attribute @NL_ATTR_TYPE_SINT: 32-bit or 64-bit signed attribute, aligned to 4B @NL_ATTR_TYPE_UINT: 32-bit or 64-bit unsigned attribute, aligned to 4B

Enumerator
NL_ATTR_TYPE_INVALID 
NL_ATTR_TYPE_FLAG 
NL_ATTR_TYPE_U8 
NL_ATTR_TYPE_U16 
NL_ATTR_TYPE_U32 
NL_ATTR_TYPE_U64 
NL_ATTR_TYPE_S8 
NL_ATTR_TYPE_S16 
NL_ATTR_TYPE_S32 
NL_ATTR_TYPE_S64 
NL_ATTR_TYPE_BINARY 
NL_ATTR_TYPE_STRING 
NL_ATTR_TYPE_NUL_STRING 
NL_ATTR_TYPE_NESTED 
NL_ATTR_TYPE_NESTED_ARRAY 
NL_ATTR_TYPE_BITFIELD32 
NL_ATTR_TYPE_SINT 
NL_ATTR_TYPE_UINT 

◆ netlink_policy_type_attr

enum netlink_policy_type_attr - policy type attributes @NL_POLICY_TYPE_ATTR_UNSPEC: unused @NL_POLICY_TYPE_ATTR_TYPE: type of the attribute, &enum netlink_attribute_type (U32) @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum value for signed integers (S64) @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum value for signed integers (S64) @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum value for unsigned integers (U64) @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum value for unsigned integers (U64) @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum length for binary attributes, no minimum if not given (U32) @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum length for binary attributes, no maximum if not given (U32) @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy for nested and nested array types (U32) @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximum sub policy attribute for nested and nested array types, this can in theory be < the size of the policy pointed to by the index, if limited inside the nesting (U32) @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid mask for the bitfield32 type (U32) @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment

@__NL_POLICY_TYPE_ATTR_MAX: number of attributes @NL_POLICY_TYPE_ATTR_MAX: highest attribute number

Enumerator
NL_POLICY_TYPE_ATTR_UNSPEC 
NL_POLICY_TYPE_ATTR_TYPE 
NL_POLICY_TYPE_ATTR_MIN_VALUE_S 
NL_POLICY_TYPE_ATTR_MAX_VALUE_S 
NL_POLICY_TYPE_ATTR_MIN_VALUE_U 
NL_POLICY_TYPE_ATTR_MAX_VALUE_U 
NL_POLICY_TYPE_ATTR_MIN_LENGTH 
NL_POLICY_TYPE_ATTR_MAX_LENGTH 
NL_POLICY_TYPE_ATTR_POLICY_IDX 
NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE 
NL_POLICY_TYPE_ATTR_BITFIELD32_MASK 
NL_POLICY_TYPE_ATTR_PAD 
NL_POLICY_TYPE_ATTR_MASK 
__NL_POLICY_TYPE_ATTR_MAX 
NL_POLICY_TYPE_ATTR_MAX 

◆ nl_mmap_status

Enumerator
NL_MMAP_STATUS_UNUSED 
NL_MMAP_STATUS_RESERVED 
NL_MMAP_STATUS_VALID 
NL_MMAP_STATUS_COPY 
NL_MMAP_STATUS_SKIP 

◆ nlmsgerr_attrs

enum nlmsgerr_attrs - nlmsgerr attributes @NLMSGERR_ATTR_UNUSED: unused @NLMSGERR_ATTR_MSG: error message string (string) @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original message, counting from the beginning of the header (u32) @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to be used - in the success case - to identify a created object or operation or similar (binary) @NLMSGERR_ATTR_POLICY: policy for a rejected attribute @NLMSGERR_ATTR_MISS_TYPE: type of a missing required attribute, NLMSGERR_ATTR_MISS_NEST will not be present if the attribute was missing at the message level @NLMSGERR_ATTR_MISS_NEST: offset of the nest where attribute was missing @__NLMSGERR_ATTR_MAX: number of attributes @NLMSGERR_ATTR_MAX: highest attribute number

Enumerator
NLMSGERR_ATTR_UNUSED 
NLMSGERR_ATTR_MSG 
NLMSGERR_ATTR_OFFS 
NLMSGERR_ATTR_COOKIE 
NLMSGERR_ATTR_POLICY 
NLMSGERR_ATTR_MISS_TYPE 
NLMSGERR_ATTR_MISS_NEST 
__NLMSGERR_ATTR_MAX 
NLMSGERR_ATTR_MAX