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_NEIGHBOUR_H
20 #define __LINUX_NEIGHBOUR_H
21 #include <linux/types.h>
22 #include <linux/netlink.h>
23 struct ndmsg {
24   __u8 ndm_family;
25   __u8 ndm_pad1;
26   __u16 ndm_pad2;
27   __s32 ndm_ifindex;
28   __u16 ndm_state;
29   __u8 ndm_flags;
30   __u8 ndm_type;
31 };
32 enum {
33   NDA_UNSPEC,
34   NDA_DST,
35   NDA_LLADDR,
36   NDA_CACHEINFO,
37   NDA_PROBES,
38   NDA_VLAN,
39   NDA_PORT,
40   NDA_VNI,
41   NDA_IFINDEX,
42   NDA_MASTER,
43   NDA_LINK_NETNSID,
44   NDA_SRC_VNI,
45   NDA_PROTOCOL,
46   NDA_NH_ID,
47   NDA_FDB_EXT_ATTRS,
48   __NDA_MAX
49 };
50 #define NDA_MAX (__NDA_MAX - 1)
51 #define NTF_USE 0x01
52 #define NTF_SELF 0x02
53 #define NTF_MASTER 0x04
54 #define NTF_PROXY 0x08
55 #define NTF_EXT_LEARNED 0x10
56 #define NTF_OFFLOADED 0x20
57 #define NTF_STICKY 0x40
58 #define NTF_ROUTER 0x80
59 #define NUD_INCOMPLETE 0x01
60 #define NUD_REACHABLE 0x02
61 #define NUD_STALE 0x04
62 #define NUD_DELAY 0x08
63 #define NUD_PROBE 0x10
64 #define NUD_FAILED 0x20
65 #define NUD_NOARP 0x40
66 #define NUD_PERMANENT 0x80
67 #define NUD_NONE 0x00
68 struct nda_cacheinfo {
69   __u32 ndm_confirmed;
70   __u32 ndm_used;
71   __u32 ndm_updated;
72   __u32 ndm_refcnt;
73 };
74 struct ndt_stats {
75   __u64 ndts_allocs;
76   __u64 ndts_destroys;
77   __u64 ndts_hash_grows;
78   __u64 ndts_res_failed;
79   __u64 ndts_lookups;
80   __u64 ndts_hits;
81   __u64 ndts_rcv_probes_mcast;
82   __u64 ndts_rcv_probes_ucast;
83   __u64 ndts_periodic_gc_runs;
84   __u64 ndts_forced_gc_runs;
85   __u64 ndts_table_fulls;
86 };
87 enum {
88   NDTPA_UNSPEC,
89   NDTPA_IFINDEX,
90   NDTPA_REFCNT,
91   NDTPA_REACHABLE_TIME,
92   NDTPA_BASE_REACHABLE_TIME,
93   NDTPA_RETRANS_TIME,
94   NDTPA_GC_STALETIME,
95   NDTPA_DELAY_PROBE_TIME,
96   NDTPA_QUEUE_LEN,
97   NDTPA_APP_PROBES,
98   NDTPA_UCAST_PROBES,
99   NDTPA_MCAST_PROBES,
100   NDTPA_ANYCAST_DELAY,
101   NDTPA_PROXY_DELAY,
102   NDTPA_PROXY_QLEN,
103   NDTPA_LOCKTIME,
104   NDTPA_QUEUE_LENBYTES,
105   NDTPA_MCAST_REPROBES,
106   NDTPA_PAD,
107   __NDTPA_MAX
108 };
109 #define NDTPA_MAX (__NDTPA_MAX - 1)
110 struct ndtmsg {
111   __u8 ndtm_family;
112   __u8 ndtm_pad1;
113   __u16 ndtm_pad2;
114 };
115 struct ndt_config {
116   __u16 ndtc_key_len;
117   __u16 ndtc_entry_size;
118   __u32 ndtc_entries;
119   __u32 ndtc_last_flush;
120   __u32 ndtc_last_rand;
121   __u32 ndtc_hash_rnd;
122   __u32 ndtc_hash_mask;
123   __u32 ndtc_hash_chain_gc;
124   __u32 ndtc_proxy_qlen;
125 };
126 enum {
127   NDTA_UNSPEC,
128   NDTA_NAME,
129   NDTA_THRESH1,
130   NDTA_THRESH2,
131   NDTA_THRESH3,
132   NDTA_CONFIG,
133   NDTA_PARMS,
134   NDTA_STATS,
135   NDTA_GC_INTERVAL,
136   NDTA_PAD,
137   __NDTA_MAX
138 };
139 #define NDTA_MAX (__NDTA_MAX - 1)
140 enum {
141   FDB_NOTIFY_BIT = (1 << 0),
142   FDB_NOTIFY_INACTIVE_BIT = (1 << 1)
143 };
144 enum {
145   NFEA_UNSPEC,
146   NFEA_ACTIVITY_NOTIFY,
147   NFEA_DONT_REFRESH,
148   __NFEA_MAX
149 };
150 #define NFEA_MAX (__NFEA_MAX - 1)
151 #endif
152