Blame view

include/linux/neighbour.h 3.87 KB
9067c722c   Thomas Graf   [NEIGH]: Move net...
1
2
  #ifndef __LINUX_NEIGHBOUR_H
  #define __LINUX_NEIGHBOUR_H
ee79a6415   Jaswinder Singh Rajput   headers_check fix...
3
  #include <linux/types.h>
9067c722c   Thomas Graf   [NEIGH]: Move net...
4
  #include <linux/netlink.h>
d94d9fee9   Eric Dumazet   net: cleanup incl...
5
  struct ndmsg {
9067c722c   Thomas Graf   [NEIGH]: Move net...
6
7
8
9
10
11
12
13
  	__u8		ndm_family;
  	__u8		ndm_pad1;
  	__u16		ndm_pad2;
  	__s32		ndm_ifindex;
  	__u16		ndm_state;
  	__u8		ndm_flags;
  	__u8		ndm_type;
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
14
  enum {
9067c722c   Thomas Graf   [NEIGH]: Move net...
15
16
17
18
19
20
21
22
23
24
25
26
27
  	NDA_UNSPEC,
  	NDA_DST,
  	NDA_LLADDR,
  	NDA_CACHEINFO,
  	NDA_PROBES,
  	__NDA_MAX
  };
  
  #define NDA_MAX (__NDA_MAX - 1)
  
  /*
   *	Neighbor Cache Entry Flags
   */
0c5c2d308   Eric Biederman   neigh: Allow for ...
28
  #define NTF_USE		0x01
9067c722c   Thomas Graf   [NEIGH]: Move net...
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  #define NTF_PROXY	0x08	/* == ATF_PUBL */
  #define NTF_ROUTER	0x80
  
  /*
   *	Neighbor Cache Entry States.
   */
  
  #define NUD_INCOMPLETE	0x01
  #define NUD_REACHABLE	0x02
  #define NUD_STALE	0x04
  #define NUD_DELAY	0x08
  #define NUD_PROBE	0x10
  #define NUD_FAILED	0x20
  
  /* Dummy states */
  #define NUD_NOARP	0x40
  #define NUD_PERMANENT	0x80
  #define NUD_NONE	0x00
  
  /* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change
     and make no address resolution or NUD.
     NUD_PERMANENT is also cannot be deleted by garbage collectors.
   */
d94d9fee9   Eric Dumazet   net: cleanup incl...
52
  struct nda_cacheinfo {
9067c722c   Thomas Graf   [NEIGH]: Move net...
53
54
55
56
57
  	__u32		ndm_confirmed;
  	__u32		ndm_used;
  	__u32		ndm_updated;
  	__u32		ndm_refcnt;
  };
b63bbc500   Thomas Graf   [NEIGH]: Move net...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
  /*****************************************************************
   *		Neighbour tables specific messages.
   *
   * To retrieve the neighbour tables send RTM_GETNEIGHTBL with the
   * NLM_F_DUMP flag set. Every neighbour table configuration is
   * spread over multiple messages to avoid running into message
   * size limits on systems with many interfaces. The first message
   * in the sequence transports all not device specific data such as
   * statistics, configuration, and the default parameter set.
   * This message is followed by 0..n messages carrying device
   * specific parameter sets.
   * Although the ordering should be sufficient, NDTA_NAME can be
   * used to identify sequences. The initial message can be identified
   * by checking for NDTA_CONFIG. The device specific messages do
   * not contain this TLV but have NDTPA_IFINDEX set to the
   * corresponding interface index.
   *
   * To change neighbour table attributes, send RTM_SETNEIGHTBL
   * with NDTA_NAME set. Changeable attribute include NDTA_THRESH[1-3],
   * NDTA_GC_INTERVAL, and all TLVs in NDTA_PARMS unless marked
   * otherwise. Device specific parameter sets can be changed by
   * setting NDTPA_IFINDEX to the interface index of the corresponding
   * device.
   ****/
d94d9fee9   Eric Dumazet   net: cleanup incl...
82
  struct ndt_stats {
b63bbc500   Thomas Graf   [NEIGH]: Move net...
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  	__u64		ndts_allocs;
  	__u64		ndts_destroys;
  	__u64		ndts_hash_grows;
  	__u64		ndts_res_failed;
  	__u64		ndts_lookups;
  	__u64		ndts_hits;
  	__u64		ndts_rcv_probes_mcast;
  	__u64		ndts_rcv_probes_ucast;
  	__u64		ndts_periodic_gc_runs;
  	__u64		ndts_forced_gc_runs;
  };
  
  enum {
  	NDTPA_UNSPEC,
  	NDTPA_IFINDEX,			/* u32, unchangeable */
  	NDTPA_REFCNT,			/* u32, read-only */
  	NDTPA_REACHABLE_TIME,		/* u64, read-only, msecs */
  	NDTPA_BASE_REACHABLE_TIME,	/* u64, msecs */
  	NDTPA_RETRANS_TIME,		/* u64, msecs */
  	NDTPA_GC_STALETIME,		/* u64, msecs */
  	NDTPA_DELAY_PROBE_TIME,		/* u64, msecs */
  	NDTPA_QUEUE_LEN,		/* u32 */
  	NDTPA_APP_PROBES,		/* u32 */
  	NDTPA_UCAST_PROBES,		/* u32 */
  	NDTPA_MCAST_PROBES,		/* u32 */
  	NDTPA_ANYCAST_DELAY,		/* u64, msecs */
  	NDTPA_PROXY_DELAY,		/* u64, msecs */
  	NDTPA_PROXY_QLEN,		/* u32 */
  	NDTPA_LOCKTIME,			/* u64, msecs */
  	__NDTPA_MAX
  };
  #define NDTPA_MAX (__NDTPA_MAX - 1)
d94d9fee9   Eric Dumazet   net: cleanup incl...
115
  struct ndtmsg {
b63bbc500   Thomas Graf   [NEIGH]: Move net...
116
117
118
119
  	__u8		ndtm_family;
  	__u8		ndtm_pad1;
  	__u16		ndtm_pad2;
  };
d94d9fee9   Eric Dumazet   net: cleanup incl...
120
  struct ndt_config {
b63bbc500   Thomas Graf   [NEIGH]: Move net...
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
  	__u16		ndtc_key_len;
  	__u16		ndtc_entry_size;
  	__u32		ndtc_entries;
  	__u32		ndtc_last_flush;	/* delta to now in msecs */
  	__u32		ndtc_last_rand;		/* delta to now in msecs */
  	__u32		ndtc_hash_rnd;
  	__u32		ndtc_hash_mask;
  	__u32		ndtc_hash_chain_gc;
  	__u32		ndtc_proxy_qlen;
  };
  
  enum {
  	NDTA_UNSPEC,
  	NDTA_NAME,			/* char *, unchangeable */
  	NDTA_THRESH1,			/* u32 */
  	NDTA_THRESH2,			/* u32 */
  	NDTA_THRESH3,			/* u32 */
  	NDTA_CONFIG,			/* struct ndt_config, read-only */
  	NDTA_PARMS,			/* nested TLV NDTPA_* */
  	NDTA_STATS,			/* struct ndt_stats, read-only */
  	NDTA_GC_INTERVAL,		/* u64, msecs */
  	__NDTA_MAX
  };
  #define NDTA_MAX (__NDTA_MAX - 1)
9067c722c   Thomas Graf   [NEIGH]: Move net...
145
  #endif