2003-06-27 Paul Jakma <paul@dishone.st>
* ospf_vty.c: (global) add, unused, description array for lsa flags.
(show_ip_ospf_database_header): pretty print options, printf hex
numbers as 0x, print lsa flags and note if it is a translated LSA.
(show_lsa_detail_proc): print out OSPF_LSA_LOCAL_XLT LSAs.
* ospf_packet.c: (ospf_write) print out destination IP in debug info
if write fails.
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 89d35c5..7bd4822 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -558,7 +558,8 @@
ret = sendmsg (ospf->fd, &msg, flags);
if (ret < 0)
- zlog_warn ("*** sendmsg in ospf_write failed with %s", strerror (errno));
+ zlog_warn ("*** sendmsg in ospf_write to %s failed with %s",
+ inet_ntoa (iph.ip_dst), strerror (errno));
/* Retrieve OSPF packet type. */
stream_set_getp (op->s, 1);
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index d02214d..392b7ae 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -3196,13 +3196,32 @@
#endif /* HAVE_OPAQUE_LSA */
};
+char *show_lsa_flags[] =
+{
+ "Self-originated",
+ "Checked",
+ "Received",
+ "Approved",
+ "Discard",
+#ifdef HAVE_NSSA
+ "Translated",
+#endif
+};
+
void
show_ip_ospf_database_header (struct vty *vty, struct ospf_lsa *lsa)
{
struct router_lsa *rlsa = (struct router_lsa*) lsa->data;
-
+
vty_out (vty, " LS age: %d%s", LS_AGE (lsa), VTY_NEWLINE);
- vty_out (vty, " Options: %d%s", lsa->data->options, VTY_NEWLINE);
+ vty_out (vty, " Options: 0x%-2x : %s%s",
+ lsa->data->options,
+ ospf_options_dump(lsa->data->options),
+ VTY_NEWLINE);
+ vty_out (vty, " LS Flags: 0x%-2x %s%s",
+ lsa->flags,
+ ((lsa->flags & OSPF_LSA_LOCAL_XLT) ? "(Translated from Type-7)" : ""),
+ VTY_NEWLINE);
if (lsa->data->type == OSPF_ROUTER_LSA)
{
@@ -3534,12 +3553,6 @@
for (rn = start; rn; rn = route_next_until (rn, start))
if ((lsa = rn->info))
{
-#ifdef HAVE_NSSA
- /* Stay away from any Local Translated Type-7 LSAs */
- if (CHECK_FLAG (lsa->flags, OSPF_LSA_LOCAL_XLT))
- continue;
-#endif /* HAVE_NSSA */
-
if (show_function[lsa->data->type] != NULL)
show_function[lsa->data->type] (vty, lsa);
}