]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_lsa.c
*: reindent
[mirror_frr.git] / ospf6d / ospf6_lsa.c
index 7817448b78a2a501643cbc97c447c5445982c8fa..329060a16f7b2f685e919c7e0c02f5dd59802ba3 100644 (file)
 
 vector ospf6_lsa_handler_vector;
 
-static int
-ospf6_unknown_lsa_show (struct vty *vty, struct ospf6_lsa *lsa)
+static int ospf6_unknown_lsa_show(struct vty *vty, struct ospf6_lsa *lsa)
 {
-  u_char *start, *end, *current;
-  char byte[4];
+       u_char *start, *end, *current;
+       char byte[4];
 
-  start = (u_char *) lsa->header + sizeof (struct ospf6_lsa_header);
-  end = (u_char *) lsa->header + ntohs (lsa->header->length);
+       start = (u_char *)lsa->header + sizeof(struct ospf6_lsa_header);
+       end = (u_char *)lsa->header + ntohs(lsa->header->length);
 
-  vty_out (vty, "        Unknown contents:\n");
-  for (current = start; current < end; current ++)
-    {
-      if ((current - start) % 16 == 0)
-        vty_out (vty, "\n        ");
-      else if ((current - start) % 4 == 0)
-        vty_out (vty, " ");
+       vty_out(vty, "        Unknown contents:\n");
+       for (current = start; current < end; current++) {
+               if ((current - start) % 16 == 0)
+                       vty_out(vty, "\n        ");
+               else if ((current - start) % 4 == 0)
+                       vty_out(vty, " ");
 
-      snprintf (byte, sizeof (byte), "%02x", *current);
-      vty_out (vty, "%s", byte);
-    }
+               snprintf(byte, sizeof(byte), "%02x", *current);
+               vty_out(vty, "%s", byte);
+       }
 
-  vty_out (vty, "\n\n");
-  return 0;
+       vty_out(vty, "\n\n");
+       return 0;
 }
 
-struct ospf6_lsa_handler unknown_handler =
-{
-  OSPF6_LSTYPE_UNKNOWN,
-  "Unknown",
-  "Unk",
-  ospf6_unknown_lsa_show,
-  NULL
-};
+struct ospf6_lsa_handler unknown_handler = {
+       OSPF6_LSTYPE_UNKNOWN, "Unknown", "Unk", ospf6_unknown_lsa_show, NULL};
 
-void
-ospf6_install_lsa_handler (struct ospf6_lsa_handler *handler)
+void ospf6_install_lsa_handler(struct ospf6_lsa_handler *handler)
 {
-  /* type in handler is host byte order */
-  int index = handler->type & OSPF6_LSTYPE_FCODE_MASK;
-  vector_set_index (ospf6_lsa_handler_vector, index, handler);
+       /* type in handler is host byte order */
+       int index = handler->type & OSPF6_LSTYPE_FCODE_MASK;
+       vector_set_index(ospf6_lsa_handler_vector, index, handler);
 }
 
-struct ospf6_lsa_handler *
-ospf6_get_lsa_handler (u_int16_t type)
+struct ospf6_lsa_handler *ospf6_get_lsa_handler(u_int16_t type)
 {
-  struct ospf6_lsa_handler *handler = NULL;
-  unsigned int index = ntohs (type) & OSPF6_LSTYPE_FCODE_MASK;
+       struct ospf6_lsa_handler *handler = NULL;
+       unsigned int index = ntohs(type) & OSPF6_LSTYPE_FCODE_MASK;
 
-  if (index >= vector_active (ospf6_lsa_handler_vector))
-    handler = &unknown_handler;
-  else
-    handler = vector_slot (ospf6_lsa_handler_vector, index);
+       if (index >= vector_active(ospf6_lsa_handler_vector))
+               handler = &unknown_handler;
+       else
+               handler = vector_slot(ospf6_lsa_handler_vector, index);
 
-  if (handler == NULL)
-    handler = &unknown_handler;
+       if (handler == NULL)
+               handler = &unknown_handler;
 
-  return handler;
+       return handler;
 }
 
-const char *
-ospf6_lstype_name (u_int16_t type)
+const char *ospf6_lstype_name(u_int16_t type)
 {
-  static char buf[8];
-  struct ospf6_lsa_handler *handler;
+       static char buf[8];
+       struct ospf6_lsa_handler *handler;
 
-  handler = ospf6_get_lsa_handler (type);
-  if (handler && handler != &unknown_handler)
-    return handler->name;
+       handler = ospf6_get_lsa_handler(type);
+       if (handler && handler != &unknown_handler)
+               return handler->name;
 
-  snprintf (buf, sizeof (buf), "0x%04hx", ntohs (type));
-  return buf;
+       snprintf(buf, sizeof(buf), "0x%04hx", ntohs(type));
+       return buf;
 }
 
-const char *
-ospf6_lstype_short_name (u_int16_t type)
+const char *ospf6_lstype_short_name(u_int16_t type)
 {
-  static char buf[8];
-  struct ospf6_lsa_handler *handler;
+       static char buf[8];
+       struct ospf6_lsa_handler *handler;
 
-  handler = ospf6_get_lsa_handler (type);
-  if (handler && handler != &unknown_handler)
-    return handler->short_name;
+       handler = ospf6_get_lsa_handler(type);
+       if (handler && handler != &unknown_handler)
+               return handler->short_name;
 
-  snprintf (buf, sizeof (buf), "0x%04hx", ntohs (type));
-  return buf;
+       snprintf(buf, sizeof(buf), "0x%04hx", ntohs(type));
+       return buf;
 }
 
-u_char
-ospf6_lstype_debug (u_int16_t type)
+u_char ospf6_lstype_debug(u_int16_t type)
 {
-  struct ospf6_lsa_handler *handler;
-  handler = ospf6_get_lsa_handler (type);
-  return handler->debug;
+       struct ospf6_lsa_handler *handler;
+       handler = ospf6_get_lsa_handler(type);
+       return handler->debug;
 }
 
 /* RFC2328: Section 13.2 */
-int
-ospf6_lsa_is_differ (struct ospf6_lsa *lsa1,
-                     struct ospf6_lsa *lsa2)
+int ospf6_lsa_is_differ(struct ospf6_lsa *lsa1, struct ospf6_lsa *lsa2)
 {
-  int len;
+       int len;
 
-  assert (OSPF6_LSA_IS_SAME (lsa1, lsa2));
+       assert(OSPF6_LSA_IS_SAME(lsa1, lsa2));
 
-  /* XXX, Options ??? */
+       /* XXX, Options ??? */
 
-  ospf6_lsa_age_current (lsa1);
-  ospf6_lsa_age_current (lsa2);
-  if (ntohs (lsa1->header->age) == OSPF_LSA_MAXAGE &&
-      ntohs (lsa2->header->age) != OSPF_LSA_MAXAGE)
-    return 1;
-  if (ntohs (lsa1->header->age) != OSPF_LSA_MAXAGE &&
-      ntohs (lsa2->header->age) == OSPF_LSA_MAXAGE)
-    return 1;
+       ospf6_lsa_age_current(lsa1);
+       ospf6_lsa_age_current(lsa2);
+       if (ntohs(lsa1->header->age) == OSPF_LSA_MAXAGE
+           && ntohs(lsa2->header->age) != OSPF_LSA_MAXAGE)
+               return 1;
+       if (ntohs(lsa1->header->age) != OSPF_LSA_MAXAGE
+           && ntohs(lsa2->header->age) == OSPF_LSA_MAXAGE)
+               return 1;
 
-  /* compare body */
-  if (ntohs (lsa1->header->length) != ntohs (lsa2->header->length))
-    return 1;
+       /* compare body */
+       if (ntohs(lsa1->header->length) != ntohs(lsa2->header->length))
+               return 1;
 
-  len = ntohs (lsa1->header->length) - sizeof (struct ospf6_lsa_header);
-  return memcmp (lsa1->header + 1, lsa2->header + 1, len);
+       len = ntohs(lsa1->header->length) - sizeof(struct ospf6_lsa_header);
+       return memcmp(lsa1->header + 1, lsa2->header + 1, len);
 }
 
