170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin/****************************************************************************
270725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ****************************************************************************
370725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***
470725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***   This header was automatically generated from a Linux kernel header
570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***   of the same name, to make information necessary for userspace to
670725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***   call into the kernel available to libc.  It contains only constants,
770725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***   structures, and macros generated from the original header, and thus,
870725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***   contains no copyrightable information.
970725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ***
1070725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ****************************************************************************
1170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin ****************************************************************************/
1270725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#ifndef __LINUX_NETLINK_H
1370725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define __LINUX_NETLINK_H
1470725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
1570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#include <linux/socket.h>
1670725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#include <linux/types.h>
1770725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
1870725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NETLINK_ROUTE 0
1970725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NETLINK_UNUSED 1
20d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NETLINK_USERSOCK 2
215743868e15c88d2886915163652a1571a218bf39Igor Murashkin#define NETLINK_FIREWALL 3
223c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin#define NETLINK_INET_DIAG 4
2372f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkin#define NETLINK_NFLOG 5
243c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin#define NETLINK_XFRM 6
253c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin#define NETLINK_SELINUX 7
26b7bfdc7cf7f45805e8e7ebea77a15051b8ad3e8dZhijun He#define NETLINK_ISCSI 8
273c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin#define NETLINK_AUDIT 9
283710db80d4b9e573d775790e4c9a2ab6e062201eIgor Murashkin#define NETLINK_FIB_LOOKUP 10
299c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin#define NETLINK_CONNECTOR 11
30b7bfdc7cf7f45805e8e7ebea77a15051b8ad3e8dZhijun He#define NETLINK_NETFILTER 12
31d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NETLINK_IP6_FW 13
32d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NETLINK_DNRTMSG 14
33b7bfdc7cf7f45805e8e7ebea77a15051b8ad3e8dZhijun He#define NETLINK_KOBJECT_UEVENT 15
3472f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkin#define NETLINK_GENERIC 16
3570c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala
363c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin#define MAX_LINKS 32
3772f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkin
3872f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkinstruct sockaddr_nl
3912da140082323d9aa048b3e928505a0a2adfdda7Yin-Chia Yeh{
4072f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkin sa_family_t nl_family;
419c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin unsigned short nl_pad;
4272f9f0a96e4476ef231d5001cb30521ad4ce5b1eIgor Murashkin __u32 nl_pid;
439c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin __u32 nl_groups;
449c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin};
459c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin
468490ace76fd350e53de9554c11fca715c5a37aafYin-Chia Yehstruct nlmsghdr
473c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin{
48b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin __u32 nlmsg_len;
4970c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala __u16 nlmsg_type;
503c40a046cf0ea7b6af01ec93e5276eccb3234bfeIgor Murashkin __u16 nlmsg_flags;
51b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin __u32 nlmsg_seq;
52b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin __u32 nlmsg_pid;
53b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin};
54b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
55d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NLM_F_REQUEST 1
5670725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_MULTI 2
5770725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_ACK 4
5870725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_ECHO 8
5970725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
6070725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_ROOT 0x100
6170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_MATCH 0x200
6270725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_ATOMIC 0x400
6370725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH)
6470725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
6570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLM_F_REPLACE 0x100
66d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NLM_F_EXCL 0x200
67d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NLM_F_CREATE 0x400
68d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin#define NLM_F_APPEND 0x800
69d6d65154e55612b489aae95b60f3145f3b81f3b4Igor Murashkin
7070c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala#define NLMSG_ALIGNTO 4
7170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
72b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
73b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
74b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
75b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
76b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len),   (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
77b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) &&   (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) &&   (nlh)->nlmsg_len <= (len))
78b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
79b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
80b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_NOOP 0x1
81b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_ERROR 0x2
82b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_DONE 0x3
83b7bfdc7cf7f45805e8e7ebea77a15051b8ad3e8dZhijun He#define NLMSG_OVERRUN 0x4
84b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
85b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLMSG_MIN_TYPE 0x10
86b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
87b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkinstruct nlmsgerr
889c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin{
899c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin int error;
909c595174ccaaf3d36315c4a100e47ee4369073f6Igor Murashkin struct nlmsghdr msg;
9170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin};
9270725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
9370c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala#define NETLINK_ADD_MEMBERSHIP 1
9470725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NETLINK_DROP_MEMBERSHIP 2
9570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NETLINK_PKTINFO 3
9670725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
9770725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkinstruct nl_pktinfo
9870725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin{
9970725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin __u32 group;
10070725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin};
10170725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
10270725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin#define NET_MAJOR 36
10370725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin
10470725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkinenum {
10570725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin NETLINK_UNCONNECTED = 0,
10670725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin NETLINK_CONNECTED,
10770725500dcf3b666b43d50563d64705aab58d2d3Igor Murashkin};
108b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
109b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkinstruct nlattr
110b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin{
111b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin __u16 nla_len;
112b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin __u16 nla_type;
11370c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala};
114b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
11570c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala#define NLA_ALIGNTO 4
116b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
11770c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
118b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin
11970c2207c34cf0e6b3b383b1b1500ff5385aa51a6Eino-Ville Talvala#endif
120b519cc52ecba8f44da31173c9fc90a7b66d52b79Igor Murashkin