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