-int
-ospf6_lsa_is_changed (struct ospf6_lsa *lsa1,
-                      struct ospf6_lsa *lsa2)
+int ospf6_lsa_is_changed(struct ospf6_lsa *lsa1, struct ospf6_lsa *lsa2)
 {
-  int length;
+       int length;
 
-  if (OSPF6_LSA_IS_MAXAGE (lsa1) ^ OSPF6_LSA_IS_MAXAGE (lsa2))
-    return 1;
-  if (ntohs (lsa1->header->length) != ntohs (lsa2->header->length))
-    return 1;
-  /* Going beyond LSA headers to compare the payload only makes sense, when both LSAs aren't header-only. */
-  if (CHECK_FLAG (lsa1->flag, OSPF6_LSA_HEADERONLY) != CHECK_FLAG (lsa2->flag, OSPF6_LSA_HEADERONLY))
-  {
-    zlog_warn ("%s: only one of two (%s, %s) LSAs compared is header-only", __func__, lsa1->name, lsa2->name);
-    return 1;
-  }
-  if (CHECK_FLAG (lsa1->flag, OSPF6_LSA_HEADERONLY))
-    return 0;
+       if (OSPF6_LSA_IS_MAXAGE(lsa1) ^ OSPF6_LSA_IS_MAXAGE(lsa2))
+               return 1;
+       if (ntohs(lsa1->header->length) != ntohs(lsa2->header->length))
+               return 1;
+       /* Going beyond LSA headers to compare the payload only makes sense,
+        * when both LSAs aren't header-only. */
+       if (CHECK_FLAG(lsa1->flag, OSPF6_LSA_HEADERONLY)
+           != CHECK_FLAG(lsa2->flag, OSPF6_LSA_HEADERONLY)) {
+               zlog_warn(
+                       "%s: only one of two (%s, %s) LSAs compared is header-only",
+                       __func__, lsa1->name, lsa2->name);
+               return 1;
+       }
+       if (CHECK_FLAG(lsa1->flag, OSPF6_LSA_HEADERONLY))
+               return 0;
 
-  length = OSPF6_LSA_SIZE (lsa1->header) - sizeof (struct ospf6_lsa_header);
-  /* Once upper layer verifies LSAs received, length underrun should become a warning. */
-  if (length <= 0)
-    return 0;
+       length = OSPF6_LSA_SIZE(lsa1->header) - sizeof(struct ospf6_lsa_header);
+       /* Once upper layer verifies LSAs received, length underrun should
+        * become a warning. */
+       if (length <= 0)
+               return 0;
 
-  return memcmp (OSPF6_LSA_HEADER_END (lsa1->header),
-                 OSPF6_LSA_HEADER_END (lsa2->header), length);
+       return memcmp(OSPF6_LSA_HEADER_END(lsa1->header),
+                     OSPF6_LSA_HEADER_END(lsa2->header), length);
 }
 
 /* ospf6 age functions */
 /* calculate birth */
-static void
-ospf6_lsa_age_set (struct ospf6_lsa *lsa)
+static void ospf6_lsa_age_set(struct ospf6_lsa *lsa)
 {
-  struct timeval now;
+       struct timeval now;
 
-  assert (lsa && lsa->header);
+       assert(lsa && lsa->header);
 
-  monotime(&now);
+       monotime(&now);
 
-  lsa->birth.tv_sec = now.tv_sec - ntohs (lsa->header->age);
-  lsa->birth.tv_usec = now.tv_usec;
+       lsa->birth.tv_sec = now.tv_sec - ntohs(lsa->header->age);
+       lsa->birth.tv_usec = now.tv_usec;
 
-  return;
+       return;
 }
 
 /* this function calculates current age from its birth,
    then update age field of LSA header. return value is current age */
-u_int16_t
-ospf6_lsa_age_current (struct ospf6_lsa *lsa)
+u_int16_t ospf6_lsa_age_current(struct ospf6_lsa *lsa)
 {
-  struct timeval now;
-  u_int32_t ulage;
-  u_int16_t age;
+       struct timeval now;
+       u_int32_t ulage;
+       u_int16_t age;
 
-  assert (lsa);
-  assert (lsa->header);
+       assert(lsa);
+       assert(lsa->header);
 
-  /* current time */
-  monotime(&now);
+       /* current time */
+       monotime(&now);
 
-  if (ntohs (lsa->header->age) >= OSPF_LSA_MAXAGE)
-    {
-      /* ospf6_lsa_premature_aging () sets age to MAXAGE; when using
-         relative time, we cannot compare against lsa birth time, so
-         we catch this special case here. */
-      lsa->header->age = htons (OSPF_LSA_MAXAGE);
-      return OSPF_LSA_MAXAGE;
-    }
-  /* calculate age */
-  ulage = now.tv_sec - lsa->birth.tv_sec;
+       if (ntohs(lsa->header->age) >= OSPF_LSA_MAXAGE) {
+               /* ospf6_lsa_premature_aging () sets age to MAXAGE; when using
+                  relative time, we cannot compare against lsa birth time, so
+                  we catch this special case here. */
+               lsa->header->age = htons(OSPF_LSA_MAXAGE);
+               return OSPF_LSA_MAXAGE;
+       }
+       /* calculate age */
+       ulage = now.tv_sec - lsa->birth.tv_sec;
 
-  /* if over MAXAGE, set to it */
-  age = (ulage > OSPF_LSA_MAXAGE ? OSPF_LSA_MAXAGE : ulage);
+       /* if over MAXAGE, set to it */
+       age = (ulage > OSPF_LSA_MAXAGE ? OSPF_LSA_MAXAGE : ulage);
 
-  lsa->header->age = htons (age);
-  return age;
+       lsa->header->age = htons(age);
+       return age;
 }
 
 /* update age field of LSA header with adding InfTransDelay */
