2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* zebra.h: Declare new functions zebra_route_string() and
zebra_route_char().
* log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New
functions to map zebra route numbers to strings.
* zebra_vty.c: (route_type_str) Remove obsolete function: use new
library function zebra_route_string() instead. Note that there
are a few differences: for IPv6 routes, we now get "ripng" and
"ospf6" instead of the old behavior ("rip" and "ospf").
(route_type_char) Remove obsolete function: ues new library function
zebra_route_char() instead. Note that there is one difference:
the old function returned 'S' for a ZEBRA_ROUTE_SYSTEM route,
whereas the new one returns 'X'.
(vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace
route_type_str() with zebra_route_string().
(vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()
with zebra_route_char().
* bgp_vty.c: (bgp_config_write_redistribute) Use new library function
zebra_route_string instead of a local hard-coded table.
* ospf6_asbr.c: Remove local hard-coded tables zroute_name and
zroute_abname. Change the ZROUTE_NAME macro to use new library
function zebra_route_string(). Remove the ZROUTE_ABNAME macro.
(ospf6_asbr_external_route_show): Replace ZROUTE_ABNAME() with
a call to zebra_route_char(), and be sure to fix the format string,
since we now have a char instead of a char *.
* ospf6_zebra.c: Remove local hard-coded tables zebra_route_name and
zebra_route_abname. Note that the zebra_route_name[] table
contained mixed-case strings, whereas the zebra_route_string()
function returns lower-case strings.
(ospf6_zebra_read_ipv6): Change debug message to use new library
function zebra_route_string() instead of zebra_route_name[].
(show_zebra): Use new library function zebra_route_string() instead
of zebra_route_name[].
* ospf_dump.c: Remove local hard-coded table ospf_redistributed_proto.
(ospf_redist_string) New function implemented using new library
function zebra_route_string(). Note that there are a few differences
in the output that will result: the new function returns strings
that are lower-case, whereas the old table was mixed case. Also,
the old table mapped ZEBRA_ROUTE_OSPF6 to "OSPFv3", whereas the
new function returns "ospf6".
* ospfd.h: Remove extern struct message ospf_redistributed_proto[],
and add extern const char *ospf_redist_string(u_int route_type)
instead.
* ospf_asbr.c: (ospf_external_info_add) In two messages, use
ospf_redist_string instead of LOOKUP(ospf_redistributed_proto).
* ospf_vty.c: Remove local hard-coded table distribute_str.
(config_write_ospf_redistribute,config_write_ospf_distribute): Use
new library function zebra_route_string() instead of distribute_str[].
* ospf_zebra.c: (ospf_redistribute_set,ospf_redistribute_unset,
ospf_redistribute_default_set,ospf_redistribute_check)
In debug messages, use ospf_redist_string() instead of
LOOKUP(ospf_redistributed_proto).
* rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded
table str[]. Replace str[] with calls to new library function
zebra_route_string().
* ripd.c: Remove local hard-coded table route_info[].
(show_ip_rip) Replace uses of str[] with calls to new library
functions zebra_route_char and zebra_route_string.
* ripng_zebra.c: (ripng_redistribute_write) Remove local hard-coded
table str[]. Replace str[i] with new library function
zebra_route_string(i).
* ripngd.c: Remove local hard-coded table route_info[].
(show_ipv6_ripng) Use new library function zebra_route_char() instead
of table route_info[].
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 9f4bd18..22adfeb 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,5 +1,20 @@
2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+ * zebra_vty.c: (route_type_str) Remove obsolete function: use new
+ library function zebra_route_string() instead. Note that there
+ are a few differences: for IPv6 routes, we now get "ripng" and
+ "ospf6" instead of the old behavior ("rip" and "ospf").
+ (route_type_char) Remove obsolete function: ues new library function
+ zebra_route_char() instead. Note that there is one difference:
+ the old function returned 'S' for a ZEBRA_ROUTE_SYSTEM route,
+ whereas the new one returns 'X'.
+ (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace
+ route_type_str() with zebra_route_string().
+ (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()
+ with zebra_route_char().
+
+2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
* rt_netlink.c: (netlink_request) Use memset to clear structure
before calling sendto (eliminates a valgrind error message about
uninitialized data).
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index ad91d95..68e6f92 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -29,68 +29,6 @@
#include "zebra/zserv.h"
-/* Return route type string for VTY output. */
-static const char *
-route_type_str (u_char type)
-{
- switch (type)
- {
- case ZEBRA_ROUTE_SYSTEM:
- return "system";
- case ZEBRA_ROUTE_KERNEL:
- return "kernel";
- case ZEBRA_ROUTE_CONNECT:
- return "connected";
- case ZEBRA_ROUTE_STATIC:
- return "static";
- case ZEBRA_ROUTE_RIP:
- return "rip";
- case ZEBRA_ROUTE_RIPNG:
- return "rip";
- case ZEBRA_ROUTE_OSPF:
- return "ospf";
- case ZEBRA_ROUTE_OSPF6:
- return "ospf";
- case ZEBRA_ROUTE_ISIS:
- return "isis";
- case ZEBRA_ROUTE_BGP:
- return "bgp";
- default:
- return "unknown";
- }
-};
-
-/* Return route type string for VTY output. */
-static const char
-route_type_char (u_char type)
-{
- switch (type)
- {
- case ZEBRA_ROUTE_SYSTEM:
- return 'S';
- case ZEBRA_ROUTE_KERNEL:
- return 'K';
- case ZEBRA_ROUTE_CONNECT:
- return 'C';
- case ZEBRA_ROUTE_STATIC:
- return 'S';
- case ZEBRA_ROUTE_RIP:
- return 'R';
- case ZEBRA_ROUTE_RIPNG:
- return 'R';
- case ZEBRA_ROUTE_OSPF:
- return 'O';
- case ZEBRA_ROUTE_OSPF6:
- return 'O';
- case ZEBRA_ROUTE_ISIS:
- return 'I';
- case ZEBRA_ROUTE_BGP:
- return 'B';
- default:
- return '?';
- }
-};
-
/* General fucntion for static route. */
static int
zebra_static_ipv4 (struct vty *vty, int add_cmd, const char *dest_str,
@@ -548,7 +486,7 @@
vty_out (vty, "Routing entry for %s/%d%s",
inet_ntoa (rn->p.u.prefix4), rn->p.prefixlen,
VTY_NEWLINE);
- vty_out (vty, " Known via \"%s\"", route_type_str (rib->type));
+ vty_out (vty, " Known via \"%s\"", zebra_route_string (rib->type));
vty_out (vty, ", distance %d, metric %d", rib->distance, rib->metric);
if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
vty_out (vty, ", best");
@@ -657,7 +595,7 @@
{
/* Prefix information. */
len = vty_out (vty, "%c%c%c %s/%d",
- route_type_char (rib->type),
+ zebra_route_char (rib->type),
CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED)
? '>' : ' ',
CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
@@ -1435,7 +1373,7 @@
inet_ntop (AF_INET6, &rn->p.u.prefix6, buf, BUFSIZ),
rn->p.prefixlen,
VTY_NEWLINE);
- vty_out (vty, " Known via \"%s\"", route_type_str (rib->type));
+ vty_out (vty, " Known via \"%s\"", zebra_route_string (rib->type));
vty_out (vty, ", distance %d, metric %d", rib->distance, rib->metric);
if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
vty_out (vty, ", best");
@@ -1552,7 +1490,7 @@
{
/* Prefix information. */
len = vty_out (vty, "%c%c%c %s/%d",
- route_type_char (rib->type),
+ zebra_route_char (rib->type),
CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED)
? '>' : ' ',
CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)