From 4a8164e5b310094315e2c50d73aeea489766a48a Mon Sep 17 00:00:00 2001 From: hasso Date: Fri, 8 Apr 2005 14:20:18 +0000 Subject: * routemap.[ch]: Added "description ..." command. Closes Bugzilla #167. --- lib/ChangeLog | 4 ++++ lib/routemap.c | 43 +++++++++++++++++++++++++++++++++++++++++++ lib/routemap.h | 1 + 3 files changed, 48 insertions(+) (limited to 'lib') diff --git a/lib/ChangeLog b/lib/ChangeLog index 1d3d3e6d..00b11a1a 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,7 @@ +2005-04-08 Hasso Tepper + + * routemap.[ch]: Added "description ..." command. + 2005-04-08 Hasso Tepper * prefix.[hc]: Pass argument to the inet6_ntoa by value making it more diff --git a/lib/routemap.c b/lib/routemap.c index 2906a52e..dfd41bc8 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -1188,6 +1188,42 @@ DEFUN (no_rmap_call, return CMD_SUCCESS; } +DEFUN (rmap_description, + rmap_description_cmd, + "description .LINE", + "Route-map comment\n" + "Comment describing this route-map rule\n") +{ + struct route_map_index *index; + + index = vty->index; + if (index) + { + if (index->description) + XFREE (MTYPE_TMP, index->description); + index->description = argv_concat (argv, argc, 0); + } + return CMD_SUCCESS; +} + +DEFUN (no_rmap_description, + no_rmap_description_cmd, + "no description", + NO_STR + "Route-map comment\n") +{ + struct route_map_index *index; + + index = vty->index; + if (index) + { + if (index->description) + XFREE (MTYPE_TMP, index->description); + index->description = NULL; + } + return CMD_SUCCESS; +} + /* Configuration write function. */ int route_map_config_write (struct vty *vty) @@ -1211,6 +1247,9 @@ route_map_config_write (struct vty *vty) route_map_type_str (index->type), index->pref, VTY_NEWLINE); + if (index->description) + vty_out (vty, " description %s%s", index->description, VTY_NEWLINE); + for (rule = index->match_list.head; rule; rule = rule->next) vty_out (vty, " match %s %s%s", rule->cmd->str, rule->rule_str ? rule->rule_str : "", @@ -1268,6 +1307,10 @@ route_map_init_vty () /* Install the call stuff. */ install_element (RMAP_NODE, &rmap_call_cmd); install_element (RMAP_NODE, &no_rmap_call_cmd); + + /* Install description commands. */ + install_element (RMAP_NODE, &rmap_description_cmd); + install_element (RMAP_NODE, &no_rmap_description_cmd); /* Install show command */ install_element (ENABLE_NODE, &rmap_show_cmd); diff --git a/lib/routemap.h b/lib/routemap.h index 22a2b19d..072526a6 100644 --- a/lib/routemap.h +++ b/lib/routemap.h @@ -108,6 +108,7 @@ struct route_map_rule_list struct route_map_index { struct route_map *map; + char *description; /* Preference of this route map rule. */ int pref; -- cgit v1.2.1