8 #ifndef NETADDR_ADDR_H_
9 #define NETADDR_ADDR_H_
11 #include <netlink/netlink.h>
12 #include <netlink/cache.h>
13 #include <netlink/addr.h>
14 #include <netlink/route/link.h>
23 extern struct rtnl_addr *rtnl_addr_alloc(
void);
24 extern void rtnl_addr_put(
struct rtnl_addr *);
26 extern int rtnl_addr_alloc_cache(
struct nl_sock *,
struct nl_cache **);
27 extern struct rtnl_addr *
32 extern int rtnl_addr_add(
struct nl_sock *,
struct rtnl_addr *,
int);
37 struct rtnl_addr *,
int);
39 extern char * rtnl_addr_flags2str(
int,
char *,
size_t);
40 extern int rtnl_addr_str2flags(
const char *);
42 extern int rtnl_addr_set_label(
struct rtnl_addr *,
const char *);
43 extern char * rtnl_addr_get_label(
struct rtnl_addr *);
45 extern void rtnl_addr_set_ifindex(
struct rtnl_addr *,
int);
46 extern int rtnl_addr_get_ifindex(
struct rtnl_addr *);
48 extern void rtnl_addr_set_link(
struct rtnl_addr *,
struct rtnl_link *);
50 rtnl_addr_get_link(
struct rtnl_addr *);
52 extern void rtnl_addr_set_family(
struct rtnl_addr *,
int);
53 extern int rtnl_addr_get_family(
struct rtnl_addr *);
56 extern int rtnl_addr_get_prefixlen(
struct rtnl_addr *);
58 extern void rtnl_addr_set_scope(
struct rtnl_addr *,
int);
59 extern int rtnl_addr_get_scope(
struct rtnl_addr *);
61 extern void rtnl_addr_set_flags(
struct rtnl_addr *,
unsigned int);
62 extern void rtnl_addr_unset_flags(
struct rtnl_addr *,
unsigned int);
63 extern unsigned int rtnl_addr_get_flags(
struct rtnl_addr *);
65 extern int rtnl_addr_set_local(
struct rtnl_addr *,
67 extern struct nl_addr *rtnl_addr_get_local(
struct rtnl_addr *);
69 extern int rtnl_addr_set_peer(
struct rtnl_addr *,
struct nl_addr *);
70 extern struct nl_addr *rtnl_addr_get_peer(
struct rtnl_addr *);
72 extern int rtnl_addr_set_broadcast(
struct rtnl_addr *,
struct nl_addr *);
73 extern struct nl_addr *rtnl_addr_get_broadcast(
struct rtnl_addr *);
75 extern int rtnl_addr_set_multicast(
struct rtnl_addr *,
struct nl_addr *);
76 extern struct nl_addr *rtnl_addr_get_multicast(
struct rtnl_addr *);
78 extern int rtnl_addr_set_anycast(
struct rtnl_addr *,
struct nl_addr *);
79 extern struct nl_addr *rtnl_addr_get_anycast(
struct rtnl_addr *);
81 extern uint32_t rtnl_addr_get_valid_lifetime(
struct rtnl_addr *);
82 extern void rtnl_addr_set_valid_lifetime(
struct rtnl_addr *, uint32_t);
83 extern uint32_t rtnl_addr_get_preferred_lifetime(
struct rtnl_addr *);
84 extern void rtnl_addr_set_preferred_lifetime(
struct rtnl_addr *, uint32_t);
85 extern uint32_t rtnl_addr_get_create_time(
struct rtnl_addr *);
86 extern uint32_t rtnl_addr_get_last_update_time(
struct rtnl_addr *);
int rtnl_addr_build_delete_request(struct rtnl_addr *, int, struct nl_msg **)
Build a netlink request message to request deletion of an address.
int rtnl_addr_delete(struct nl_sock *, struct rtnl_addr *, int)
Request deletion of an address.
int rtnl_addr_add(struct nl_sock *, struct rtnl_addr *, int)
Request addition of new address.
struct rtnl_addr * rtnl_addr_get(struct nl_cache *, int, struct nl_addr *)
Search address in cache.
int rtnl_addr_build_add_request(struct rtnl_addr *, int, struct nl_msg **)
Build netlink request message to request addition of new address.
void rtnl_addr_set_prefixlen(struct rtnl_addr *, int)
Set the prefix length / netmask.