-void
-ospf6_lsa_age_update_to_send (struct ospf6_lsa *lsa, u_int32_t transdelay)
-{
-  unsigned short age;
-
-  age = ospf6_lsa_age_current (lsa) + transdelay;
-  if (age > OSPF_LSA_MAXAGE)
-    age = OSPF_LSA_MAXAGE;
-  lsa->header->age = htons (age);
-}
-
-void
-ospf6_lsa_premature_aging (struct ospf6_lsa *lsa)
-{
-  /* log */
-  if (IS_OSPF6_DEBUG_LSA_TYPE (lsa->header->type))
-    zlog_debug ("LSA: Premature aging: %s", lsa->name);
-
-  THREAD_OFF (lsa->expire);
-  THREAD_OFF (lsa->refresh);
-
-  /*
-   * We clear the LSA from the neighbor retx lists now because it
-   * will not get deleted later. Essentially, changing the age to
-   * MaxAge will prevent this LSA from being matched with its
-   * existing entries in the retx list thereby causing those entries
-   * to be silently replaced with its MaxAged version, but with ever
-   * increasing retx count causing this LSA to remain forever and
-   * for the MaxAge remover thread to be called forever too.
-   *
-   * The reason the previous entry silently disappears is that when
-   * entry is added to a neighbor's retx list, it replaces the existing
-   * entry. But since the ospf6_lsdb_add() routine is generic and not aware
-   * of the special semantics of retx count, the retx count is not
-   * decremented when its replaced. Attempting to add the incr and decr
-   * retx count routines as the hook_add and hook_remove for the retx lists
-   * have a problem because the hook_remove routine is called for MaxAge
-   * entries (as will be the case in a traditional LSDB, unlike in this case
-   * where an LSDB is used as an efficient tree structure to store all kinds
-   * of data) that are added instead of calling the hook_add routine.
-   */
-
-  ospf6_flood_clear (lsa);
-
-  lsa->header->age = htons (OSPF_LSA_MAXAGE);
-  thread_execute (master, ospf6_lsa_expire, lsa, 0);
+void ospf6_lsa_age_update_to_send(struct ospf6_lsa *lsa, u_int32_t transdelay)
+{
+       unsigned short age;
+
+       age = ospf6_lsa_age_current(lsa) + transdelay;
+       if (age > OSPF_LSA_MAXAGE)
+               age = OSPF_LSA_MAXAGE;
+       lsa->header->age = htons(age);
+}
+
+void ospf6_lsa_premature_aging(struct ospf6_lsa *lsa)
+{
+       /* log */
+       if (IS_OSPF6_DEBUG_LSA_TYPE(lsa->header->type))
+               zlog_debug("LSA: Premature aging: %s", lsa->name);
+
+       THREAD_OFF(lsa->expire);
+       THREAD_OFF(lsa->refresh);
+
+       /*
+        * We clear the LSA from the neighbor retx lists now because it
+        * will not get deleted later. Essentially, changing the age to
+        * MaxAge will prevent this LSA from being matched with its
+        * existing entries in the retx list thereby causing those entries
+        * to be silently replaced with its MaxAged version, but with ever
+        * increasing retx count causing this LSA to remain forever and
+        * for the MaxAge remover thread to be called forever too.
+        *
+        * The reason the previous entry silently disappears is that when
+        * entry is added to a neighbor's retx list, it replaces the existing
+        * entry. But since the ospf6_lsdb_add() routine is generic and not
+        * aware
+        * of the special semantics of retx count, the retx count is not
+        * decremented when its replaced. Attempting to add the incr and decr
+        * retx count routines as the hook_add and hook_remove for the retx
+        * lists
+        * have a problem because the hook_remove routine is called for MaxAge
+        * entries (as will be the case in a traditional LSDB, unlike in this
+        * case
+        * where an LSDB is used as an efficient tree structure to store all
+        * kinds
+        * of data) that are added instead of calling the hook_add routine.
+        */
+
+       ospf6_flood_clear(lsa);
+
+       lsa->header->age = htons(OSPF_LSA_MAXAGE);
+       thread_execute(master, ospf6_lsa_expire, lsa, 0);
 }
 
 /* check which is more recent. if a is more recent, return -1;
    if the same, return 0; otherwise(b is more recent), return 1 */
-int
-ospf6_lsa_compare (struct ospf6_lsa *a, struct ospf6_lsa *b)
+int ospf6_lsa_compare(struct ospf6_lsa *a, struct ospf6_lsa *b)
 {
-  int32_t seqnuma, seqnumb;
-  u_int16_t cksuma, cksumb;
-  u_int16_t agea, ageb;
+       int32_t seqnuma, seqnumb;
+       u_int16_t cksuma, cksumb;
+       u_int16_t agea, ageb;
+
+       assert(a && a->header);
+       assert(b && b->header);
+       assert(OSPF6_LSA_IS_SAME(a, b));
 
-  assert (a && a->header);
-  assert (b && b->header);
-  assert (OSPF6_LSA_IS_SAME (a, b));
+       seqnuma = (int32_t)ntohl(a->header->seqnum);
+       seqnumb = (int32_t)ntohl(b->header->seqnum);
 
-  seqnuma = (int32_t) ntohl (a->header->seqnum);
-  seqnumb = (int32_t) ntohl (b->header->seqnum);
-
-  /* compare by sequence number */
-  if (seqnuma > seqnumb)
-    return -1;
-  if (seqnuma < seqnumb)
-    return 1;
-
-  /* Checksum */
-  cksuma = ntohs (a->header->checksum);
-  cksumb = ntohs (b->header->checksum);
-  if (cksuma > cksumb)
-    return -1;
-  if (cksuma < cksumb)
-    return 0;
-
-  /* Update Age */
-  agea = ospf6_lsa_age_current (a);
-  ageb = ospf6_lsa_age_current (b);
-
-  /* MaxAge check */
-  if (agea == OSPF_LSA_MAXAGE && ageb != OSPF_LSA_MAXAGE)
-    return -1;
-  else if (agea != OSPF_LSA_MAXAGE && ageb == OSPF_LSA_MAXAGE)
-    return 1;
-
-  /* Age check */
-  if (agea > ageb && agea - ageb >= OSPF_LSA_MAXAGE_DIFF)
-    return 1;
-  else if (agea < ageb && ageb - agea >= OSPF_LSA_MAXAGE_DIFF)
-    return -1;
-
-  /* neither recent */
-  return 0;
-}
-
-char *
-ospf6_lsa_printbuf (struct ospf6_lsa *lsa, char *buf, int size)
-{
-  char id[16], adv_router[16];
-  inet_ntop (AF_INET, &lsa->header->id, id, sizeof (id));
-  inet_ntop (AF_INET, &lsa->header->adv_router, adv_router,
-             sizeof (adv_router));
-  snprintf (buf, size, "[%s Id:%s Adv:%s]",
-            ospf6_lstype_name (lsa->header->type), id, adv_router);
-  return buf;
-}
-
-void
-ospf6_lsa_header_print_raw (struct ospf6_lsa_header *header)
-{
-  char id[16], adv_router[16];
-  inet_ntop (AF_INET, &header->id, id, sizeof (id));
-  inet_ntop (AF_INET, &header->adv_router, adv_router,
-             sizeof (adv_router));
-  zlog_debug ("    [%s Id:%s Adv:%s]",
-             ospf6_lstype_name (header->type), id, adv_router);
-  zlog_debug ("    Age: %4hu SeqNum: %#08lx Cksum: %04hx Len: %d",
-             ntohs (header->age), (u_long) ntohl (header->seqnum),
-             ntohs (header->checksum), ntohs (header->length));
-}
-
-void
-ospf6_lsa_header_print (struct ospf6_lsa *lsa)
-{
-  ospf6_lsa_age_current (lsa);
-  ospf6_lsa_header_print_raw (lsa->header);
-}
-
-void
-ospf6_lsa_show_summary_header (struct vty *vty)
-{
-  vty_out (vty, "%-4s %-15s%-15s%4s %8s %30s\n",
-           "Type", "LSId", "AdvRouter", "Age", "SeqNum",
-           "Payload");
-}
-
-void
-ospf6_lsa_show_summary (struct vty *vty, struct ospf6_lsa *lsa)
-{
-  char adv_router[16], id[16];
-  int type;
-  struct ospf6_lsa_handler *handler;
-  char buf[64], tmpbuf[80];
-  int cnt = 0;
-
-  assert (lsa);
-  assert (lsa->header);
-
-  inet_ntop (AF_INET, &lsa->header->id, id, sizeof (id));
-  inet_ntop (AF_INET, &lsa->header->adv_router, adv_router,
-             sizeof (adv_router));
-
-  type = ntohs(lsa->header->type);
-  handler = ospf6_get_lsa_handler (lsa->header->type);
-  if ((type == OSPF6_LSTYPE_INTER_PREFIX) ||
-      (type == OSPF6_LSTYPE_INTER_ROUTER) ||
-      (type == OSPF6_LSTYPE_AS_EXTERNAL))
-    {
-      vty_out (vty, "%-4s %-15s%-15s%4hu %8lx %30s\n",
-              ospf6_lstype_short_name (lsa->header->type),
-              id, adv_router, ospf6_lsa_age_current (lsa),
-              (u_long) ntohl (lsa->header->seqnum),
-              handler->get_prefix_str(lsa, buf, sizeof(buf), 0));
-    }
-  else if (type != OSPF6_LSTYPE_UNKNOWN)
-    {
-      sprintf (tmpbuf, "%-4s %-15s%-15s%4hu %8lx",
-              ospf6_lstype_short_name (lsa->header->type),
-              id, adv_router, ospf6_lsa_age_current (lsa),
-              (u_long) ntohl (lsa->header->seqnum));
-
-      while (handler->get_prefix_str(lsa, buf, sizeof(buf), cnt) != NULL)
-       {
-         vty_out (vty, "%s %30s\n", tmpbuf, buf);
-         cnt++;
+       /* compare by sequence number */
+       if (seqnuma > seqnumb)
+               return -1;
+       if (seqnuma < seqnumb)
+               return 1;
+
+       /* Checksum */
+       cksuma = ntohs(a->header->checksum);
+       cksumb = ntohs(b->header->checksum);
+       if (cksuma > cksumb)
+               return -1;
+       if (cksuma < cksumb)
+               return 0;
+
+       /* Update Age */
+       agea = ospf6_lsa_age_current(a);
+       ageb = ospf6_lsa_age_current(b);
+
+       /* MaxAge check */
+       if (agea == OSPF_LSA_MAXAGE && ageb != OSPF_LSA_MAXAGE)
+               return -1;
+       else if (agea != OSPF_LSA_MAXAGE && ageb == OSPF_LSA_MAXAGE)
+               return 1;
+
+       /* Age check */
+       if (agea > ageb && agea - ageb >= OSPF_LSA_MAXAGE_DIFF)
+               return 1;
+       else if (agea < ageb && ageb - agea >= OSPF_LSA_MAXAGE_DIFF)
+               return -1;
+
+       /* neither recent */
+       return 0;
+}
+
+char *ospf6_lsa_printbuf(struct ospf6_lsa *lsa, char *buf, int size)
+{
+       char id[16], adv_router[16];
+       inet_ntop(AF_INET, &lsa->header->id, id, sizeof(id));
+       inet_ntop(AF_INET, &lsa->header->adv_router, adv_router,
+                 sizeof(adv_router));
+       snprintf(buf, size, "[%s Id:%s Adv:%s]",
+                ospf6_lstype_name(lsa->header->type), id, adv_router);
+       return buf;
+}
+
+void ospf6_lsa_header_print_raw(struct ospf6_lsa_header *header)
+{
+       char id[16], adv_router[16];
+       inet_ntop(AF_INET, &header->id, id, sizeof(id));
+       inet_ntop(AF_INET, &header->adv_router, adv_router, sizeof(adv_router));
+       zlog_debug("    [%s Id:%s Adv:%s]", ospf6_lstype_name(header->type), id,
+                  adv_router);
+       zlog_debug("    Age: %4hu SeqNum: %#08lx Cksum: %04hx Len: %d",
+                  ntohs(header->age), (u_long)ntohl(header->seqnum),
+                  ntohs(header->checksum), ntohs(header->length));
+}
+
+void ospf6_lsa_header_print(struct ospf6_lsa *lsa)
+{
+       ospf6_lsa_age_current(lsa);
+       ospf6_lsa_header_print_raw(lsa->header);
+}
+
+void ospf6_lsa_show_summary_header(struct vty *vty)
+{
+       vty_out(vty, "%-4s %-15s%-15s%4s %8s %30s\n", "Type", "LSId",
+               "AdvRouter", "Age", "SeqNum", "Payload");
+}
+
+void ospf6_lsa_show_summary(struct vty *vty, struct ospf6_lsa *lsa)
+{
+       char adv_router[16], id[16];
+       int type;
+       struct ospf6_lsa_handler *handler;
+       char buf[64], tmpbuf[80];
+       int cnt = 0;
+
+       assert(lsa);
+       assert(lsa->header);
+
+       inet_ntop(AF_INET, &lsa->header->id, id, sizeof(id));
+       inet_ntop(AF_INET, &lsa->header->adv_router, adv_router,
+                 sizeof(adv_router));
+
+       type = ntohs(lsa->header->type);
+       handler = ospf6_get_lsa_handler(lsa->header->type);
+       if ((type == OSPF6_LSTYPE_INTER_PREFIX)
+           || (type == OSPF6_LSTYPE_INTER_ROUTER)
+           || (type == OSPF6_LSTYPE_AS_EXTERNAL)) {
+               vty_out(vty, "%-4s %-15s%-15s%4hu %8lx %30s\n",
+                       ospf6_lstype_short_name(lsa->header->type), id,
+                       adv_router, ospf6_lsa_age_current(lsa),
+                       (u_long)ntohl(lsa->header->seqnum),
+                       handler->get_prefix_str(lsa, buf, sizeof(buf), 0));
+       } else if (type != OSPF6_LSTYPE_UNKNOWN) {
+               sprintf(tmpbuf, "%-4s %-15s%-15s%4hu %8lx",
+                       ospf6_lstype_short_name(lsa->header->type), id,
+                       adv_router, ospf6_lsa_age_current(lsa),
+                       (u_long)ntohl(lsa->header->seqnum));
+
+               while (handler->get_prefix_str(lsa, buf, sizeof(buf), cnt)
+                      != NULL) {
+                       vty_out(vty, "%s %30s\n", tmpbuf, buf);
+                       cnt++;
+               }
+       } else {
+               vty_out(vty, "%-4s %-15s%-15s%4hu %8lx\n",
+                       ospf6_lstype_short_name(lsa->header->type), id,
+                       adv_router, ospf6_lsa_age_current(lsa),
+                       (u_long)ntohl(lsa->header->seqnum));
        }
-    }
-  else
-    {
-      vty_out (vty, "%-4s %-15s%-15s%4hu %8lx\n",
-              ospf6_lstype_short_name (lsa->header->type),
-              id, adv_router, ospf6_lsa_age_current (lsa),
-              (u_long) ntohl (lsa->header->seqnum));
-    }
-}
-
-void
-ospf6_lsa_show_dump (struct vty *vty, struct ospf6_lsa *lsa)
-{
-  u_char *start, *end, *current;
-  char byte[4];
-
-  start = (u_char *) lsa->header;
-  end = (u_char *) lsa->header + ntohs (lsa->header->length);
-
-  vty_out (vty, "\n");
-  vty_out (vty, "%s:\n", lsa->name);
-
-  for (current = start; current < end; current ++)
-    {
-      if ((current - start) % 16 == 0)
-        vty_out (vty, "\n        ");
-      else if ((current - start) % 4 == 0)
-        vty_out (vty, " ");
-
-      snprintf (byte, sizeof (byte), "%02x", *current);
-      vty_out (vty, "%s", byte);
-    }
-
-  vty_out (vty, "\n\n");
-  return;
-}
-
-void
-ospf6_lsa_show_internal (struct vty *vty, struct ospf6_lsa *lsa)
-{
-  char adv_router[64], id[64];
-
-  assert (lsa && lsa->header);
-
-  inet_ntop (AF_INET, &lsa->header->id, id, sizeof (id));
-  inet_ntop (AF_INET, &lsa->header->adv_router,
-             adv_router, sizeof (adv_router));
-
-  vty_out (vty, "\n");
-  vty_out (vty, "Age: %4hu Type: %s\n", ospf6_lsa_age_current (lsa),
-           ospf6_lstype_name (lsa->header->type));
-  vty_out (vty, "Link State ID: %s\n", id);
-  vty_out (vty, "Advertising Router: %s\n", adv_router);
-  vty_out (vty, "LS Sequence Number: %#010lx\n",
-           (u_long) ntohl (lsa->header->seqnum));
-  vty_out (vty, "CheckSum: %#06hx Length: %hu\n",
-           ntohs (lsa->header->checksum),
-           ntohs (lsa->header->length));
-  vty_out (vty, "Flag: %x \n", lsa->flag);
-  vty_out (vty, "Lock: %d \n", lsa->lock);
-  vty_out (vty, "ReTx Count: %d\n", lsa->retrans_count);
-  vty_out (vty, "Threads: Expire: 0x%p, Refresh: 0x%p \n",
-           (void *)lsa->expire, (void *)lsa->refresh);
-  vty_out (vty, "\n");
-  return;
-}
-
-void
-ospf6_lsa_show (struct vty *vty, struct ospf6_lsa *lsa)
-{
-  char adv_router[64], id[64];
-  struct ospf6_lsa_handler *handler;
-  struct timeval now, res;
-  char duration[16];
-
-  assert (lsa && lsa->header);
-
-  inet_ntop (AF_INET, &lsa->header->id, id, sizeof (id));
-  inet_ntop (AF_INET, &lsa->header->adv_router,
-             adv_router, sizeof (adv_router));
-
-  monotime(&now);
-  timersub (&now, &lsa->installed, &res);
-  timerstring (&res, duration, sizeof (duration));
-
-  vty_out (vty, "Age: %4hu Type: %s\n", ospf6_lsa_age_current (lsa),
-           ospf6_lstype_name (lsa->header->type));
-  vty_out (vty, "Link State ID: %s\n", id);
-  vty_out (vty, "Advertising Router: %s\n", adv_router);
-  vty_out (vty, "LS Sequence Number: %#010lx\n",
-           (u_long) ntohl (lsa->header->seqnum));
-  vty_out (vty, "CheckSum: %#06hx Length: %hu\n",
-           ntohs (lsa->header->checksum),
-           ntohs (lsa->header->length));
-  vty_out (vty, "Duration: %s\n", duration);
-
-  handler = ospf6_get_lsa_handler (lsa->header->type);
-  if (handler->show == NULL)
-    handler = &unknown_handler;
-  (*handler->show) (vty, lsa);
-
-  vty_out (vty, "\n");
+}
+
+void ospf6_lsa_show_dump(struct vty *vty, struct ospf6_lsa *lsa)
+{
+       u_char *start, *end, *current;
+       char byte[4];
+
+       start = (u_char *)lsa->header;
+       end = (u_char *)lsa->header + ntohs(lsa->header->length);
+
+       vty_out(vty, "\n");
+       vty_out(vty, "%s:\n", lsa->name);
+
+       for (current = start; current < end; current++) {
+               if ((current - start) % 16 == 0)
+                       vty_out(vty, "\n        ");
+               else if ((current - start) % 4 == 0)
+                       vty_out(vty, " ");
+
+               snprintf(byte, sizeof(byte), "%02x", *current);
+               vty_out(vty, "%s", byte);
+       }
+
+       vty_out(vty, "\n\n");
+       return;
+}
+
+void ospf6_lsa_show_internal(struct vty *vty, struct ospf6_lsa *lsa)
+{
+       char adv_router[64], id[64];
+
+       assert(lsa && lsa->header);
+
+       inet_ntop(AF_INET, &lsa->header->id, id, sizeof(id));
+       inet_ntop(AF_INET, &lsa->header->adv_router, adv_router,
+                 sizeof(adv_router));
+
+       vty_out(vty, "\n");
+       vty_out(vty, "Age: %4hu Type: %s\n", ospf6_lsa_age_current(lsa),
+               ospf6_lstype_name(lsa->header->type));
+       vty_out(vty, "Link State ID: %s\n", id);
+       vty_out(vty, "Advertising Router: %s\n", adv_router);
+       vty_out(vty, "LS Sequence Number: %#010lx\n",
+               (u_long)ntohl(lsa->header->seqnum));
+       vty_out(vty, "CheckSum: %#06hx Length: %hu\n",
+               ntohs(lsa->header->checksum), ntohs(lsa->header->length));
+       vty_out(vty, "Flag: %x \n", lsa->flag);
+       vty_out(vty, "Lock: %d \n", lsa->lock);
+       vty_out(vty, "ReTx Count: %d\n", lsa->retrans_count);
+       vty_out(vty, "Threads: Expire: 0x%p, Refresh: 0x%p \n",
+               (void *)lsa->expire, (void *)lsa->refresh);
+       vty_out(vty, "\n");
+       return;
+}
+
+void ospf6_lsa_show(struct vty *vty, struct ospf6_lsa *lsa)
+{
+       char adv_router[64], id[64];
+       struct ospf6_lsa_handler *handler;
+       struct timeval now, res;
+       char duration[16];
+
+       assert(lsa && lsa->header);
+
+       inet_ntop(AF_INET, &lsa->header->id, id, sizeof(id));
+       inet_ntop(AF_INET, &lsa->header->adv_router, adv_router,
+                 sizeof(adv_router));
+
+       monotime(&now);
+       timersub(&now, &lsa->installed, &res);
+       timerstring(&res, duration, sizeof(duration));
+
+       vty_out(vty, "Age: %4hu Type: %s\n", ospf6_lsa_age_current(lsa),
+               ospf6_lstype_name(lsa->header->type));
+       vty_out(vty, "Link State ID: %s\n", id);
+       vty_out(vty, "Advertising Router: %s\n", adv_router);
+       vty_out(vty, "LS Sequence Number: %#010lx\n",
+               (u_long)ntohl(lsa->header->seqnum));
+       vty_out(vty, "CheckSum: %#06hx Length: %hu\n",
+               ntohs(lsa->header->checksum), ntohs(lsa->header->length));
+       vty_out(vty, "Duration: %s\n", duration);
+
+       handler = ospf6_get_lsa_handler(lsa->header->type);
+       if (handler->show == NULL)
+               handler = &unknown_handler;
+       (*handler->show)(vty, lsa);
+
+       vty_out(vty, "\n");
 }
 
 /* OSPFv3 LSA creation/deletion function */
-struct ospf6_lsa *
-ospf6_lsa_create (struct ospf6_lsa_header *header)
+struct ospf6_lsa *ospf6_lsa_create(struct ospf6_lsa_header *header)
 {
-  struct ospf6_lsa *lsa = NULL;
-  struct ospf6_lsa_header *new_header = NULL;
-  u_int16_t lsa_size = 0;
+       struct ospf6_lsa *lsa = NULL;
+       struct ospf6_lsa_header *new_header = NULL;
+       u_int16_t lsa_size = 0;
 
-  /* size of the entire LSA */
-  lsa_size = ntohs (header->length);   /* XXX vulnerable */
+       /* size of the entire LSA */
+       lsa_size = ntohs(header->length); /* XXX vulnerable */
 
-  /* allocate memory for this LSA */
-  new_header = (struct ospf6_lsa_header *)
-    XMALLOC (MTYPE_OSPF6_LSA, lsa_size);
+       /* allocate memory for this LSA */
+       new_header =
+               (struct ospf6_lsa_header *)XMALLOC(MTYPE_OSPF6_LSA, lsa_size);
 
-  /* copy LSA from original header */
-  memcpy (new_header, header, lsa_size);
+       /* copy LSA from original header */
+       memcpy(new_header, header, lsa_size);
 
-  /* LSA information structure */
-  /* allocate memory */
-  lsa = (struct ospf6_lsa *)
-    XCALLOC (MTYPE_OSPF6_LSA, sizeof (struct ospf6_lsa));
+       /* LSA information structure */
+       /* allocate memory */
+       lsa = (struct ospf6_lsa *)XCALLOC(MTYPE_OSPF6_LSA,
+                                         sizeof(struct ospf6_lsa));
 
-  lsa->header = (struct ospf6_lsa_header *) new_header;
+       lsa->header = (struct ospf6_lsa_header *)new_header;
 
-  /* dump string */
-  ospf6_lsa_printbuf (lsa, lsa->name, sizeof (lsa->name));
+       /* dump string */
+       ospf6_lsa_printbuf(lsa, lsa->name, sizeof(lsa->name));
 
-  /* calculate birth of this lsa */
-  ospf6_lsa_age_set (lsa);
+       /* calculate birth of this lsa */
+       ospf6_lsa_age_set(lsa);
 
-  return lsa;
+       return lsa;
 }
 
-struct ospf6_lsa *
-ospf6_lsa_create_headeronly (struct ospf6_lsa_header *header)
+struct ospf6_lsa *ospf6_lsa_create_headeronly(struct ospf6_lsa_header *header)
 {
-  struct ospf6_lsa *lsa = NULL;
-  struct ospf6_lsa_header *new_header = NULL;
+       struct ospf6_lsa *lsa = NULL;
+       struct ospf6_lsa_header *new_header = NULL;
 
-  /* allocate memory for this LSA */
-  new_header = (struct ospf6_lsa_header *)
-    XMALLOC (MTYPE_OSPF6_LSA, sizeof (struct ospf6_lsa_header));
+       /* allocate memory for this LSA */
+       new_header = (struct ospf6_lsa_header *)XMALLOC(
+               MTYPE_OSPF6_LSA, sizeof(struct ospf6_lsa_header));
 
-  /* copy LSA from original header */
-  memcpy (new_header, header, sizeof (struct ospf6_lsa_header));
+       /* copy LSA from original header */
+       memcpy(new_header, header, sizeof(struct ospf6_lsa_header));
 
-  /* LSA information structure */
-  /* allocate memory */
-  lsa = (struct ospf6_lsa *)
-    XCALLOC (MTYPE_OSPF6_LSA, sizeof (struct ospf6_lsa));
+       /* LSA information structure */
+       /* allocate memory */
+       lsa = (struct ospf6_lsa *)XCALLOC(MTYPE_OSPF6_LSA,
+                                         sizeof(struct ospf6_lsa));
 
-  lsa->header = (struct ospf6_lsa_header *) new_header;
-  SET_FLAG (lsa->flag, OSPF6_LSA_HEADERONLY);
+       lsa->header = (struct ospf6_lsa_header *)new_header;
+       SET_FLAG(lsa->flag, OSPF6_LSA_HEADERONLY);
 
-  /* dump string */
-  ospf6_lsa_printbuf (lsa, lsa->name, sizeof (lsa->name));
+       /* dump string */
+       ospf6_lsa_printbuf(lsa, lsa->name, sizeof(lsa->name));
 
-  /* calculate birth of this lsa */
-  ospf6_lsa_age_set (lsa);
+       /* calculate birth of this lsa */
+       ospf6_lsa_age_set(lsa);
 
-  return lsa;
+       return lsa;
 }
 
-void
-ospf6_lsa_delete (struct ospf6_lsa *lsa)
+void ospf6_lsa_delete(struct ospf6_lsa *lsa)
 {
-  assert (lsa->lock == 0);
+       assert(lsa->lock == 0);
 
-  /* cancel threads */
-  THREAD_OFF (lsa->expire);
-  THREAD_OFF (lsa->refresh);
+       /* cancel threads */
+       THREAD_OFF(lsa->expire);
+       THREAD_OFF(lsa->refresh);
 
-  /* do free */
-  XFREE (MTYPE_OSPF6_LSA, lsa->header);
-  XFREE (MTYPE_OSPF6_LSA, lsa);
+       /* do free */
+       XFREE(MTYPE_OSPF6_LSA, lsa->header);
+       XFREE(MTYPE_OSPF6_LSA, lsa);
 }
 
-struct ospf6_lsa *
-ospf6_lsa_copy (struct ospf6_lsa *lsa)
+struct ospf6_lsa *ospf6_lsa_copy(struct ospf6_lsa *lsa)
 {
-  struct ospf6_lsa *copy = NULL;
+       struct ospf6_lsa *copy = NULL;
 
-  ospf6_lsa_age_current (lsa);
-  if (CHECK_FLAG (lsa->flag, OSPF6_LSA_HEADERONLY))
-    copy = ospf6_lsa_create_headeronly (lsa->header);
-  else
-    copy = ospf6_lsa_create (lsa->header);
-  assert (copy->lock == 0);
+       ospf6_lsa_age_current(lsa);
+       if (CHECK_FLAG(lsa->flag, OSPF6_LSA_HEADERONLY))
+               copy = ospf6_lsa_create_headeronly(lsa->header);
+       else
+               copy = ospf6_lsa_create(lsa->header);
+       assert(copy->lock == 0);
 
-  copy->birth = lsa->birth;
-  copy->originated = lsa->originated;
-  copy->received = lsa->received;
-  copy->installed = lsa->installed;
-  copy->lsdb = lsa->lsdb;
-  copy->rn = NULL;
+       copy->birth = lsa->birth;
+       copy->originated = lsa->originated;
+       copy->received = lsa->received;
+       copy->installed = lsa->installed;
+       copy->lsdb = lsa->lsdb;
+       copy->rn = NULL;
 
-  return copy;
+       return copy;
 }
 
 /* increment reference counter of struct ospf6_lsa */
-void
-ospf6_lsa_lock (struct ospf6_lsa *lsa)
+void ospf6_lsa_lock(struct ospf6_lsa *lsa)
 {
-  lsa->lock++;
-  return;
+       lsa->lock++;
+       return;
 }
 
 /* decrement reference counter of struct ospf6_lsa */
-void
-ospf6_lsa_unlock (struct ospf6_lsa *lsa)
+void ospf6_lsa_unlock(struct ospf6_lsa *lsa)
 {
-  /* decrement reference counter */
-  assert (lsa->lock > 0);
-  lsa->lock--;
+       /* decrement reference counter */
+       assert(lsa->lock > 0);
+       lsa->lock--;
 
-  if (lsa->lock != 0)
-    return;
+       if (lsa->lock != 0)
+               return;
 
-  ospf6_lsa_delete (lsa);
+       ospf6_lsa_delete(lsa);
 }
 
 
 /* ospf6 lsa expiry */
-int
-ospf6_lsa_expire (struct thread *thread)
+int ospf6_lsa_expire(struct thread *thread)
 {
-  struct ospf6_lsa *lsa;
+       struct ospf6_lsa *lsa;
 
-  lsa = (struct ospf6_lsa *) THREAD_ARG (thread);
+       lsa = (struct ospf6_lsa *)THREAD_ARG(thread);
 
-  assert (lsa && lsa->header);
-  assert (OSPF6_LSA_IS_MAXAGE (lsa));
-  assert (! lsa->refresh);
+       assert(lsa && lsa->header);
+       assert(OSPF6_LSA_IS_MAXAGE(lsa));
+       assert(!lsa->refresh);
 
-  lsa->expire = (struct thread *) NULL;
+       lsa->expire = (struct thread *)NULL;
 
-  if (IS_OSPF6_DEBUG_LSA_TYPE (lsa->header->type))
-    {
-      zlog_debug ("LSA Expire:");
-      ospf6_lsa_header_print (lsa);
-    }
+       if (IS_OSPF6_DEBUG_LSA_TYPE(lsa->header->type)) {
+               zlog_debug("LSA Expire:");
+               ospf6_lsa_header_print(lsa);
+       }
 
-  if (CHECK_FLAG (lsa->flag, OSPF6_LSA_HEADERONLY))
-    return 0;    /* dbexchange will do something ... */
+       if (CHECK_FLAG(lsa->flag, OSPF6_LSA_HEADERONLY))
+               return 0; /* dbexchange will do something ... */
 
-  /* reinstall lsa */
-  ospf6_install_lsa (lsa);
+       /* reinstall lsa */
+       ospf6_install_lsa(lsa);
 
-  /* reflood lsa */
-  ospf6_flood (NULL, lsa);
+       /* reflood lsa */
+       ospf6_flood(NULL, lsa);
 
-  /* schedule maxage remover */
-  ospf6_maxage_remove (ospf6);
+       /* schedule maxage remover */
+       ospf6_maxage_remove(ospf6);
 
-  return 0;
+       return 0;
 }
 
-int
-ospf6_lsa_refresh (struct thread *thread)
+int ospf6_lsa_refresh(struct thread *thread)
 {
-  struct ospf6_lsa *old, *self, *new;
-  struct ospf6_lsdb *lsdb_self;
-
-  old = (struct ospf6_lsa *) THREAD_ARG (thread);
-  assert (old && old->header);
-
-  old->refresh = (struct thread *) NULL;
+       struct ospf6_lsa *old, *self, *new;
+       struct ospf6_lsdb *lsdb_self;
 
-  lsdb_self = ospf6_get_scoped_lsdb_self (old);
-  self = ospf6_lsdb_lookup (old->header->type, old->header->id,
-                            old->header->adv_router, lsdb_self);
-  if (self == NULL)
-    {
-      if (IS_OSPF6_DEBUG_LSA_TYPE (old->header->type))
-        zlog_debug ("Refresh: could not find self LSA, flush %s", old->name);
-      ospf6_lsa_premature_aging (old);
-      return 0;
-    }
+       old = (struct ospf6_lsa *)THREAD_ARG(thread);
+       assert(old && old->header);
 
-  /* Reset age, increment LS sequence number. */
-  self->header->age = htons (0);
-  self->header->seqnum =
-    ospf6_new_ls_seqnum (self->header->type, self->header->id,
-                         self->header->adv_router, old->lsdb);
-  ospf6_lsa_checksum (self->header);
+       old->refresh = (struct thread *)NULL;
 
-  new = ospf6_lsa_create (self->header);
-  new->lsdb = old->lsdb;
-  new->refresh = NULL;
-  thread_add_timer(master, ospf6_lsa_refresh, new, OSPF_LS_REFRESH_TIME,
-                   &new->refresh);
-
-  /* store it in the LSDB for self-originated LSAs */
-  ospf6_lsdb_add (ospf6_lsa_copy (new), lsdb_self);
+       lsdb_self = ospf6_get_scoped_lsdb_self(old);
+       self = ospf6_lsdb_lookup(old->header->type, old->header->id,
+                                old->header->adv_router, lsdb_self);
+       if (self == NULL) {
+               if (IS_OSPF6_DEBUG_LSA_TYPE(old->header->type))
+                       zlog_debug("Refresh: could not find self LSA, flush %s",
+                                  old->name);
+               ospf6_lsa_premature_aging(old);
+               return 0;
+       }
 
-  if (IS_OSPF6_DEBUG_LSA_TYPE (new->header->type))
-    {
-      zlog_debug ("LSA Refresh:");
-      ospf6_lsa_header_print (new);
-    }
+       /* Reset age, increment LS sequence number. */
+       self->header->age = htons(0);
+       self->header->seqnum =
+               ospf6_new_ls_seqnum(self->header->type, self->header->id,
+                                   self->header->adv_router, old->lsdb);
+       ospf6_lsa_checksum(self->header);
+
+       new = ospf6_lsa_create(self->header);
+       new->lsdb = old->lsdb;
+       new->refresh = NULL;
+       thread_add_timer(master, ospf6_lsa_refresh, new, OSPF_LS_REFRESH_TIME,
+                        &new->refresh);
+
+       /* store it in the LSDB for self-originated LSAs */
+       ospf6_lsdb_add(ospf6_lsa_copy(new), lsdb_self);
+
+       if (IS_OSPF6_DEBUG_LSA_TYPE(new->header->type)) {
+               zlog_debug("LSA Refresh:");
+               ospf6_lsa_header_print(new);
+       }
 
-  ospf6_install_lsa (new);
-  ospf6_flood (NULL, new);
+       ospf6_install_lsa(new);
+       ospf6_flood(NULL, new);
 
-  return 0;
+       return 0;
 }
 
 
-
 /* Fletcher Checksum -- Refer to RFC1008. */
 
 /* All the offsets are zero-based. The offsets in the RFC1008 are
    one-based. */
-unsigned short
-ospf6_lsa_checksum (struct ospf6_lsa_header *lsa_header)
+unsigned short ospf6_lsa_checksum(struct ospf6_lsa_header *lsa_header)
 {
-  u_char *buffer = (u_char *) &lsa_header->type;
-  int type_offset = buffer - (u_char *) &lsa_header->age; /* should be 2 */
+       u_char *buffer = (u_char *)&lsa_header->type;
+       int type_offset = buffer - (u_char *)&lsa_header->age; /* should be 2 */
 
-  /* Skip the AGE field */
-  u_int16_t len = ntohs(lsa_header->length) - type_offset;
+       /* Skip the AGE field */
+       u_int16_t len = ntohs(lsa_header->length) - type_offset;
 
-  /* Checksum offset starts from "type" field, not the beginning of the
-     lsa_header struct. The offset is 14, rather than 16. */
-  int checksum_offset = (u_char *) &lsa_header->checksum - buffer;
+       /* Checksum offset starts from "type" field, not the beginning of the
+          lsa_header struct. The offset is 14, rather than 16. */
+       int checksum_offset = (u_char *)&lsa_header->checksum - buffer;
 
-  return (unsigned short)fletcher_checksum(buffer, len, checksum_offset);
+       return (unsigned short)fletcher_checksum(buffer, len, checksum_offset);
 }
 
-int
-ospf6_lsa_checksum_valid (struct ospf6_lsa_header *lsa_header)
+int ospf6_lsa_checksum_valid(struct ospf6_lsa_header *lsa_header)
 {
-  u_char *buffer = (u_char *) &lsa_header->type;
-  int type_offset = buffer - (u_char *) &lsa_header->age; /* should be 2 */
+       u_char *buffer = (u_char *)&lsa_header->type;
+       int type_offset = buffer - (u_char *)&lsa_header->age; /* should be 2 */
 
-  /* Skip the AGE field */
-  u_int16_t len = ntohs(lsa_header->length) - type_offset;
+       /* Skip the AGE field */
+       u_int16_t len = ntohs(lsa_header->length) - type_offset;
 
-  return (fletcher_checksum(buffer, len, FLETCHER_CHECKSUM_VALIDATE) == 0);
+       return (fletcher_checksum(buffer, len, FLETCHER_CHECKSUM_VALIDATE)
+               == 0);
 }
 
-void
-ospf6_lsa_init (void)
+void ospf6_lsa_init(void)
 {
-  ospf6_lsa_handler_vector = vector_init (0);
-  ospf6_install_lsa_handler (&unknown_handler);
+       ospf6_lsa_handler_vector = vector_init(0);
+       ospf6_install_lsa_handler(&unknown_handler);
 }
 
-void
-ospf6_lsa_terminate (void)
+void ospf6_lsa_terminate(void)
 {
-  vector_free (ospf6_lsa_handler_vector);
+       vector_free(ospf6_lsa_handler_vector);
 }
 
-static char *
-ospf6_lsa_handler_name (struct ospf6_lsa_handler *h)
+static char *ospf6_lsa_handler_name(struct ospf6_lsa_handler *h)
 {
-  static char buf[64];
-  unsigned int i; 
-  unsigned int size = strlen (h->name);
+       static char buf[64];
+       unsigned int i;
+       unsigned int size = strlen(h->name);
 
-  if (!strcmp(h->name, "unknown") &&
-      h->type != OSPF6_LSTYPE_UNKNOWN)
-    {
-      snprintf (buf, sizeof (buf), "%#04hx", h->type);
-      return buf;
-    }
+       if (!strcmp(h->name, "unknown") && h->type != OSPF6_LSTYPE_UNKNOWN) {
+               snprintf(buf, sizeof(buf), "%#04hx", h->type);
+               return buf;
+       }
 
-  for (i = 0; i < MIN (size, sizeof (buf)); i++)
-    {
-      if (! islower ((unsigned char)h->name[i]))
-        buf[i] = tolower ((unsigned char)h->name[i]);
-      else
-        buf[i] = h->name[i];
-    }
-  buf[size] = '\0';
-  return buf;
+       for (i = 0; i < MIN(size, sizeof(buf)); i++) {
+               if (!islower((unsigned char)h->name[i]))
+                       buf[i] = tolower((unsigned char)h->name[i]);
+               else
+                       buf[i] = h->name[i];
+       }
+       buf[size] = '\0';
+       return buf;
 }
 
 DEFUN (debug_ospf6_lsa_type,
@@ -828,39 +777,38 @@ DEFUN (debug_ospf6_lsa_type,
        "Dump LSAs\n"
        "Display LSA's internal information\n")
 {
-  int idx_lsa = 3;
-  int idx_type = 4;
-  unsigned int i;
-  struct ospf6_lsa_handler *handler = NULL;
-
-  for (i = 0; i < vector_active (ospf6_lsa_handler_vector); i++)
-    {
-      handler = vector_slot (ospf6_lsa_handler_vector, i);
-      if (handler == NULL)
-        continue;
-      if (strncmp (argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler), strlen(argv[idx_lsa]->arg)) == 0)
-        break;
-      if (! strcasecmp (argv[idx_lsa]->arg, handler->name))
-        break;
-      handler = NULL;
-    }
-
-  if (handler == NULL)
-    handler = &unknown_handler;
-
-  if (argc == 5)
-    {
-      if (strmatch(argv[idx_type]->text, "originate"))
-        SET_FLAG (handler->debug, OSPF6_LSA_DEBUG_ORIGINATE);
-      else if (strmatch(argv[idx_type]->text, "examine"))
-        SET_FLAG (handler->debug, OSPF6_LSA_DEBUG_EXAMIN);
-      else if (strmatch(argv[idx_type]->text, "flooding"))
-        SET_FLAG (handler->debug, OSPF6_LSA_DEBUG_FLOOD);
-    }
-  else
-    SET_FLAG (handler->debug, OSPF6_LSA_DEBUG);
-
-  return CMD_SUCCESS;
+       int idx_lsa = 3;
+       int idx_type = 4;
+       unsigned int i;
+       struct ospf6_lsa_handler *handler = NULL;
+
+       for (i = 0; i < vector_active(ospf6_lsa_handler_vector); i++) {
+               handler = vector_slot(ospf6_lsa_handler_vector, i);
+               if (handler == NULL)
+                       continue;
+               if (strncmp(argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler),
+                           strlen(argv[idx_lsa]->arg))
+                   == 0)
+                       break;
+               if (!strcasecmp(argv[idx_lsa]->arg, handler->name))
+                       break;
+               handler = NULL;
+       }
+
+       if (handler == NULL)
+               handler = &unknown_handler;
+
+       if (argc == 5) {
+               if (strmatch(argv[idx_type]->text, "originate"))
+                       SET_FLAG(handler->debug, OSPF6_LSA_DEBUG_ORIGINATE);
+               else if (strmatch(argv[idx_type]->text, "examine"))
+                       SET_FLAG(handler->debug, OSPF6_LSA_DEBUG_EXAMIN);
+               else if (strmatch(argv[idx_type]->text, "flooding"))
+                       SET_FLAG(handler->debug, OSPF6_LSA_DEBUG_FLOOD);
+       } else
+               SET_FLAG(handler->debug, OSPF6_LSA_DEBUG);
+
+       return CMD_SUCCESS;
 }
 
 DEFUN (no_debug_ospf6_lsa_type,
@@ -882,75 +830,69 @@ DEFUN (no_debug_ospf6_lsa_type,
        "Dump LSAs\n"
        "Display LSA's internal information\n")
 {
-  int idx_lsa = 4;
-  int idx_type = 5;
-  u_int i;
-  struct ospf6_lsa_handler *handler = NULL;
-
-  for (i = 0; i < vector_active (ospf6_lsa_handler_vector); i++)
-    {
-      handler = vector_slot (ospf6_lsa_handler_vector, i);
-      if (handler == NULL)
-        continue;
-      if (strncmp (argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler), strlen(argv[idx_lsa]->arg)) == 0)
-        break;
-      if (! strcasecmp (argv[idx_lsa]->arg, handler->name))
-        break;
-    }
-
-  if (handler == NULL)
-    return CMD_SUCCESS;
-
-  if (argc == 6)
-    {
-      if (strmatch(argv[idx_type]->text, "originate"))
-        UNSET_FLAG (handler->debug, OSPF6_LSA_DEBUG_ORIGINATE);
-      if (strmatch(argv[idx_type]->text, "examine"))
-        UNSET_FLAG (handler->debug, OSPF6_LSA_DEBUG_EXAMIN);
-      if (strmatch(argv[idx_type]->text, "flooding"))
-        UNSET_FLAG (handler->debug, OSPF6_LSA_DEBUG_FLOOD);
-    }
-  else
-    UNSET_FLAG (handler->debug, OSPF6_LSA_DEBUG);
-
-  return CMD_SUCCESS;
-}
-
-void
-install_element_ospf6_debug_lsa (void)
-{
-  install_element (ENABLE_NODE, &debug_ospf6_lsa_hex_cmd);
-  install_element (ENABLE_NODE, &no_debug_ospf6_lsa_hex_cmd);
-  install_element (CONFIG_NODE, &debug_ospf6_lsa_hex_cmd);
-  install_element (CONFIG_NODE, &no_debug_ospf6_lsa_hex_cmd);
-}
-
-int
-config_write_ospf6_debug_lsa (struct vty *vty)
-{
-  u_int i;
-  struct ospf6_lsa_handler *handler;
-
-  for (i = 0; i < vector_active (ospf6_lsa_handler_vector); i++)
-    {
-      handler = vector_slot (ospf6_lsa_handler_vector, i);
-      if (handler == NULL)
-        continue;
-      if (CHECK_FLAG (handler->debug, OSPF6_LSA_DEBUG))
-        vty_out (vty, "debug ospf6 lsa %s\n",
-                 ospf6_lsa_handler_name (handler));
-      if (CHECK_FLAG (handler->debug, OSPF6_LSA_DEBUG_ORIGINATE))
-        vty_out (vty, "debug ospf6 lsa %s originate\n",
-                 ospf6_lsa_handler_name (handler));
-      if (CHECK_FLAG (handler->debug, OSPF6_LSA_DEBUG_EXAMIN))
-        vty_out (vty, "debug ospf6 lsa %s examine\n",
-                 ospf6_lsa_handler_name (handler));
-      if (CHECK_FLAG (handler->debug, OSPF6_LSA_DEBUG_FLOOD))
-        vty_out (vty, "debug ospf6 lsa %s flooding\n",
-                 ospf6_lsa_handler_name (handler));
-    }
-
-  return 0;
-}
+       int idx_lsa = 4;
+       int idx_type = 5;
+       u_int i;
+       struct ospf6_lsa_handler *handler = NULL;
+
+       for (i = 0; i < vector_active(ospf6_lsa_handler_vector); i++) {
+               handler = vector_slot(ospf6_lsa_handler_vector, i);
+               if (handler == NULL)
+                       continue;
+               if (strncmp(argv[idx_lsa]->arg, ospf6_lsa_handler_name(handler),
+                           strlen(argv[idx_lsa]->arg))
+                   == 0)
+                       break;
+               if (!strcasecmp(argv[idx_lsa]->arg, handler->name))
+                       break;
+       }
 
+       if (handler == NULL)
+               return CMD_SUCCESS;
+
+       if (argc == 6) {
+               if (strmatch(argv[idx_type]->text, "originate"))
+                       UNSET_FLAG(handler->debug, OSPF6_LSA_DEBUG_ORIGINATE);
+               if (strmatch(argv[idx_type]->text, "examine"))
+                       UNSET_FLAG(handler->debug, OSPF6_LSA_DEBUG_EXAMIN);
+               if (strmatch(argv[idx_type]->text, "flooding"))
+                       UNSET_FLAG(handler->debug, OSPF6_LSA_DEBUG_FLOOD);
+       } else
+               UNSET_FLAG(handler->debug, OSPF6_LSA_DEBUG);
+
+       return CMD_SUCCESS;
+}
+
+void install_element_ospf6_debug_lsa(void)
+{
+       install_element(ENABLE_NODE, &debug_ospf6_lsa_hex_cmd);
+       install_element(ENABLE_NODE, &no_debug_ospf6_lsa_hex_cmd);
+       install_element(CONFIG_NODE, &debug_ospf6_lsa_hex_cmd);
+       install_element(CONFIG_NODE, &no_debug_ospf6_lsa_hex_cmd);
+}
+
+int config_write_ospf6_debug_lsa(struct vty *vty)
+{
+       u_int i;
+       struct ospf6_lsa_handler *handler;
+
+       for (i = 0; i < vector_active(ospf6_lsa_handler_vector); i++) {
+               handler = vector_slot(ospf6_lsa_handler_vector, i);
+               if (handler == NULL)
+                       continue;
+               if (CHECK_FLAG(handler->debug, OSPF6_LSA_DEBUG))
+                       vty_out(vty, "debug ospf6 lsa %s\n",
+                               ospf6_lsa_handler_name(handler));
+               if (CHECK_FLAG(handler->debug, OSPF6_LSA_DEBUG_ORIGINATE))
+                       vty_out(vty, "debug ospf6 lsa %s originate\n",
+                               ospf6_lsa_handler_name(handler));
+               if (CHECK_FLAG(handler->debug, OSPF6_LSA_DEBUG_EXAMIN))
+                       vty_out(vty, "debug ospf6 lsa %s examine\n",
+                               ospf6_lsa_handler_name(handler));
+               if (CHECK_FLAG(handler->debug, OSPF6_LSA_DEBUG_FLOOD))
+                       vty_out(vty, "debug ospf6 lsa %s flooding\n",
+                               ospf6_lsa_handler_name(handler));
+       }
 
+       return 0;
+}