libnl: rtnl_link_info_ops Struct Reference

libnl 3.12.0

rtnl_link_info_ops Struct Reference

Available operations to modules implementing a link info type. More...

`#include <link-api.h>`

## Data Fields
char * | io_name
| Name of link info type, must match name on kernel side.
int | io_refcnt
| Reference count, DO NOT MODIFY.
int(* | io_alloc )(struct rtnl_link *)
| Called to assign an info type to a link.
int(* | io_parse )(struct rtnl_link *, struct nlattr *, struct nlattr *)
| Called to parse the link info attribute.
void(* | io_dump [NL_DUMP_MAX+1])(struct rtnl_link *, struct nl_dump_params *)
| Called when the link object is dumped.
int(* | io_clone )(struct rtnl_link *, struct rtnl_link *)
| Called when a link object is cloned.
int(* | io_put_attrs )(struct nl_msg *, struct rtnl_link *)
| Called when construction a link netlink message.
void(* | io_free )(struct rtnl_link *)
| Called to release all resources previously allocated in either io_alloc() or io_parse().
int(* | io_compare )(struct rtnl_link *, struct rtnl_link *, int flags)
| Called to compare link info parameters between two links.
struct nl_list_head | io_list

## Detailed Description

Available operations to modules implementing a link info type.

Definition at line 19 of file link-api.h.

## Field Documentation

## ◆ io_name

char* rtnl_link_info_ops::io_name

Name of link info type, must match name on kernel side.

Definition at line 22 of file link-api.h.

Referenced by rtnl_link_is_can(), rtnl_link_is_geneve(), rtnl_link_is_ip6_tnl(), rtnl_link_is_ip6gre(), rtnl_link_is_ip6vti(), rtnl_link_is_ipgre(), rtnl_link_is_ipgretap(), rtnl_link_is_ipip(), rtnl_link_is_ipvlan(), rtnl_link_is_ipvti(), rtnl_link_is_macvlan(), rtnl_link_is_macvtap(), rtnl_link_is_sit(), rtnl_link_is_veth(), rtnl_link_is_vlan(), rtnl_link_is_vrf(), rtnl_link_is_vxlan(), rtnl_link_is_xfrmi(), rtnl_link_register_info(), and rtnl_link_unregister_info().

## ◆ io_refcnt

int rtnl_link_info_ops::io_refcnt

Reference count, DO NOT MODIFY.

Definition at line 25 of file link-api.h.

Referenced by rtnl_link_info_ops_get(), rtnl_link_info_ops_lookup(), rtnl_link_info_ops_put(), and rtnl_link_unregister_info().

## ◆ io_alloc

int(* rtnl_link_info_ops::io_alloc) (struct rtnl_link *)

Called to assign an info type to a link.

Has to allocate enough resources to hold attributes. Can use link->l_info to store a pointer.

Definition at line 30 of file link-api.h.

Referenced by rtnl_link_set_type().

## ◆ io_parse

int(* rtnl_link_info_ops::io_parse) (struct rtnl_link *, struct nlattr *, struct nlattr *)

Called to parse the link info attribute.

Must parse the attribute and assign all values to the link.

Definition at line 35 of file link-api.h.

## ◆ io_dump

void(* rtnl_link_info_ops::io_dump[NL_DUMP_MAX+1])(struct rtnl_link *, struct nl_dump_params *)

Called when the link object is dumped.

Must dump the info type specific attributes.

Definition at line 41 of file link-api.h.

## ◆ io_clone

int(* rtnl_link_info_ops::io_clone) (struct rtnl_link *, struct rtnl_link *)

Called when a link object is cloned.

Must clone all info type specific attributes.

Definition at line 46 of file link-api.h.

## ◆ io_put_attrs

int(* rtnl_link_info_ops::io_put_attrs) (struct nl_msg *, struct rtnl_link *)

Called when construction a link netlink message.

Must append all info type specific attributes to the message.

Definition at line 50 of file link-api.h.

## ◆ io_free

void(* rtnl_link_info_ops::io_free) (struct rtnl_link *)

Called to release all resources previously allocated in either io_alloc() or io_parse().

Definition at line 54 of file link-api.h.

## ◆ io_compare

int(* rtnl_link_info_ops::io_compare) (struct rtnl_link *, struct rtnl_link *, int flags)

Called to compare link info parameters between two links.

Definition at line 57 of file link-api.h.

Referenced by rtnl_link_info_data_compare().

## ◆ io_list

struct nl_list_head rtnl_link_info_ops::io_list

Definition at line 60 of file link-api.h.