1 /*
2  * netlink/route/neightbl.h	Neighbour Tables
3  *
4  *	This library is free software; you can redistribute it and/or
5  *	modify it under the terms of the GNU Lesser General Public
6  *	License as published by the Free Software Foundation version 2.1
7  *	of the License.
8  *
9  * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
10  */
11 
12 #ifndef NETLINK_NEIGHTBL_H_
13 #define NETLINK_NEIGHTBL_H_
14 
15 #include <netlink/netlink.h>
16 #include <netlink/cache.h>
17 #include <netlink/addr.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 struct rtnl_neightbl;
24 
25 extern struct rtnl_neightbl *rtnl_neightbl_alloc(void);
26 extern void rtnl_neightbl_put(struct rtnl_neightbl *);
27 extern void rtnl_neightbl_free(struct rtnl_neightbl *);
28 extern int rtnl_neightbl_alloc_cache(struct nl_sock *, struct nl_cache **);
29 extern struct rtnl_neightbl *rtnl_neightbl_get(struct nl_cache *,
30 					       const char *, int);
31 extern void rtnl_neightbl_dump(struct rtnl_neightbl *, FILE *,
32 			       struct nl_dump_params *);
33 
34 extern int rtnl_neightbl_build_change_request(struct rtnl_neightbl *,
35 					      struct rtnl_neightbl *,
36 					      struct nl_msg **);
37 extern int rtnl_neightbl_change(struct nl_sock *, struct rtnl_neightbl *,
38 				struct rtnl_neightbl *);
39 
40 extern void rtnl_neightbl_set_family(struct rtnl_neightbl *, int);
41 extern void rtnl_neightbl_set_gc_tresh1(struct rtnl_neightbl *, int);
42 extern void rtnl_neightbl_set_gc_tresh2(struct rtnl_neightbl *, int);
43 extern void rtnl_neightbl_set_gc_tresh3(struct rtnl_neightbl *, int);
44 extern void rtnl_neightbl_set_name(struct rtnl_neightbl *, const char *);
45 extern void rtnl_neightbl_set_dev(struct rtnl_neightbl *, int);
46 extern void rtnl_neightbl_set_queue_len(struct rtnl_neightbl *, int);
47 extern void rtnl_neightbl_set_proxy_queue_len(struct rtnl_neightbl *, int);
48 extern void rtnl_neightbl_set_app_probes(struct rtnl_neightbl *, int);
49 extern void rtnl_neightbl_set_ucast_probes(struct rtnl_neightbl *, int);
50 extern void rtnl_neightbl_set_mcast_probes(struct rtnl_neightbl *, int);
51 extern void rtnl_neightbl_set_base_reachable_time(struct rtnl_neightbl *,
52 						  uint64_t);
53 extern void rtnl_neightbl_set_retrans_time(struct rtnl_neightbl *, uint64_t);
54 extern void rtnl_neightbl_set_gc_stale_time(struct rtnl_neightbl *, uint64_t);
55 extern void rtnl_neightbl_set_delay_probe_time(struct rtnl_neightbl *,
56 					       uint64_t);
57 extern void rtnl_neightbl_set_anycast_delay(struct rtnl_neightbl *, uint64_t);
58 extern void rtnl_neightbl_set_proxy_delay(struct rtnl_neightbl *, uint64_t);
59 extern void rtnl_neightbl_set_locktime(struct rtnl_neightbl *, uint64_t);
60 
61 #ifdef __cplusplus
62 }
63 #endif
64 
65 #endif
66