blob: 438df6f9acc50b7b8b3ec8052b8e906fb1783054 [file] [log] [blame]
Nicholas Flintham1e3d3112013-04-10 10:48:38 +01001#ifndef __LINUX_IF_ADDR_H
2#define __LINUX_IF_ADDR_H
3
4#include <linux/types.h>
5#include <linux/netlink.h>
6
7struct ifaddrmsg {
8 __u8 ifa_family;
9 __u8 ifa_prefixlen;
10 __u8 ifa_flags;
11 __u8 ifa_scope;
12 __u32 ifa_index;
13};
14
15enum {
16 IFA_UNSPEC,
17 IFA_ADDRESS,
18 IFA_LOCAL,
19 IFA_LABEL,
20 IFA_BROADCAST,
21 IFA_ANYCAST,
22 IFA_CACHEINFO,
23 IFA_MULTICAST,
24 __IFA_MAX,
25};
26
27#define IFA_MAX (__IFA_MAX - 1)
28
29#define IFA_F_SECONDARY 0x01
30#define IFA_F_TEMPORARY IFA_F_SECONDARY
31
32#define IFA_F_NODAD 0x02
33#define IFA_F_OPTIMISTIC 0x04
34#define IFA_F_DADFAILED 0x08
35#define IFA_F_HOMEADDRESS 0x10
36#define IFA_F_DEPRECATED 0x20
37#define IFA_F_TENTATIVE 0x40
38#define IFA_F_PERMANENT 0x80
39
40struct ifa_cacheinfo {
41 __u32 ifa_prefered;
42 __u32 ifa_valid;
43 __u32 cstamp;
44 __u32 tstamp;
45};
46
47#ifndef __KERNEL__
48#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
49#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
50#endif
51
52#endif