RTABLE_ADD(9)

NAME
rtable_add, rtable_exists, rtable_loindex, rtable_l2, rtable_l2set - routing tables and routing domains interface

SYNOPSIS
#include <net/rtable.h>
int
rtable_add(unsigned int id);
int
rtable_exists(unsigned int id);
unsigned int
rtable_loindex(unsigned int id);
unsigned int
rtable_l2(unsigned int id);
void
rtable_l2set(unsigned int id, unsigned int rdomain);

DESCRIPTION
Routing tables contain layer 2 and 3 forwarding information. Each address family in use will have its own routing table. Routing domains are a way of logically segmenting a router among multiple networks and may contain more than one routing table.

rtable_add(unsigned int id)
    Add routing table with ID of id to routing domain 0.

rtable_exists(unsigned int id)
    Return 1 if routing table with ID id exists, 0 otherwise.

rtable_loindex(unsigned int id)
    Return the default lo(4) interface index for the routing table with ID of id.

rtable_l2(unsigned int id)
    Get the routing domain of routing table with ID of id.

rtable_l2set(unsigned int id, unsigned int rdomain)
    Place routing table with ID of id under the routing domain with ID of rdomain.

CONTEXT
rtable_add(), rtable_exists(), rtable_loindex(), rtable_l2(), and task_l2set() can be called during autoconf, from process context, or from interrupt context.

RETURN VALUES
rtable_add() may fail with:

[EEXIST]
    A routing table with ID of id already exists.
[ENOMEM]
    Memory could not be allocated to extend the list of routing domains.

SEE ALSO
lo(4), route(4), route(8)