mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-02-01 15:35:00 +00:00
2004-07-09 Paul Jakma <paul@dishone.st>
* Merge Kunihiro's 'show route-map' change and add
compatibility aliases for route-map continue
This commit is contained in:
parent
a3f71c5896
commit
5510e83b39
@ -1,3 +1,8 @@
|
||||
2004-07-09 Paul Jakma <paul@dishone.st>
|
||||
|
||||
* Merge Kunihiro's 'show route-map' change and add
|
||||
compatibility aliases for route-map continue
|
||||
|
||||
2004-07-09 Juris Kalnins <juris@mt.lv>
|
||||
|
||||
* if.c: (if_cmp_func) fix for interface names where name is same,
|
||||
|
||||
128
lib/routemap.c
128
lib/routemap.c
@ -196,32 +196,71 @@ route_map_empty (struct route_map *map)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* For debug. */
|
||||
void
|
||||
route_map_print ()
|
||||
/* show route-map */
|
||||
static void
|
||||
vty_show_route_map_entry (struct vty *vty, struct route_map *map)
|
||||
{
|
||||
struct route_map *map;
|
||||
struct route_map_index *index;
|
||||
struct route_map_rule *rule;
|
||||
|
||||
for (map = route_map_master.head; map; map = map->next)
|
||||
for (index = map->head; index; index = index->next)
|
||||
{
|
||||
printf ("route-map %s %s %d\n",
|
||||
map->name,
|
||||
route_map_type_str (index->type),
|
||||
index->pref);
|
||||
for (rule = index->match_list.head; rule; rule = rule->next)
|
||||
printf (" match %s %s\n", rule->cmd->str, rule->rule_str);
|
||||
for (rule = index->set_list.head; rule; rule = rule->next)
|
||||
printf (" set %s %s\n", rule->cmd->str, rule->rule_str);
|
||||
if (index->exitpolicy == RMAP_GOTO)
|
||||
printf (" on-match goto %d\n", index->nextpref);
|
||||
if (index->exitpolicy == RMAP_NEXT)
|
||||
printf (" on-match next\n");
|
||||
}
|
||||
for (index = map->head; index; index = index->next)
|
||||
{
|
||||
vty_out (vty, "route-map %s, %s, sequence %d%s",
|
||||
map->name, route_map_type_str (index->type),
|
||||
index->pref, VTY_NEWLINE);
|
||||
|
||||
/* Match clauses */
|
||||
vty_out (vty, " Match clauses:%s", VTY_NEWLINE);
|
||||
for (rule = index->match_list.head; rule; rule = rule->next)
|
||||
vty_out (vty, " %s %s%s",
|
||||
rule->cmd->str, rule->rule_str, VTY_NEWLINE);
|
||||
|
||||
vty_out (vty, " Set clauses:%s", VTY_NEWLINE);
|
||||
for (rule = index->set_list.head; rule; rule = rule->next)
|
||||
vty_out (vty, " %s %s%s",
|
||||
rule->cmd->str, rule->rule_str, VTY_NEWLINE);
|
||||
|
||||
vty_out (vty, " Action:%s", VTY_NEWLINE);
|
||||
if (index->exitpolicy == RMAP_GOTO)
|
||||
vty_out (vty, " Goto %d%s", index->nextpref, VTY_NEWLINE);
|
||||
|
||||
else if (index->exitpolicy == RMAP_NEXT)
|
||||
{
|
||||
vty_out (vty, " Goto next, (entry ");
|
||||
if (index->next)
|
||||
vty_out (vty, " %d)%s", index->next->pref, VTY_NEWLINE);
|
||||
else
|
||||
vty_out (vty, " undefined)%s", VTY_NEWLINE);
|
||||
}
|
||||
else if (index->exitpolicy == RMAP_EXIT)
|
||||
vty_out (vty, " Exit routemap%s", VTY_NEWLINE);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
vty_show_route_map (struct vty *vty, char *name)
|
||||
{
|
||||
struct route_map *map;
|
||||
|
||||
if (name)
|
||||
{
|
||||
map = route_map_lookup_by_name (name);
|
||||
|
||||
if (map)
|
||||
{
|
||||
vty_show_route_map_entry (vty, map);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
vty_out (vty, "%%route-map %s not found%s", name, VTY_NEWLINE);
|
||||
return CMD_WARNING;
|
||||
}
|
||||
}
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/* New route map allocation. Please note route map's name must be
|
||||
specified. */
|
||||
struct route_map_index *
|
||||
@ -1019,6 +1058,51 @@ DEFUN (no_rmap_onmatch_goto,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
/* Cisco/GNU Zebra compatible ALIASes for on-match next */
|
||||
ALIAS (rmap_onmatch_goto,
|
||||
rmap_continue_cmd,
|
||||
"continue",
|
||||
"Continue on a different entry within the route-map\n")
|
||||
|
||||
ALIAS (no_rmap_onmatch_goto,
|
||||
no_rmap_continue_cmd,
|
||||
"no continue",
|
||||
NO_STR
|
||||
"Continue on a different entry within the route-map\n")
|
||||
|
||||
/* GNU Zebra compatible */
|
||||
ALIAS (rmap_onmatch_goto,
|
||||
rmap_continue_seq_cmd,
|
||||
"continue <1-65535>",
|
||||
"Continue on a different entry within the route-map\n"
|
||||
"Route-map entry sequence number\n")
|
||||
|
||||
ALIAS (no_rmap_onmatch_goto,
|
||||
no_rmap_continue_seq,
|
||||
"no continue <1-65535>",
|
||||
NO_STR
|
||||
"Continue on a different entry within the route-map\n"
|
||||
"Route-map entry sequence number\n")
|
||||
|
||||
DEFUN (rmap_show,
|
||||
rmap_show_cmd,
|
||||
"show route-map",
|
||||
SHOW_STR
|
||||
"route-map information\n")
|
||||
{
|
||||
return vty_show_route_map (vty, NULL);
|
||||
}
|
||||
|
||||
DEFUN (rmap_show_name,
|
||||
rmap_show_name_cmd,
|
||||
"show route-map WORD",
|
||||
SHOW_STR
|
||||
"route-map information\n"
|
||||
"route-map name\n")
|
||||
{
|
||||
return vty_show_route_map (vty, argv[0]);
|
||||
}
|
||||
|
||||
/* Configuration write function. */
|
||||
int
|
||||
route_map_config_write (struct vty *vty)
|
||||
@ -1089,4 +1173,8 @@ route_map_init_vty ()
|
||||
install_element (RMAP_NODE, &no_rmap_onmatch_next_cmd);
|
||||
install_element (RMAP_NODE, &rmap_onmatch_goto_cmd);
|
||||
install_element (RMAP_NODE, &no_rmap_onmatch_goto_cmd);
|
||||
|
||||
/* Install show command */
|
||||
install_element (ENABLE_NODE, &rmap_show_cmd);
|
||||
install_element (ENABLE_NODE, &rmap_show_name_cmd);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user