libnl: FIB Lookup

libnl 3.7.0

Modules
FIB Lookup
Routing Library (libnl-route)

## Modules
| Request

## Allocation/Freeing
struct flnl_result * | flnl_result_alloc (void)
void | flnl_result_put (struct flnl_result *res)

## Cache Management
struct nl_cache * | flnl_result_alloc_cache (void)
| Allocate lookup result cache. More...

## Lookup
int | flnl_lookup_build_request (struct flnl_request *req, int flags, struct nl_msg **result)
| Builds a netlink request message to do a lookup. More...
int | flnl_lookup (struct nl_sock *sk, struct flnl_request *req, struct nl_cache *cache)
| Perform FIB Lookup. More...

## Attribute Access
int | flnl_result_get_table_id (struct flnl_result *res)
int | flnl_result_get_prefixlen (struct flnl_result *res)
int | flnl_result_get_nexthop_sel (struct flnl_result *res)
int | flnl_result_get_type (struct flnl_result *res)
int | flnl_result_get_scope (struct flnl_result *res)
int | flnl_result_get_error (struct flnl_result *res)

## Detailed Description

## Function Documentation

## ◆ flnl_result_alloc_cache()

struct nl_cache* flnl_result_alloc_cache | ( | void |  | ) |

Allocate lookup result cache.

Allocates a new lookup result cache and initializes it properly.

Note
  Free the memory after usage using nl_cache_destroy_and_free().

Returns
  Newly allocated cache or NULL if an error occured.

Definition at line 177 of file lookup.c.

References nl_cache_alloc().

Here is the call graph for this function:

## ◆ flnl_lookup_build_request()

int flnl_lookup_build_request | ( | struct flnl_request * | req,
|  | int | flags,
|  | struct nl_msg ** | result
| ) |  |

Builds a netlink request message to do a lookup.

Parameters

  req | Requested match.
  flags | additional netlink message flags
  result | Result pointer

Builds a new netlink message requesting a change of link attributes. The netlink message header isn't fully equipped with all relevant fields and must be sent out via nl_send_auto_complete() or supplemented as needed. old must point to a link currently configured in the kernel and tmpl must contain the attributes to be changed set via `rtnl_link_set_*` functions.

Returns
  0 on success or a negative error code.

Definition at line 205 of file lookup.c.

Referenced by flnl_lookup().

Here is the caller graph for this function:

## ◆ flnl_lookup()

int flnl_lookup | ( | struct nl_sock * | sk,
|  | struct flnl_request * | req,
|  | struct nl_cache * | cache
| ) |  |

Perform FIB Lookup.

Parameters

  sk | Netlink socket.
  req | Lookup request object.
  cache | Cache for result.

Builds a netlink message to request a FIB lookup, waits for the reply and adds the result to the specified cache.

Returns
  0 on success or a negative error code.

Definition at line 256 of file lookup.c.

References flnl_lookup_build_request(), nl_cache_pickup_checkdup(), nl_send_auto_complete(), and nlmsg_free().

Here is the call graph for this function: