libnl
3.2.24-rc1
|
Allocation/Freeing | |
struct rtnl_addr * | rtnl_addr_alloc (void) |
void | rtnl_addr_put (struct rtnl_addr *addr) |
Cache Management | |
int | rtnl_addr_alloc_cache (struct nl_sock *sk, struct nl_cache **result) |
struct rtnl_addr * | rtnl_addr_get (struct nl_cache *cache, int ifindex, struct nl_addr *addr) |
Search address in cache. More... | |
Addition | |
int | rtnl_addr_build_add_request (struct rtnl_addr *addr, int flags, struct nl_msg **result) |
Build netlink request message to request addition of new address. More... | |
int | rtnl_addr_add (struct nl_sock *sk, struct rtnl_addr *addr, int flags) |
Request addition of new address. More... | |
Deletion | |
int | rtnl_addr_build_delete_request (struct rtnl_addr *addr, int flags, struct nl_msg **result) |
Build a netlink request message to request deletion of an address. More... | |
int | rtnl_addr_delete (struct nl_sock *sk, struct rtnl_addr *addr, int flags) |
Request deletion of an address. More... | |
Attributes | |
int | rtnl_addr_set_label (struct rtnl_addr *addr, const char *label) |
char * | rtnl_addr_get_label (struct rtnl_addr *addr) |
void | rtnl_addr_set_ifindex (struct rtnl_addr *addr, int ifindex) |
int | rtnl_addr_get_ifindex (struct rtnl_addr *addr) |
void | rtnl_addr_set_link (struct rtnl_addr *addr, struct rtnl_link *link) |
struct rtnl_link * | rtnl_addr_get_link (struct rtnl_addr *addr) |
void | rtnl_addr_set_family (struct rtnl_addr *addr, int family) |
int | rtnl_addr_get_family (struct rtnl_addr *addr) |
void | rtnl_addr_set_prefixlen (struct rtnl_addr *addr, int prefixlen) |
Set the prefix length / netmask. More... | |
int | rtnl_addr_get_prefixlen (struct rtnl_addr *addr) |
void | rtnl_addr_set_scope (struct rtnl_addr *addr, int scope) |
int | rtnl_addr_get_scope (struct rtnl_addr *addr) |
void | rtnl_addr_set_flags (struct rtnl_addr *addr, unsigned int flags) |
void | rtnl_addr_unset_flags (struct rtnl_addr *addr, unsigned int flags) |
unsigned int | rtnl_addr_get_flags (struct rtnl_addr *addr) |
int | rtnl_addr_set_local (struct rtnl_addr *addr, struct nl_addr *local) |
struct nl_addr * | rtnl_addr_get_local (struct rtnl_addr *addr) |
int | rtnl_addr_set_peer (struct rtnl_addr *addr, struct nl_addr *peer) |
struct nl_addr * | rtnl_addr_get_peer (struct rtnl_addr *addr) |
int | rtnl_addr_set_broadcast (struct rtnl_addr *addr, struct nl_addr *bcast) |
struct nl_addr * | rtnl_addr_get_broadcast (struct rtnl_addr *addr) |
int | rtnl_addr_set_multicast (struct rtnl_addr *addr, struct nl_addr *multicast) |
struct nl_addr * | rtnl_addr_get_multicast (struct rtnl_addr *addr) |
int | rtnl_addr_set_anycast (struct rtnl_addr *addr, struct nl_addr *anycast) |
struct nl_addr * | rtnl_addr_get_anycast (struct rtnl_addr *addr) |
uint32_t | rtnl_addr_get_valid_lifetime (struct rtnl_addr *addr) |
void | rtnl_addr_set_valid_lifetime (struct rtnl_addr *addr, uint32_t lifetime) |
uint32_t | rtnl_addr_get_preferred_lifetime (struct rtnl_addr *addr) |
void | rtnl_addr_set_preferred_lifetime (struct rtnl_addr *addr, uint32_t lifetime) |
uint32_t | rtnl_addr_get_create_time (struct rtnl_addr *addr) |
uint32_t | rtnl_addr_get_last_update_time (struct rtnl_addr *addr) |
Flags Translations | |
char * | rtnl_addr_flags2str (int flags, char *buf, size_t size) |
int | rtnl_addr_str2flags (const char *name) |
|
read |
Search address in cache.
cache | Address cache |
ifindex | Interface index of address |
addr | Local address part |
Searches address cache previously allocated with rtnl_addr_alloc_cache() for an address with a matching local address.
The reference counter is incremented before returning the address, therefore the reference must be given back with rtnl_addr_put() after usage.
Definition at line 524 of file addr.c.
References nl_addr_cmp(), and nl_object_get().
int rtnl_addr_build_add_request | ( | struct rtnl_addr * | addr, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build netlink request message to request addition of new address.
addr | Address object representing the new address. |
flags | Additional netlink message flags. |
result | Pointer to store resulting message. |
Builds a new netlink message requesting the addition of a new address. The netlink message header isn't fully equipped with all relevant fields and must thus be sent out via nl_send_auto_complete() or supplemented as needed.
Minimal required attributes:
The scope will default to universe except for loopback addresses in which case a host scope is used if not specified otherwise.
Definition at line 638 of file addr.c.
Referenced by rtnl_addr_add().
int rtnl_addr_add | ( | struct nl_sock * | sk, |
struct rtnl_addr * | addr, | ||
int | flags | ||
) |
Request addition of new address.
sk | Netlink socket. |
addr | Address object representing the new address. |
flags | Additional netlink message flags. |
Builds a netlink message by calling rtnl_addr_build_add_request(), sends the request to the kernel and waits for the next ACK to be received and thus blocks until the request has been fullfilled.
Definition at line 664 of file addr.c.
References nl_send_auto_complete(), nlmsg_free(), and rtnl_addr_build_add_request().
int rtnl_addr_build_delete_request | ( | struct rtnl_addr * | addr, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink request message to request deletion of an address.
addr | Address object to be deleteted. |
flags | Additional netlink message flags. |
result | Pointer to store resulting message. |
Builds a new netlink message requesting a deletion of an address. The netlink message header isn't fully equipped with all relevant fields and must thus be sent out via nl_send_auto_complete() or supplemented as needed.
Minimal required attributes:
Optional attributes:
Definition at line 711 of file addr.c.
Referenced by rtnl_addr_delete().
int rtnl_addr_delete | ( | struct nl_sock * | sk, |
struct rtnl_addr * | addr, | ||
int | flags | ||
) |
Request deletion of an address.
sk | Netlink socket. |
addr | Address object to be deleted. |
flags | Additional netlink message flags. |
Builds a netlink message by calling rtnl_addr_build_delete_request(), sends the request to the kernel and waits for the next ACK to be received and thus blocks until the request has been fullfilled.
Definition at line 736 of file addr.c.
References nl_send_auto_complete(), nlmsg_free(), and rtnl_addr_build_delete_request().
void rtnl_addr_set_prefixlen | ( | struct rtnl_addr * | addr, |
int | prefixlen | ||
) |
Set the prefix length / netmask.
addr | Address |
prefixlen | Length of prefix (netmask) |
Modifies the length of the prefix. If the address object contains a peer address the prefix length will apply to it, otherwise the prefix length will apply to the local address of the address.
If the address object contains a peer or local address the corresponding struct nl_addr
will be updated with the new prefix length.
Definition at line 839 of file addr.c.
References nl_addr_set_prefixlen().