mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 20:13:53 +00:00
doc, zebra: Remove "table X" command
This command is broken and has been broken since the introduction of vrf's. Since no-one has complained it is safe to assume that there is no call for this specialized linux command. Remove from the system with extreme prejudice. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
56e7825479
commit
c447ad08b2
@ -268,14 +268,6 @@ Link Parameters Commands
|
|||||||
for InterASv2 link in OSPF (RFC5392). Note that this option is not yet
|
for InterASv2 link in OSPF (RFC5392). Note that this option is not yet
|
||||||
supported for ISIS (RFC5316).
|
supported for ISIS (RFC5316).
|
||||||
|
|
||||||
.. index:: table TABLENO
|
|
||||||
.. clicmd:: table TABLENO
|
|
||||||
|
|
||||||
Select the primary kernel routing table to be used. This only works for
|
|
||||||
kernels supporting multiple routing tables (like GNU/Linux 2.2.x and later).
|
|
||||||
After setting TABLENO with this command, static routes defined after this
|
|
||||||
are added to the specified table.
|
|
||||||
|
|
||||||
.. index:: ip nht resolve-via-default
|
.. index:: ip nht resolve-via-default
|
||||||
.. clicmd:: ip nht resolve-via-default
|
.. clicmd:: ip nht resolve-via-default
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ int zebra_add_import_table_entry(struct route_node *rn, struct route_entry *re,
|
|||||||
newre->flags = re->flags;
|
newre->flags = re->flags;
|
||||||
newre->metric = re->metric;
|
newre->metric = re->metric;
|
||||||
newre->mtu = re->mtu;
|
newre->mtu = re->mtu;
|
||||||
newre->table = zrouter.rtm_table_default;
|
newre->table = 0;
|
||||||
newre->nexthop_num = 0;
|
newre->nexthop_num = 0;
|
||||||
newre->uptime = time(NULL);
|
newre->uptime = time(NULL);
|
||||||
newre->instance = re->table;
|
newre->instance = re->table;
|
||||||
@ -632,8 +632,8 @@ int zebra_del_import_table_entry(struct route_node *rn, struct route_entry *re)
|
|||||||
prefix_copy(&p, &rn->p);
|
prefix_copy(&p, &rn->p);
|
||||||
|
|
||||||
rib_delete(afi, SAFI_UNICAST, re->vrf_id, ZEBRA_ROUTE_TABLE, re->table,
|
rib_delete(afi, SAFI_UNICAST, re->vrf_id, ZEBRA_ROUTE_TABLE, re->table,
|
||||||
re->flags, &p, NULL, re->ng.nexthop,
|
re->flags, &p, NULL, re->ng.nexthop, 0, re->metric,
|
||||||
zrouter.rtm_table_default, re->metric, re->distance, false);
|
re->distance, false);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -647,8 +647,7 @@ int zebra_import_table(afi_t afi, uint32_t table_id, uint32_t distance,
|
|||||||
struct route_node *rn;
|
struct route_node *rn;
|
||||||
|
|
||||||
if (!is_zebra_valid_kernel_table(table_id)
|
if (!is_zebra_valid_kernel_table(table_id)
|
||||||
|| ((table_id == RT_TABLE_MAIN)
|
|| (table_id == RT_TABLE_MAIN))
|
||||||
|| (table_id == zrouter.rtm_table_default)))
|
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
if (afi >= AFI_MAX)
|
if (afi >= AFI_MAX)
|
||||||
|
@ -165,8 +165,7 @@ int is_zebra_valid_kernel_table(uint32_t table_id)
|
|||||||
|
|
||||||
int is_zebra_main_routing_table(uint32_t table_id)
|
int is_zebra_main_routing_table(uint32_t table_id)
|
||||||
{
|
{
|
||||||
if ((table_id == RT_TABLE_MAIN)
|
if (table_id == RT_TABLE_MAIN)
|
||||||
|| (table_id == zrouter.rtm_table_default))
|
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,6 @@ void zebra_router_init(void)
|
|||||||
{
|
{
|
||||||
zrouter.sequence_num = 0;
|
zrouter.sequence_num = 0;
|
||||||
|
|
||||||
zrouter.rtm_table_default = 0;
|
|
||||||
zrouter.packets_to_process = ZEBRA_ZAPI_PACKETS_TO_PROCESS;
|
zrouter.packets_to_process = ZEBRA_ZAPI_PACKETS_TO_PROCESS;
|
||||||
|
|
||||||
zebra_vxlan_init();
|
zebra_vxlan_init();
|
||||||
|
@ -89,9 +89,6 @@ struct zebra_router {
|
|||||||
/* A sequence number used for tracking routes */
|
/* A sequence number used for tracking routes */
|
||||||
_Atomic uint32_t sequence_num;
|
_Atomic uint32_t sequence_num;
|
||||||
|
|
||||||
/* The default table used for this router */
|
|
||||||
uint32_t rtm_table_default;
|
|
||||||
|
|
||||||
/* rib work queue */
|
/* rib work queue */
|
||||||
#define ZEBRA_RIB_PROCESS_HOLD_TIME 10
|
#define ZEBRA_RIB_PROCESS_HOLD_TIME 10
|
||||||
#define ZEBRA_RIB_PROCESS_RETRY_TIME 1
|
#define ZEBRA_RIB_PROCESS_RETRY_TIME 1
|
||||||
|
@ -326,15 +326,13 @@ struct route_table *zebra_vrf_table_with_table_id(afi_t afi, safi_t safi,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (vrf_id == VRF_DEFAULT) {
|
if (vrf_id == VRF_DEFAULT) {
|
||||||
if (table_id == RT_TABLE_MAIN
|
if (table_id == RT_TABLE_MAIN)
|
||||||
|| table_id == zrouter.rtm_table_default)
|
|
||||||
table = zebra_vrf_table(afi, safi, vrf_id);
|
table = zebra_vrf_table(afi, safi, vrf_id);
|
||||||
else
|
else
|
||||||
table = zebra_vrf_other_route_table(afi, table_id,
|
table = zebra_vrf_other_route_table(afi, table_id,
|
||||||
vrf_id);
|
vrf_id);
|
||||||
} else if (vrf_is_backend_netns()) {
|
} else if (vrf_is_backend_netns()) {
|
||||||
if (table_id == RT_TABLE_MAIN
|
if (table_id == RT_TABLE_MAIN)
|
||||||
|| table_id == zrouter.rtm_table_default)
|
|
||||||
table = zebra_vrf_table(afi, safi, vrf_id);
|
table = zebra_vrf_table(afi, safi, vrf_id);
|
||||||
else
|
else
|
||||||
table = zebra_vrf_other_route_table(afi, table_id,
|
table = zebra_vrf_other_route_table(afi, table_id,
|
||||||
@ -452,10 +450,8 @@ struct route_table *zebra_vrf_other_route_table(afi_t afi, uint32_t table_id,
|
|||||||
if (afi >= AFI_MAX)
|
if (afi >= AFI_MAX)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if ((table_id != RT_TABLE_MAIN)
|
if (table_id != RT_TABLE_MAIN) {
|
||||||
&& (table_id != zrouter.rtm_table_default)) {
|
if (zvrf->table_id == RT_TABLE_MAIN) {
|
||||||
if (zvrf->table_id == RT_TABLE_MAIN ||
|
|
||||||
zvrf->table_id == zrouter.rtm_table_default) {
|
|
||||||
/* this VRF use default table
|
/* this VRF use default table
|
||||||
* so in all cases, it does not use specific table
|
* so in all cases, it does not use specific table
|
||||||
* so it is possible to configure tables in this VRF
|
* so it is possible to configure tables in this VRF
|
||||||
|
@ -2556,40 +2556,6 @@ static int config_write_protocol(struct vty *vty)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_NETLINK
|
|
||||||
/* Display default rtm_table for all clients. */
|
|
||||||
DEFUN (show_table,
|
|
||||||
show_table_cmd,
|
|
||||||
"show table",
|
|
||||||
SHOW_STR
|
|
||||||
"default routing table to use for all clients\n")
|
|
||||||
{
|
|
||||||
vty_out(vty, "table %d\n", zrouter.rtm_table_default);
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (config_table,
|
|
||||||
config_table_cmd,
|
|
||||||
"table TABLENO",
|
|
||||||
"Configure target kernel routing table\n"
|
|
||||||
"TABLE integer\n")
|
|
||||||
{
|
|
||||||
zrouter.rtm_table_default = strtol(argv[1]->arg, (char **)0, 10);
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (no_config_table,
|
|
||||||
no_config_table_cmd,
|
|
||||||
"no table [TABLENO]",
|
|
||||||
NO_STR
|
|
||||||
"Configure target kernel routing table\n"
|
|
||||||
"TABLE integer\n")
|
|
||||||
{
|
|
||||||
zrouter.rtm_table_default = 0;
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DEFUN (show_zebra,
|
DEFUN (show_zebra,
|
||||||
show_zebra_cmd,
|
show_zebra_cmd,
|
||||||
"show zebra",
|
"show zebra",
|
||||||
@ -2833,8 +2799,6 @@ DEFUN (zebra_show_routing_tables_summary,
|
|||||||
/* Table configuration write function. */
|
/* Table configuration write function. */
|
||||||
static int config_write_table(struct vty *vty)
|
static int config_write_table(struct vty *vty)
|
||||||
{
|
{
|
||||||
if (zrouter.rtm_table_default)
|
|
||||||
vty_out(vty, "table %d\n", zrouter.rtm_table_default);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2938,12 +2902,6 @@ void zebra_vty_init(void)
|
|||||||
install_element(CONFIG_NODE, &no_ip_forwarding_cmd);
|
install_element(CONFIG_NODE, &no_ip_forwarding_cmd);
|
||||||
install_element(ENABLE_NODE, &show_zebra_cmd);
|
install_element(ENABLE_NODE, &show_zebra_cmd);
|
||||||
|
|
||||||
#ifdef HAVE_NETLINK
|
|
||||||
install_element(VIEW_NODE, &show_table_cmd);
|
|
||||||
install_element(CONFIG_NODE, &config_table_cmd);
|
|
||||||
install_element(CONFIG_NODE, &no_config_table_cmd);
|
|
||||||
#endif /* HAVE_NETLINK */
|
|
||||||
|
|
||||||
install_element(VIEW_NODE, &show_ipv6_forwarding_cmd);
|
install_element(VIEW_NODE, &show_ipv6_forwarding_cmd);
|
||||||
install_element(CONFIG_NODE, &ipv6_forwarding_cmd);
|
install_element(CONFIG_NODE, &ipv6_forwarding_cmd);
|
||||||
install_element(CONFIG_NODE, &no_ipv6_forwarding_cmd);
|
install_element(CONFIG_NODE, &no_ipv6_forwarding_cmd);
|
||||||
|
@ -697,9 +697,6 @@ static struct zserv *zserv_client_create(int sock)
|
|||||||
pthread_mutex_init(&client->obuf_mtx, NULL);
|
pthread_mutex_init(&client->obuf_mtx, NULL);
|
||||||
client->wb = buffer_new(0);
|
client->wb = buffer_new(0);
|
||||||
|
|
||||||
/* Set table number. */
|
|
||||||
client->rtm_table = zrouter.rtm_table_default;
|
|
||||||
|
|
||||||
atomic_store_explicit(&client->connect_time, (uint32_t) monotime(NULL),
|
atomic_store_explicit(&client->connect_time, (uint32_t) monotime(NULL),
|
||||||
memory_order_relaxed);
|
memory_order_relaxed);
|
||||||
|
|
||||||
@ -907,7 +904,6 @@ static void zebra_show_client_detail(struct vty *vty, struct zserv *client)
|
|||||||
|
|
||||||
vty_out(vty, "------------------------ \n");
|
vty_out(vty, "------------------------ \n");
|
||||||
vty_out(vty, "FD: %d \n", client->sock);
|
vty_out(vty, "FD: %d \n", client->sock);
|
||||||
vty_out(vty, "Route Table ID: %d \n", client->rtm_table);
|
|
||||||
|
|
||||||
connect_time = (time_t) atomic_load_explicit(&client->connect_time,
|
connect_time = (time_t) atomic_load_explicit(&client->connect_time,
|
||||||
memory_order_relaxed);
|
memory_order_relaxed);
|
||||||
|
@ -83,9 +83,6 @@ struct zserv {
|
|||||||
/* Threads for the main pthread */
|
/* Threads for the main pthread */
|
||||||
struct thread *t_cleanup;
|
struct thread *t_cleanup;
|
||||||
|
|
||||||
/* default routing table this client munges */
|
|
||||||
int rtm_table;
|
|
||||||
|
|
||||||
/* This client's redistribute flag. */
|
/* This client's redistribute flag. */
|
||||||
struct redist_proto mi_redist[AFI_MAX][ZEBRA_ROUTE_MAX];
|
struct redist_proto mi_redist[AFI_MAX][ZEBRA_ROUTE_MAX];
|
||||||
vrf_bitmap_t redist[AFI_MAX][ZEBRA_ROUTE_MAX];
|
vrf_bitmap_t redist[AFI_MAX][ZEBRA_ROUTE_MAX];
|
||||||
|
Loading…
Reference in New Issue
Block a user