libnl 3.7.0
|
Modules | |
Bonding | |
Bridging | |
CAN | |
Controller Area Network link module. | |
Dummy | |
Geneve | |
Generic Network Virtualization Encapsulation. | |
IP6GRE | |
ip6gre link module | |
IP6TNL | |
ip6tnl link module | |
IP6VTI | |
ip6vti link module | |
IPGRE | |
ipgre link module | |
IPIP | |
ipip link module | |
IPVLAN | |
IP-based Virtual LAN link module. | |
IPVTI | |
ipvti link module | |
Intermediate Functional Block | |
Link Modules API | |
API for modules implementing specific link types/semantics. | |
MACVLAN/MACVTAP | |
MAC-based Virtual LAN link module. | |
MACsec | |
MACsec link module. | |
PPP | |
SIT | |
sit link module | |
SRIOV | |
SR-IOV VF link module. | |
Team | |
VETH | |
Virtual Ethernet. | |
VLAN | |
Virtual LAN link module. | |
VRF | |
Virtual Routing and Forwarding link module. | |
VXLAN | |
Virtual eXtensible Local Area Network link module. | |
XFRMI | |
xfrmi link module | |
Data Structures | |
struct | rtnl_link |
Link object. More... | |
Functions | |
struct rtnl_link * | link_lookup (struct nl_cache *cache, int ifindex) |
int | rtnl_link_info_parse (struct rtnl_link *link, struct nlattr **tb) |
int | rtnl_link_fill_info (struct nl_msg *msg, struct rtnl_link *link) |
Variables | |
struct nla_policy | rtln_link_policy [IFLA_MAX+1] |
Utilities | |
char * | rtnl_link_flags2str (int flags, char *buf, size_t len) |
int | rtnl_link_str2flags (const char *name) |
char * | rtnl_link_stat2str (int st, char *buf, size_t len) |
int | rtnl_link_str2stat (const char *name) |
char * | rtnl_link_operstate2str (uint8_t st, char *buf, size_t len) |
int | rtnl_link_str2operstate (const char *name) |
char * | rtnl_link_mode2str (uint8_t st, char *buf, size_t len) |
int | rtnl_link_str2mode (const char *name) |
char * | rtnl_link_carrier2str (uint8_t st, char *buf, size_t len) |
int | rtnl_link_str2carrier (const char *name) |
int | rtnl_link_has_vf_list (struct rtnl_link *link) |
void | rtnl_link_set_vf_list (struct rtnl_link *link) |
void | rtnl_link_unset_vf_list (struct rtnl_link *link) |
Get / List | |
int | rtnl_link_alloc_cache_flags (struct nl_sock *sk, int family, struct nl_cache **result, unsigned int flags) |
Allocate link cache and fill in all configured links. More... | |
int | rtnl_link_alloc_cache (struct nl_sock *sk, int family, struct nl_cache **result) |
Allocate link cache and fill in all configured links. More... | |
struct rtnl_link * | rtnl_link_get (struct nl_cache *cache, int ifindex) |
Lookup link in cache by interface index. More... | |
struct rtnl_link * | rtnl_link_get_by_name (struct nl_cache *cache, const char *name) |
Lookup link in cache by link name. More... | |
int | rtnl_link_build_get_request (int ifindex, const char *name, struct nl_msg **result) |
Construct RTM_GETLINK netlink message. More... | |
int | rtnl_link_get_kernel (struct nl_sock *sk, int ifindex, const char *name, struct rtnl_link **result) |
Get a link object directly from kernel. More... | |
char * | rtnl_link_i2name (struct nl_cache *cache, int ifindex, char *dst, size_t len) |
Translate interface index to corresponding link name. More... | |
int | rtnl_link_name2i (struct nl_cache *cache, const char *name) |
Translate link name to corresponding interface index. More... | |
Add / Modify | |
int | rtnl_link_build_add_request (struct rtnl_link *link, int flags, struct nl_msg **result) |
Build a netlink message requesting the addition of new virtual link. More... | |
int | rtnl_link_add (struct nl_sock *sk, struct rtnl_link *link, int flags) |
Add virtual link. More... | |
int | rtnl_link_build_change_request (struct rtnl_link *orig, struct rtnl_link *changes, int flags, struct nl_msg **result) |
Build a netlink message requesting the modification of link. More... | |
int | rtnl_link_change (struct nl_sock *sk, struct rtnl_link *orig, struct rtnl_link *changes, int flags) |
Change link. More... | |
Delete | |
int | rtnl_link_build_delete_request (const struct rtnl_link *link, struct nl_msg **result) |
Build a netlink message requesting the deletion of a link. More... | |
int | rtnl_link_delete (struct nl_sock *sk, const struct rtnl_link *link) |
Delete link. More... | |
Link Object | |
struct rtnl_link * | rtnl_link_alloc (void) |
Allocate link object. More... | |
void | rtnl_link_put (struct rtnl_link *link) |
Return a link object reference. More... | |
void | rtnl_link_set_name (struct rtnl_link *link, const char *name) |
Set name of link object. More... | |
char * | rtnl_link_get_name (struct rtnl_link *link) |
Return name of link object. More... | |
void | rtnl_link_set_group (struct rtnl_link *link, uint32_t group) |
Set the group identifier of a link object. More... | |
uint32_t | rtnl_link_get_group (struct rtnl_link *link) |
Return the group identifier of link object. More... | |
void | rtnl_link_set_addr (struct rtnl_link *link, struct nl_addr *addr) |
Set link layer address of link object. More... | |
struct nl_addr * | rtnl_link_get_addr (struct rtnl_link *link) |
Return link layer address of link object. More... | |
void | rtnl_link_set_broadcast (struct rtnl_link *link, struct nl_addr *addr) |
Set link layer broadcast address of link object. More... | |
struct nl_addr * | rtnl_link_get_broadcast (struct rtnl_link *link) |
Return link layer broadcast address of link object. More... | |
void | rtnl_link_set_flags (struct rtnl_link *link, unsigned int flags) |
Set flags of link object. More... | |
void | rtnl_link_unset_flags (struct rtnl_link *link, unsigned int flags) |
Unset flags of link object. More... | |
unsigned int | rtnl_link_get_flags (struct rtnl_link *link) |
Return flags of link object. More... | |
void | rtnl_link_set_family (struct rtnl_link *link, int family) |
Set address family of link object. More... | |
int | rtnl_link_get_family (struct rtnl_link *link) |
Return address family of link object. More... | |
void | rtnl_link_set_arptype (struct rtnl_link *link, unsigned int arptype) |
Set hardware type of link object. More... | |
unsigned int | rtnl_link_get_arptype (struct rtnl_link *link) |
Get hardware type of link object. More... | |
void | rtnl_link_set_ifindex (struct rtnl_link *link, int ifindex) |
Set interface index of link object. More... | |
int | rtnl_link_get_ifindex (struct rtnl_link *link) |
Return interface index of link object. More... | |
void | rtnl_link_set_mtu (struct rtnl_link *link, unsigned int mtu) |
Set Maximum Transmission Unit of link object. More... | |
unsigned int | rtnl_link_get_mtu (struct rtnl_link *link) |
Return maximum transmission unit of link object. More... | |
void | rtnl_link_set_txqlen (struct rtnl_link *link, unsigned int txqlen) |
Set transmission queue length. More... | |
unsigned int | rtnl_link_get_txqlen (struct rtnl_link *link) |
Return transmission queue length. More... | |
void | rtnl_link_set_link (struct rtnl_link *link, int ifindex) |
int | rtnl_link_get_link (struct rtnl_link *link) |
int | rtnl_link_set_link_netnsid (struct rtnl_link *link, int32_t link_netnsid) |
Set the netnsid of the link. More... | |
int | rtnl_link_get_link_netnsid (const struct rtnl_link *link, int32_t *out_link_netnsid) |
Get the netnsid of the link. More... | |
void | rtnl_link_set_master (struct rtnl_link *link, int ifindex) |
Set master link of link object. More... | |
int | rtnl_link_get_master (struct rtnl_link *link) |
Return master link of link object. More... | |
void | rtnl_link_set_carrier (struct rtnl_link *link, uint8_t status) |
Set carrier of link object. More... | |
uint8_t | rtnl_link_get_carrier (struct rtnl_link *link) |
Return carrier status of link object. More... | |
int | rtnl_link_get_carrier_changes (struct rtnl_link *link, uint32_t *carrier_changes) |
Return carrier on/off changes of link object. More... | |
void | rtnl_link_set_operstate (struct rtnl_link *link, uint8_t status) |
Set operational status of link object. More... | |
uint8_t | rtnl_link_get_operstate (struct rtnl_link *link) |
Return operational status of link object. More... | |
void | rtnl_link_set_linkmode (struct rtnl_link *link, uint8_t mode) |
Set link mode of link object. More... | |
uint8_t | rtnl_link_get_linkmode (struct rtnl_link *link) |
Return link mode of link object. More... | |
const char * | rtnl_link_get_ifalias (struct rtnl_link *link) |
Return alias name of link object (SNMP IfAlias) More... | |
void | rtnl_link_set_ifalias (struct rtnl_link *link, const char *alias) |
Set alias name of link object (SNMP IfAlias) More... | |
void | rtnl_link_set_qdisc (struct rtnl_link *link, const char *name) |
Set queueing discipline name of link object. More... | |
char * | rtnl_link_get_qdisc (struct rtnl_link *link) |
Return name of queueing discipline of link object. More... | |
int | rtnl_link_get_num_vf (struct rtnl_link *link, uint32_t *num_vf) |
Return number of PCI virtual functions of link object. More... | |
uint64_t | rtnl_link_get_stat (struct rtnl_link *link, rtnl_link_stat_id_t id) |
Return value of link statistics counter. More... | |
int | rtnl_link_set_stat (struct rtnl_link *link, rtnl_link_stat_id_t id, const uint64_t value) |
Set value of link statistics counter. More... | |
int | rtnl_link_set_type (struct rtnl_link *link, const char *type) |
Set type of link object. More... | |
char * | rtnl_link_get_type (struct rtnl_link *link) |
Return type of link. More... | |
int | rtnl_link_set_slave_type (struct rtnl_link *link, const char *type) |
Set type of slave link object. More... | |
const char * | rtnl_link_get_slave_type (const struct rtnl_link *link) |
Return type of enslaved link. More... | |
void | rtnl_link_set_promiscuity (struct rtnl_link *link, uint32_t count) |
Set link promiscuity count. More... | |
uint32_t | rtnl_link_get_promiscuity (struct rtnl_link *link) |
Return link promiscuity count. More... | |
void | rtnl_link_set_num_tx_queues (struct rtnl_link *link, uint32_t nqueues) |
Set number of TX queues. More... | |
uint32_t | rtnl_link_get_num_tx_queues (struct rtnl_link *link) |
Return number of TX queues. More... | |
void | rtnl_link_set_num_rx_queues (struct rtnl_link *link, uint32_t nqueues) |
Set number of RX queues. More... | |
uint32_t | rtnl_link_get_num_rx_queues (struct rtnl_link *link) |
Return number of RX queues. More... | |
int | rtnl_link_get_gso_max_segs (struct rtnl_link *link, uint32_t *gso_max_segs) |
Return maximum number of segments for generic segmentation offload. More... | |
int | rtnl_link_get_gso_max_size (struct rtnl_link *link, uint32_t *gso_max_size) |
Return maximum size for generic segmentation offload. More... | |
struct nl_data * | rtnl_link_get_phys_port_id (struct rtnl_link *link) |
Return physical port id of link object. More... | |
char * | rtnl_link_get_phys_port_name (struct rtnl_link *link) |
Return physical port name of link object. More... | |
struct nl_data * | rtnl_link_get_phys_switch_id (struct rtnl_link *link) |
void | rtnl_link_set_ns_fd (struct rtnl_link *link, int fd) |
int | rtnl_link_get_ns_fd (struct rtnl_link *link) |
void | rtnl_link_set_ns_pid (struct rtnl_link *link, pid_t pid) |
pid_t | rtnl_link_get_ns_pid (struct rtnl_link *link) |
Master/Slave | |
int | rtnl_link_enslave_ifindex (struct nl_sock *sock, int master, int slave) |
Enslave slave link to master link. More... | |
int | rtnl_link_enslave (struct nl_sock *sock, struct rtnl_link *master, struct rtnl_link *slave) |
Enslave slave link to master link. More... | |
int | rtnl_link_release_ifindex (struct nl_sock *sock, int slave) |
Release slave link from its master. More... | |
int | rtnl_link_release (struct nl_sock *sock, struct rtnl_link *slave) |
Release slave link from its master. More... | |
Deprecated Functions | |
int | rtnl_link_set_info_type (struct rtnl_link *link, const char *type) |
char * | rtnl_link_get_info_type (struct rtnl_link *link) |
void | rtnl_link_set_weight (struct rtnl_link *link, unsigned int weight) |
unsigned int | rtnl_link_get_weight (struct rtnl_link *link) |
Link Documentation (Netlink Routing Development Guide)
enum rtnl_link_stat_id_t |
struct rtnl_link * link_lookup | ( | struct nl_cache * | cache, |
int | ifindex | ||
) |
int rtnl_link_info_parse | ( | struct rtnl_link * | link, |
struct nlattr ** | tb | ||
) |
int rtnl_link_alloc_cache_flags | ( | struct nl_sock * | sk, |
int | family, | ||
struct nl_cache ** | result, | ||
unsigned int | flags | ||
) |
Allocate link cache and fill in all configured links.
sk | Netlink socket. |
family | Link address family or AF_UNSPEC |
result | Pointer to store resulting cache. |
flags | Flags to set in link cache before filling |
Allocates and initializes a new link cache. If sk
is valid, a netlink message is sent to the kernel requesting a full dump of all configured links. The returned messages are parsed and filled into the cache. If the operation succeeds, the resulting cache will contain a link object for each link configured in the kernel. If sk
is NULL, returns 0 but the cache is still empty.
If family
is set to an address family other than AF_UNSPEC
the contents of the cache can be limited to a specific address family. Currently the following address families are supported:
Get List of Links (Netlink Routing Development Guide)
Definition at line 1236 of file link.c.
References nl_cache_alloc(), nl_cache_free(), nl_cache_refill(), and nl_cache_set_flags().
Referenced by rtnl_link_alloc_cache().
int rtnl_link_alloc_cache | ( | struct nl_sock * | sk, |
int | family, | ||
struct nl_cache ** | result | ||
) |
Allocate link cache and fill in all configured links.
sk | Netlink socket. |
family | Link address family or AF_UNSPEC |
result | Pointer to store resulting cache. |
Allocates and initializes a new link cache. If sk
is valid, a netlink message is sent to the kernel requesting a full dump of all configured links. The returned messages are parsed and filled into the cache. If the operation succeeds, the resulting cache will contain a link object for each link configured in the kernel. If sk
is NULL, returns 0 but the cache is still empty.
If family
is set to an address family other than AF_UNSPEC
the contents of the cache can be limited to a specific address family. Currently the following address families are supported:
Get List of Links (Netlink Routing Development Guide)
Definition at line 1284 of file link.c.
References rtnl_link_alloc_cache_flags().
struct rtnl_link * rtnl_link_get | ( | struct nl_cache * | cache, |
int | ifindex | ||
) |
Lookup link in cache by interface index.
cache | Link cache |
ifindex | Interface index |
Searches through the provided cache looking for a link with matching interface index.
Get List of Links (Netlink Routing Development Guide)
Definition at line 1305 of file link.c.
References nl_object_get().
Referenced by rtnl_link_i2name().
struct rtnl_link * rtnl_link_get_by_name | ( | struct nl_cache * | cache, |
const char * | name | ||
) |
Lookup link in cache by link name.
cache | Link cache |
name | Name of link |
Searches through the provided cache looking for a link with matching link name
Get List of Links (Netlink Routing Development Guide)
Definition at line 1337 of file link.c.
References nl_object_get().
Referenced by rtnl_link_name2i().
int rtnl_link_build_get_request | ( | int | ifindex, |
const char * | name, | ||
struct nl_msg ** | result | ||
) |
Construct RTM_GETLINK netlink message.
ifindex | Interface index |
name | Name of link |
result | Pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_link_get_kernel() with the exception that it will not send the message but return it in the provided return pointer instead.
Definition at line 1369 of file link.c.
References nla_put(), nla_put_string(), nlmsg_alloc_simple(), and nlmsg_append().
Referenced by rtnl_link_get_kernel().
int rtnl_link_get_kernel | ( | struct nl_sock * | sk, |
int | ifindex, | ||
const char * | name, | ||
struct rtnl_link ** | result | ||
) |
Get a link object directly from kernel.
sk | Netlink socket |
ifindex | Interface index |
name | Name of link |
result | Pointer to store resulting link object |
This function builds a RTM_GETLINK
netlink message to request a specific link directly from the kernel. The returned answer is parsed into a struct rtnl_link object and returned via the result pointer or -NLE_OBJ_NOTFOUND is returned if no matching link was found.
Older kernels do not support lookup by name. In that case, libnl will fail with -NLE_OPNOTSUPP. Note that previous version of libnl failed in this case with -NLE_INVAL. You can check libnl behavior using NL_CAPABILITY_ROUTE_LINK_GET_KERNEL_FAIL_OPNOTSUPP capability.
Lookup Single Link (Direct Lookup) (Netlink Routing Development Guide)
Definition at line 1421 of file link.c.
References nl_pickup_keep_syserr(), nl_send_auto(), and rtnl_link_build_get_request().
Referenced by rtnl_link_bond_enslave_ifindex(), and rtnl_link_enslave_ifindex().
char * rtnl_link_i2name | ( | struct nl_cache * | cache, |
int | ifindex, | ||
char * | dst, | ||
size_t | len | ||
) |
Translate interface index to corresponding link name.
cache | Link cache |
ifindex | Interface index |
dst | String to store name |
len | Length of destination string |
Translates the specified interface index to the corresponding link name and stores the name in the destination string.
Translating interface index to link name (Netlink Routing Development Guide)
Definition at line 1473 of file link.c.
References rtnl_link_get().
int rtnl_link_name2i | ( | struct nl_cache * | cache, |
const char * | name | ||
) |
Translate link name to corresponding interface index.
cache | Link cache |
name | Name of link |
Translating interface index to link name (Netlink Routing Development Guide)
Definition at line 1496 of file link.c.
References rtnl_link_get_by_name().
int rtnl_link_fill_info | ( | struct nl_msg * | msg, |
struct rtnl_link * | link | ||
) |
int rtnl_link_build_add_request | ( | struct rtnl_link * | link, |
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink message requesting the addition of new virtual link.
link | new link to add |
flags | additional netlink message flags |
result | pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_link_add() with the exception that it will not send the message but return it in the provided return pointer instead.
Definition at line 1654 of file link.c.
Referenced by rtnl_link_add().
int rtnl_link_add | ( | struct nl_sock * | sk, |
struct rtnl_link * | link, | ||
int | flags | ||
) |
Add virtual link.
sk | netlink socket. |
link | new link to add |
flags | additional netlink message flags |
Builds a RTM_NEWLINK
netlink message requesting the addition of a new virtual link.
After sending, the function will wait for the ACK or an eventual error message to be received and will therefore block until the operation has been completed.
Definition at line 1684 of file link.c.
References nl_send_sync(), and rtnl_link_build_add_request().
Referenced by rtnl_link_bond_add(), rtnl_link_bridge_add(), rtnl_link_ip6_tnl_add(), rtnl_link_ip6gre_add(), rtnl_link_ip6vti_add(), rtnl_link_ipgre_add(), rtnl_link_ipgretap_add(), rtnl_link_ipip_add(), rtnl_link_ipvti_add(), rtnl_link_sit_add(), rtnl_link_team_add(), and rtnl_link_veth_add().
int rtnl_link_build_change_request | ( | struct rtnl_link * | orig, |
struct rtnl_link * | changes, | ||
int | flags, | ||
struct nl_msg ** | result | ||
) |
Build a netlink message requesting the modification of link.
orig | original link to change |
changes | link containing the changes to be made |
flags | additional netlink message flags |
result | pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_link_change() with the exception that it will not send the message but return it in the provided return pointer instead.
Definition at line 1716 of file link.c.
Referenced by rtnl_link_change().
int rtnl_link_change | ( | struct nl_sock * | sk, |
struct rtnl_link * | orig, | ||
struct rtnl_link * | changes, | ||
int | flags | ||
) |
Change link.
sk | netlink socket. |
orig | original link to be changed |
changes | link containing the changes to be made |
flags | additional netlink message flags |
Builds a RTM_NEWLINK
netlink message requesting the change of a network link. If -EOPNOTSUPP is returned by the kernel, the message type will be changed to RTM_SETLINK
and the message is resent to work around older kernel versions.
The link to be changed is looked up based on the interface index supplied in the orig
link. Optionaly the link name is used but only if no interface index is provided, otherwise providing an link name will result in the link name being changed.
If no matching link exists, the function will return -NLE_OBJ_NOTFOUND.
After sending, the function will wait for the ACK or an eventual error message to be received and will therefore block until the operation has been completed.
NLE_SEQ_MISMATCH
would be returned if the kernel does not supports RTM_NEWLINK
. It is advised to ignore the error code if you cannot upgrade the library.Definition at line 1787 of file link.c.
References NL_AUTO_SEQ, nl_send_auto_complete(), and rtnl_link_build_change_request().
Referenced by rtnl_link_bond_enslave_ifindex(), and rtnl_link_enslave_ifindex().
int rtnl_link_build_delete_request | ( | const struct rtnl_link * | link, |
struct nl_msg ** | result | ||
) |
Build a netlink message requesting the deletion of a link.
link | Link to delete |
result | Pointer to store resulting netlink message |
The behaviour of this function is identical to rtnl_link_delete() with the exception that it will not send the message but return it in the provided return pointer instead.
Definition at line 1837 of file link.c.
References nla_put_string(), nlmsg_alloc_simple(), and nlmsg_append().
Referenced by rtnl_link_delete().
int rtnl_link_delete | ( | struct nl_sock * | sk, |
const struct rtnl_link * | link | ||
) |
Delete link.
sk | Netlink socket |
link | Link to delete |
Builds a RTM_DELLINK
netlink message requesting the deletion of a network link which has been previously added to the kernel and sends the message to the kernel.
If no matching link exists, the function will return -NLE_OBJ_NOTFOUND.
After sending, the function will wait for the ACK or an eventual error message to be received and will therefore block until the operation has been completed.
Definition at line 1886 of file link.c.
References nl_send_sync(), and rtnl_link_build_delete_request().
struct rtnl_link * rtnl_link_alloc | ( | void | ) |
Allocate link object.
Definition at line 1910 of file link.c.
References nl_object_alloc().
Referenced by rtnl_link_bond_alloc(), rtnl_link_bridge_alloc(), rtnl_link_enslave_ifindex(), rtnl_link_geneve_alloc(), rtnl_link_ipvlan_alloc(), rtnl_link_macvlan_alloc(), rtnl_link_macvtap_alloc(), rtnl_link_ppp_alloc(), rtnl_link_team_alloc(), rtnl_link_veth_alloc(), rtnl_link_vlan_alloc(), rtnl_link_vrf_alloc(), and rtnl_link_vxlan_alloc().
void rtnl_link_put | ( | struct rtnl_link * | link | ) |
Return a link object reference.
link | Link object |
Definition at line 1919 of file link.c.
References nl_object_put().
Referenced by rtnl_link_bond_add(), rtnl_link_bond_alloc(), rtnl_link_bond_enslave_ifindex(), rtnl_link_bridge_add(), rtnl_link_bridge_alloc(), rtnl_link_enslave_ifindex(), rtnl_link_geneve_alloc(), rtnl_link_ip6_tnl_add(), rtnl_link_ip6gre_add(), rtnl_link_ip6vti_add(), rtnl_link_ipgre_add(), rtnl_link_ipgretap_add(), rtnl_link_ipip_add(), rtnl_link_ipvlan_alloc(), rtnl_link_ipvti_add(), rtnl_link_macvlan_alloc(), rtnl_link_macvtap_alloc(), rtnl_link_ppp_alloc(), rtnl_link_sit_add(), rtnl_link_team_add(), rtnl_link_team_alloc(), rtnl_link_veth_add(), rtnl_link_veth_alloc(), rtnl_link_veth_release(), rtnl_link_vlan_alloc(), rtnl_link_vrf_alloc(), rtnl_link_vxlan_alloc(), rtnl_tc_set_ifindex(), and rtnl_tc_set_link().
void rtnl_link_set_name | ( | struct rtnl_link * | link, |
const char * | name | ||
) |
Set name of link object.
link | Link object |
name | New name |
Link Name (Netlink Routing Development Guide)
Definition at line 1938 of file link.c.
Referenced by rtnl_link_bond_add(), rtnl_link_bridge_add(), rtnl_link_ip6_tnl_add(), rtnl_link_ip6gre_add(), rtnl_link_ip6vti_add(), rtnl_link_ipgre_add(), rtnl_link_ipgretap_add(), rtnl_link_ipip_add(), rtnl_link_ipvti_add(), rtnl_link_sit_add(), rtnl_link_team_add(), and rtnl_link_veth_add().
char * rtnl_link_get_name | ( | struct rtnl_link * | link | ) |
Return name of link object.
link | Link object |
Link Name (Netlink Routing Development Guide)
Definition at line 1952 of file link.c.
Referenced by rtnl_link_bond_add(), and rtnl_link_team_add().
void rtnl_link_set_group | ( | struct rtnl_link * | link, |
uint32_t | group | ||
) |
uint32_t rtnl_link_get_group | ( | struct rtnl_link * | link | ) |
void rtnl_link_set_addr | ( | struct rtnl_link * | link, |
struct nl_addr * | addr | ||
) |
Set link layer address of link object.
link | Link object |
addr | New link layer address |
The function increments the reference counter of the address object and overwrites any existing link layer address previously assigned.
Link layer address (Netlink Routing Development Guide)
struct nl_addr * rtnl_link_get_addr | ( | struct rtnl_link * | link | ) |
Return link layer address of link object.
link | Link object |
void rtnl_link_set_broadcast | ( | struct rtnl_link * | link, |
struct nl_addr * | addr | ||
) |
Set link layer broadcast address of link object.
link | Link object |
addr | New broadcast address |
The function increments the reference counter of the address object and overwrites any existing link layer broadcast address previously assigned.
Link Layer Broadcast Address (Netlink Routing Development Guide)
struct nl_addr * rtnl_link_get_broadcast | ( | struct rtnl_link * | link | ) |
Return link layer broadcast address of link object.
link | Link object |
void rtnl_link_set_flags | ( | struct rtnl_link * | link, |
unsigned int | flags | ||
) |
Set flags of link object.
link | Link object |
flags | Flags |
void rtnl_link_unset_flags | ( | struct rtnl_link * | link, |
unsigned int | flags | ||
) |
Unset flags of link object.
link | Link object |
flags | Flags |
unsigned int rtnl_link_get_flags | ( | struct rtnl_link * | link | ) |
Return flags of link object.
link | Link object |
Link Flags (Netlink Routing Development Guide)
void rtnl_link_set_family | ( | struct rtnl_link * | link, |
int | family | ||
) |
Set address family of link object.
int rtnl_link_get_family | ( | struct rtnl_link * | link | ) |
Return address family of link object.
link | Link object |
AF_UNSPEC
if not specified. void rtnl_link_set_arptype | ( | struct rtnl_link * | link, |
unsigned int | arptype | ||
) |
Set hardware type of link object.
link | Link object |
arptype | New hardware type (ARPHRD_*) |
Hardware Type (Netlink Routing Development Guide)
unsigned int rtnl_link_get_arptype | ( | struct rtnl_link * | link | ) |
Get hardware type of link object.
link | Link object |
Hardware Type (Netlink Routing Development Guide)
(ARPHRD_ETHER *) or ARPHRD_VOID
void rtnl_link_set_ifindex | ( | struct rtnl_link * | link, |
int | ifindex | ||
) |
Set interface index of link object.
link | Link object |
ifindex | Interface index |
Interface Index (Netlink Routing Development Guide)
Definition at line 2167 of file link.c.
Referenced by rtnl_link_bond_enslave_ifindex(), and rtnl_link_enslave_ifindex().
int rtnl_link_get_ifindex | ( | struct rtnl_link * | link | ) |
Return interface index of link object.
link | Link object |
Interface Index (Netlink Routing Development Guide)
Definition at line 2182 of file link.c.
Referenced by rtnl_link_bond_enslave(), rtnl_link_bond_release(), rtnl_link_enslave(), and rtnl_link_release().
void rtnl_link_set_mtu | ( | struct rtnl_link * | link, |
unsigned int | mtu | ||
) |
Set Maximum Transmission Unit of link object.
link | Link object |
mtu | New MTU value in number of bytes |
Maximum Transmission Unit (Netlink Routing Development Guide)
unsigned int rtnl_link_get_mtu | ( | struct rtnl_link * | link | ) |
Return maximum transmission unit of link object.
link | Link object |
Maximum Transmission Unit (Netlink Routing Development Guide)
void rtnl_link_set_txqlen | ( | struct rtnl_link * | link, |
unsigned int | txqlen | ||
) |
Set transmission queue length.
link | Link object |
txqlen | New queue length |
The unit is dependant on the link type. The most common units is number of packets.
Transmission Queue Length (Netlink Routing Development Guide)
unsigned int rtnl_link_get_txqlen | ( | struct rtnl_link * | link | ) |
Return transmission queue length.
link | Link object |
The unit is dependant on the link type. The most common units is number of packets.
Transmission Queue Length (Netlink Routing Development Guide)
void rtnl_link_set_link | ( | struct rtnl_link * | link, |
int | ifindex | ||
) |
int rtnl_link_set_link_netnsid | ( | struct rtnl_link * | link, |
int32_t | link_netnsid | ||
) |
int rtnl_link_get_link_netnsid | ( | const struct rtnl_link * | link, |
int32_t * | out_link_netnsid | ||
) |
void rtnl_link_set_master | ( | struct rtnl_link * | link, |
int | ifindex | ||
) |
Set master link of link object.
link | Link object |
ifindex | Interface index of master link |
Definition at line 2297 of file link.c.
Referenced by rtnl_link_bond_enslave_ifindex(), and rtnl_link_enslave_ifindex().
int rtnl_link_get_master | ( | struct rtnl_link * | link | ) |
Return master link of link object.
link | Link object |
Definition at line 2310 of file link.c.
Referenced by rtnl_link_bond_enslave_ifindex(), and rtnl_link_enslave_ifindex().
void rtnl_link_set_carrier | ( | struct rtnl_link * | link, |
uint8_t | status | ||
) |
Set carrier of link object.
link | Link object |
status | New carrier status |
uint8_t rtnl_link_get_carrier | ( | struct rtnl_link * | link | ) |
Return carrier status of link object.
link | Link object |
int rtnl_link_get_carrier_changes | ( | struct rtnl_link * | link, |
uint32_t * | carrier_changes | ||
) |
void rtnl_link_set_operstate | ( | struct rtnl_link * | link, |
uint8_t | status | ||
) |
Set operational status of link object.
link | Link object |
status | New opertional status |
Operational Status (Netlink Routing Development Guide)}
uint8_t rtnl_link_get_operstate | ( | struct rtnl_link * | link | ) |
Return operational status of link object.
link | Link object |
Operational Status (Netlink Routing Development Guide)
IF_OPER_UNKNOWN
void rtnl_link_set_linkmode | ( | struct rtnl_link * | link, |
uint8_t | mode | ||
) |
Set link mode of link object.
link | Link object |
mode | New link mode |
Mode (Netlink Routing Development Guide)
uint8_t rtnl_link_get_linkmode | ( | struct rtnl_link * | link | ) |
Return link mode of link object.
link | Link object |
Mode (Netlink Routing Development Guide)
IF_LINK_MODE_DEFAULT
const char * rtnl_link_get_ifalias | ( | struct rtnl_link * | link | ) |
Return alias name of link object (SNMP IfAlias)
link | Link object |
Alias (Netlink Routing Development Guide)
void rtnl_link_set_ifalias | ( | struct rtnl_link * | link, |
const char * | alias | ||
) |
Set alias name of link object (SNMP IfAlias)
link | Link object |
alias | Alias name or NULL to unset |
Sets the alias name of the link to the specified name. The alias name can be unset by specyfing NULL as the alias. The name will be strdup()ed, so no need to provide a persistent character string.
Alias (Netlink Routing Development Guide)
void rtnl_link_set_qdisc | ( | struct rtnl_link * | link, |
const char * | name | ||
) |
Set queueing discipline name of link object.
link | Link object |
name | Name of queueing discipline |
For more information on how to modify the qdisc of a link, see section Traffic Control (Netlink Routing Development Guide).
Queueing Discipline Name (Netlink Routing Development Guide)
char * rtnl_link_get_qdisc | ( | struct rtnl_link * | link | ) |
Return name of queueing discipline of link object.
link | Link object |
Queueing Discipline Name (Netlink Routing Development Guide)
int rtnl_link_get_num_vf | ( | struct rtnl_link * | link, |
uint32_t * | num_vf | ||
) |
uint64_t rtnl_link_get_stat | ( | struct rtnl_link * | link, |
rtnl_link_stat_id_t | id | ||
) |
int rtnl_link_set_stat | ( | struct rtnl_link * | link, |
rtnl_link_stat_id_t | id, | ||
const uint64_t | value | ||
) |
int rtnl_link_set_type | ( | struct rtnl_link * | link, |
const char * | type | ||
) |
Set type of link object.
link | Link object |
type | Name of link type |
Looks up the link type module and prepares the link to store type specific attributes. If a type has been assigned already it will be released with all link type specific attributes lost.
Link Modules (Netlink Routing Development Guide)
Definition at line 2548 of file link.c.
References rtnl_link_info_ops_lookup().
Referenced by rtnl_link_bond_alloc(), rtnl_link_bridge_alloc(), rtnl_link_geneve_alloc(), rtnl_link_ipvlan_alloc(), rtnl_link_macvlan_alloc(), rtnl_link_macvtap_alloc(), rtnl_link_ppp_alloc(), rtnl_link_set_info_type(), rtnl_link_team_alloc(), rtnl_link_veth_alloc(), rtnl_link_vlan_alloc(), rtnl_link_vrf_alloc(), and rtnl_link_vxlan_alloc().
char * rtnl_link_get_type | ( | struct rtnl_link * | link | ) |
Return type of link.
link | Link object |
Link Modules (Netlink Routing Development Guide)
Definition at line 2588 of file link.c.
Referenced by rtnl_link_get_info_type().
int rtnl_link_set_slave_type | ( | struct rtnl_link * | link, |
const char * | type | ||
) |
Set type of slave link object.
link | Link object (slave) |
type | Name of link type |
If a slave type has been assigned already it will be released.
Link Modules (Netlink Routing Development Guide)
const char * rtnl_link_get_slave_type | ( | const struct rtnl_link * | link | ) |
Return type of enslaved link.
link | Link object |
Link Modules (Netlink Routing Development Guide)
void rtnl_link_set_promiscuity | ( | struct rtnl_link * | link, |
uint32_t | count | ||
) |
Set link promiscuity count.
link | Link object |
count | New promiscuity count |
uint32_t rtnl_link_get_promiscuity | ( | struct rtnl_link * | link | ) |
Return link promiscuity count.
link | Link object |
void rtnl_link_set_num_tx_queues | ( | struct rtnl_link * | link, |
uint32_t | nqueues | ||
) |
Set number of TX queues.
link | Link object |
nqueues | Number of queues |
Sets the number of TX queues of the link object. The value is considered by the kernel when creating network devices that can be created via netlink. The value will be passed on to alloc_netdev_mqs()
Therefore use of rtnl_link_set_num_tx_queues() only makes sense in combination with rtnl_link_add() or if the link object is used as a filter.
uint32_t rtnl_link_get_num_tx_queues | ( | struct rtnl_link * | link | ) |
void rtnl_link_set_num_rx_queues | ( | struct rtnl_link * | link, |
uint32_t | nqueues | ||
) |
Set number of RX queues.
link | Link object |
nqueues | Number of queues |
Sets the number of RX queues of the link object. The value is considered by the kernel when creating network devices that can be created via netlink. The value will be passed on to alloc_netdev_mqs()
Therefore use of rtnl_link_set_num_rx_queues() only makes sense in combination with rtnl_link_add() or if the link object is used as a filter.
uint32_t rtnl_link_get_num_rx_queues | ( | struct rtnl_link * | link | ) |
int rtnl_link_get_gso_max_segs | ( | struct rtnl_link * | link, |
uint32_t * | gso_max_segs | ||
) |
int rtnl_link_get_gso_max_size | ( | struct rtnl_link * | link, |
uint32_t * | gso_max_size | ||
) |
struct nl_data * rtnl_link_get_phys_port_id | ( | struct rtnl_link * | link | ) |
char * rtnl_link_get_phys_port_name | ( | struct rtnl_link * | link | ) |
struct nl_data * rtnl_link_get_phys_switch_id | ( | struct rtnl_link * | link | ) |
void rtnl_link_set_ns_fd | ( | struct rtnl_link * | link, |
int | fd | ||
) |
void rtnl_link_set_ns_pid | ( | struct rtnl_link * | link, |
pid_t | pid | ||
) |
int rtnl_link_enslave_ifindex | ( | struct nl_sock * | sock, |
int | master, | ||
int | slave | ||
) |
Enslave slave link to master link.
sock | netlink socket |
master | ifindex of master link |
slave | ifindex of slave link |
This function is identical to rtnl_link_enslave() except that it takes interface indices instead of rtnl_link objects.
Definition at line 2836 of file link.c.
References rtnl_link_alloc(), rtnl_link_change(), rtnl_link_get_kernel(), rtnl_link_get_master(), rtnl_link_put(), rtnl_link_set_ifindex(), and rtnl_link_set_master().
Referenced by rtnl_link_enslave(), and rtnl_link_release_ifindex().
int rtnl_link_enslave | ( | struct nl_sock * | sock, |
struct rtnl_link * | master, | ||
struct rtnl_link * | slave | ||
) |
Enslave slave link to master link.
sock | netlink socket |
master | master link |
slave | slave link |
Constructs a RTM_NEWLINK or RTM_SETLINK message adding the slave to the master and sends the request via the specified netlink socket.
Definition at line 2888 of file link.c.
References rtnl_link_enslave_ifindex(), and rtnl_link_get_ifindex().
int rtnl_link_release_ifindex | ( | struct nl_sock * | sock, |
int | slave | ||
) |
Release slave link from its master.
sock | netlink socket |
slave | slave link |
This function is identical to rtnl_link_release() except that it takes an interface index instead of a rtnl_link object.
Definition at line 2907 of file link.c.
References rtnl_link_enslave_ifindex().
Referenced by rtnl_link_release().
int rtnl_link_release | ( | struct nl_sock * | sock, |
struct rtnl_link * | slave | ||
) |
Release slave link from its master.
sock | netlink socket |
slave | slave link |
Constructs a RTM_NEWLINK or RTM_SETLINK message releasing the slave from its master and sends the request via the specified netlink socket.
Definition at line 2931 of file link.c.
References rtnl_link_get_ifindex(), and rtnl_link_release_ifindex().
char * rtnl_link_flags2str | ( | int | flags, |
char * | buf, | ||
size_t | len | ||
) |
char * rtnl_link_stat2str | ( | int | st, |
char * | buf, | ||
size_t | len | ||
) |
char * rtnl_link_operstate2str | ( | uint8_t | st, |
char * | buf, | ||
size_t | len | ||
) |
char * rtnl_link_mode2str | ( | uint8_t | st, |
char * | buf, | ||
size_t | len | ||
) |
char * rtnl_link_carrier2str | ( | uint8_t | st, |
char * | buf, | ||
size_t | len | ||
) |
int rtnl_link_set_info_type | ( | struct rtnl_link * | link, |
const char * | type | ||
) |
Definition at line 3135 of file link.c.
References rtnl_link_set_type().
char * rtnl_link_get_info_type | ( | struct rtnl_link * | link | ) |
Definition at line 3143 of file link.c.
References rtnl_link_get_type().
void rtnl_link_set_weight | ( | struct rtnl_link * | link, |
unsigned int | weight | ||
) |
unsigned int rtnl_link_get_weight | ( | struct rtnl_link * | link | ) |
struct nla_policy rtln_link_policy[IFLA_MAX+1] |