netfilter
firewalling, NAT, and packet mangling for linux
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
netlink.h File Reference
#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:

Data Structures

struct  sockaddr_nl
 Netlink socket address. More...
 
struct  nlmsghdr
 Netlink message header. More...
 
struct  nlmsgerr
 Netlink error message. More...
 
struct  nl_pktinfo
 
struct  nlattr
 

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 /* 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
 
#define NETLINK_SCSITRANSPORT   18 /* SCSI Transports */
 
#define NETLINK_ECRYPTFS   19
 
#define MAX_LINKS   32
 
#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 */
 
#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 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)
 
#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 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  {
  NETLINK_UNCONNECTED = 0,
  NETLINK_CONNECTED
}
 

Macro Definition Documentation

#define MAX_LINKS   32
#define NET_MAJOR   36 /* Major 36 is reserved for networking */
#define NETLINK_ADD_MEMBERSHIP   1
#define NETLINK_AUDIT   9 /* auditing */
#define NETLINK_CONNECTOR   11
#define NETLINK_DNRTMSG   14 /* DECnet routing messages */
#define NETLINK_DROP_MEMBERSHIP   2
#define NETLINK_ECRYPTFS   19
#define NETLINK_FIB_LOOKUP   10
#define NETLINK_FIREWALL   3 /* Firewalling hook */
#define NETLINK_GENERIC   16
#define NETLINK_INET_DIAG   4 /* INET socket monitoring */
#define NETLINK_IP6_FW   13
#define NETLINK_ISCSI   8 /* Open-iSCSI */
#define NETLINK_KOBJECT_UEVENT   15 /* Kernel messages to userspace */
#define NETLINK_NETFILTER   12 /* netfilter subsystem */
#define NETLINK_NFLOG   5 /* netfilter/iptables ULOG */
#define NETLINK_PKTINFO   3
#define NETLINK_ROUTE   0 /* Routing/device hook */
#define NETLINK_SCSITRANSPORT   18 /* SCSI Transports */
#define NETLINK_SELINUX   7 /* SELinux event notifications */
#define NETLINK_UNUSED   1 /* Unused number */
#define NETLINK_USERSOCK   2 /* Reserved for user mode socket protocols */
#define NETLINK_XFRM   6 /* ipsec */
#define NLA_ALIGN (   len)    (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
#define NLA_ALIGNTO   4
#define NLA_F_NESTED   (1 << 15)
#define NLA_F_NET_BYTEORDER   (1 << 14)
#define NLA_HDRLEN   ((int) NLA_ALIGN(sizeof(struct nlattr)))
#define NLA_TYPE_MASK   ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
#define NLM_F_ACK   4 /* Reply with ack, with zero or error code */
#define NLM_F_APPEND   0x800 /* Add to end of list */
#define NLM_F_ATOMIC   0x400 /* atomic GET */
#define NLM_F_CREATE   0x400 /* Create, if it does not exist */
#define NLM_F_DUMP   (NLM_F_ROOT|NLM_F_MATCH)
#define NLM_F_ECHO   8 /* Echo this request */
#define NLM_F_EXCL   0x200 /* Do not touch, if it exists */
#define NLM_F_MATCH   0x200 /* return all matching */
#define NLM_F_MULTI   2 /* Multipart message, terminated by NLMSG_DONE */
#define NLM_F_REPLACE   0x100 /* Override existing */
#define NLM_F_REQUEST   1 /* It is request message. */
#define NLM_F_ROOT   0x100 /* specify tree root */
#define NLMSG_ALIGN (   len)    ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
#define NLMSG_ALIGNTO   4
#define NLMSG_DATA (   nlh)    ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
#define NLMSG_DONE   0x3 /* End of a dump */
#define NLMSG_ERROR   0x2 /* Error */
#define NLMSG_HDRLEN   ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
#define NLMSG_LENGTH (   len)    ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
#define NLMSG_MIN_TYPE   0x10 /* < 0x10: reserved control messages */
#define NLMSG_NEXT (   nlh,
  len 
)
Value:
((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
Netlink message header.
Definition: netlink.h:41
const struct nlmsghdr * nlh
Definition: libnetfilter_conntrack.h:565
int len
Definition: utils.c:56
#define NLMSG_NOOP   0x1 /* Nothing. */
#define NLMSG_OK (   nlh,
  len 
)
Value:
((len) >= (int)sizeof(struct nlmsghdr) && \
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
(nlh)->nlmsg_len <= (len))
Netlink message header.
Definition: netlink.h:41
const struct nlmsghdr * nlh
Definition: libnetfilter_conntrack.h:565
int nlmsg_len(const struct nlmsghdr *)
length of message payload
Definition: msg.c:232
int len
Definition: utils.c:56
#define NLMSG_OVERRUN   0x4 /* Data lost */
#define NLMSG_PAYLOAD (   nlh,
  len 
)    ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
#define NLMSG_SPACE (   len)    NLMSG_ALIGN(NLMSG_LENGTH(len))

Enumeration Type Documentation

anonymous enum
Enumerator
NETLINK_UNCONNECTED 
NETLINK_CONNECTED