1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef __LINUX_IF_ADDR_H
20#define __LINUX_IF_ADDR_H
21#include <linux/types.h>
22#include <linux/netlink.h>
23struct ifaddrmsg {
24  __u8 ifa_family;
25  __u8 ifa_prefixlen;
26  __u8 ifa_flags;
27  __u8 ifa_scope;
28  __u32 ifa_index;
29};
30enum {
31  IFA_UNSPEC,
32  IFA_ADDRESS,
33  IFA_LOCAL,
34  IFA_LABEL,
35  IFA_BROADCAST,
36  IFA_ANYCAST,
37  IFA_CACHEINFO,
38  IFA_MULTICAST,
39  IFA_FLAGS,
40  __IFA_MAX,
41};
42#define IFA_MAX (__IFA_MAX - 1)
43#define IFA_F_SECONDARY 0x01
44#define IFA_F_TEMPORARY IFA_F_SECONDARY
45#define IFA_F_NODAD 0x02
46#define IFA_F_OPTIMISTIC 0x04
47#define IFA_F_DADFAILED 0x08
48#define IFA_F_HOMEADDRESS 0x10
49#define IFA_F_DEPRECATED 0x20
50#define IFA_F_TENTATIVE 0x40
51#define IFA_F_PERMANENT 0x80
52#define IFA_F_MANAGETEMPADDR 0x100
53#define IFA_F_NOPREFIXROUTE 0x200
54#define IFA_F_MCAUTOJOIN 0x400
55#define IFA_F_STABLE_PRIVACY 0x800
56struct ifa_cacheinfo {
57  __u32 ifa_prefered;
58  __u32 ifa_valid;
59  __u32 cstamp;
60  __u32 tstamp;
61};
62#define IFA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
63#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct ifaddrmsg))
64#endif
65