Home | History | Annotate | Download | only in route
      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 (at) 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