libnl: rtnl_link_af_ops Struct Reference

libnl 3.10.0

Data Fields
rtnl_link_af_ops Struct Reference

Available operations to modules implementing a link address family. More...

`#include <link-api.h>`

## Data Fields
const unsigned int | ao_family
| The address family this operations set implements.
int | ao_refcnt
| Number of users of this operations, DO NOT MODIFY.
const struct nla_policy * | ao_protinfo_policy
| Validation policy for IFLA_PROTINFO attribute.
void *(* | ao_alloc )(struct rtnl_link *)
| Called after address family has been assigned to link.
void *(* | ao_clone )(struct rtnl_link *, void *)
| Called when the link is cloned, must allocate a clone of the address family specific buffer and return it.
void(* | ao_free )(struct rtnl_link *, void *)
| Called when the link gets freed.
int(* | ao_parse_protinfo )(struct rtnl_link *, struct nlattr *, void *)
| Called if a IFLA_PROTINFO attribute needs to be parsed.
int(* | ao_parse_af )(struct rtnl_link *, struct nlattr *, void *)
| Called if a IFLA_AF_SPEC attribute needs to be parsed.
int(* | ao_fill_af )(struct rtnl_link *, struct nl_msg *msg, void *)
| Called if a link message is sent to the kernel.
int(* | ao_parse_af_full )(struct rtnl_link *, struct nlattr *, void *)
| Called if the full IFLA_AF_SPEC data needs to be parsed.
int(* | ao_get_af )(struct nl_msg *msg, uint32_t *ext_filter_mask)
| Called for GETLINK message to the kernel.
void(* | ao_dump [NL_DUMP_MAX+1])(struct rtnl_link *, struct nl_dump_params *, void *)
| Dump address family specific link attributes.
int(* | ao_compare )(struct rtnl_link *, struct rtnl_link *, int, uint32_t, int)
| Comparison function.
int(* | ao_override_rtm )(struct rtnl_link *)
int(* | ao_fill_pi )(struct rtnl_link *, struct nl_msg *msg, void *)
| Called if a link message is sent to the kernel.
const int | ao_fill_pi_flags
| PROTINFO type.
const int | ao_fill_af_no_nest
| IFLA_AF_SPEC nesting override.

## Detailed Description

Available operations to modules implementing a link address family.

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

## Field Documentation

## ◆ ao_family

const unsigned int rtnl_link_af_ops::ao_family

The address family this operations set implements.

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

Referenced by rtnl_link_af_alloc(), rtnl_link_af_data(), rtnl_link_af_register(), rtnl_link_af_unregister(), and rtnl_link_set_family().

## ◆ ao_refcnt

int rtnl_link_af_ops::ao_refcnt

Number of users of this operations, DO NOT MODIFY.

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

Referenced by rtnl_link_af_ops_lookup(), rtnl_link_af_ops_put(), rtnl_link_af_register(), and rtnl_link_af_unregister().

## ◆ ao_protinfo_policy

const struct nla_policy* rtnl_link_af_ops::ao_protinfo_policy

Validation policy for IFLA_PROTINFO attribute.

This pointer can be set to a nla_policy structure describing the minimal requirements the attribute must meet. Failure of meeting these requirements will result in a parsing error.

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

## ◆ ao_alloc

void *(* rtnl_link_af_ops::ao_alloc) (struct rtnl_link *)

Called after address family has been assigned to link.

Must allocate data buffer to hold address family specific data and store it in link->l_af_data.

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

Referenced by rtnl_link_af_alloc().

## ◆ ao_clone

void *(* rtnl_link_af_ops::ao_clone) (struct rtnl_link *, void *)

Called when the link is cloned, must allocate a clone of the address family specific buffer and return it.

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

## ◆ ao_free

void(* rtnl_link_af_ops::ao_free) (struct rtnl_link *, void *)

Called when the link gets freed.

Must free all allocated data

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

## ◆ ao_parse_protinfo

int(* rtnl_link_af_ops::ao_parse_protinfo) (struct rtnl_link *, struct nlattr *, void *)

Called if a IFLA_PROTINFO attribute needs to be parsed.

Typically stores the parsed data in the address family specific buffer.

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

## ◆ ao_parse_af

int(* rtnl_link_af_ops::ao_parse_af) (struct rtnl_link *, struct nlattr *, void *)

Called if a IFLA_AF_SPEC attribute needs to be parsed.

Typically stores the parsed data in the address family specific buffer.

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

## ◆ ao_fill_af

int(* rtnl_link_af_ops::ao_fill_af) (struct rtnl_link *, struct nl_msg *msg, void *)

Called if a link message is sent to the kernel.

Must append the link address family specific attributes to the message.

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

## ◆ ao_parse_af_full

int(* rtnl_link_af_ops::ao_parse_af_full) (struct rtnl_link *, struct nlattr *, void *)

Called if the full IFLA_AF_SPEC data needs to be parsed.

Typically stores the parsed data in the address family specific buffer.

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

## ◆ ao_get_af

int(* rtnl_link_af_ops::ao_get_af) (struct nl_msg *msg, uint32_t *ext_filter_mask)

Called for GETLINK message to the kernel.

Used to append link address family specific attributes to the request message.

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

## ◆ ao_dump

void(* rtnl_link_af_ops::ao_dump[NL_DUMP_MAX+1])(struct rtnl_link *, struct nl_dump_params *, void *)

Dump address family specific link attributes.

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

## ◆ ao_compare

int(* rtnl_link_af_ops::ao_compare) (struct rtnl_link *, struct rtnl_link *, int, uint32_t, int)

Comparison function.

Will be called when two links are compared for their af data. It takes two link objects in question, an object specific bitmask defining which attributes should be compared and flags to control the behaviour

The function must return a bitmask with the relevant bit set for each attribute that mismatches

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

Referenced by rtnl_link_af_data_compare().

## ◆ ao_override_rtm

int(* rtnl_link_af_ops::ao_override_rtm) (struct rtnl_link *)

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

## ◆ ao_fill_pi

int(* rtnl_link_af_ops::ao_fill_pi) (struct rtnl_link *, struct nl_msg *msg, void *)

Called if a link message is sent to the kernel.

Must append the link protocol specific attributes to the message. (IFLA_PROTINFO)

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

## ◆ ao_fill_pi_flags

const int rtnl_link_af_ops::ao_fill_pi_flags

PROTINFO type.

Called if a link message is sent to the kernel. If this is set, the default IFLA_PROTINFO is bitmasked with what is specified here. (eg. NLA_F_NESTED)

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

## ◆ ao_fill_af_no_nest

const int rtnl_link_af_ops::ao_fill_af_no_nest

IFLA_AF_SPEC nesting override.

Called if a link message is sent to the kernel. If this is set, the AF specific nest is not created. Instead, AF specific attributes are nested directly in the IFLA_AF_SPEC attribute.

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