RTABLE_ADD(9) | Kernel Developer's Manual | 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:

[`ENOMEM`]
  Memory could not be allocated to extend the list of routing domains.

# SEE ALSO

lo(4), route(4), route(8)

March 26, 2021 | Debian