diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 967cdb5..fef6b16 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -50,7 +50,7 @@
 #include "ospfd/ospf_ase.h"
 #include "ospfd/ospf_zebra.h"
 
-
+
 u_int32_t
 get_metric (u_char *metric)
 {
@@ -61,7 +61,7 @@
   return m;
 }
 
-
+
 struct timeval
 tv_adjust (struct timeval a)
 {
@@ -159,7 +159,7 @@
   return delay;
 }
 
-
+
 int
 get_age (struct ospf_lsa *lsa)
 {
@@ -171,7 +171,7 @@
   return age;
 }
 
-
+
 /* Fletcher Checksum -- Refer to RFC1008. */
 
 /* All the offsets are zero-based. The offsets in the RFC1008 are 
@@ -205,7 +205,7 @@
 }
 
 
-
+
 /* Create OSPF LSA. */
 struct ospf_lsa *
 ospf_lsa_new ()
@@ -341,7 +341,7 @@
   XFREE (MTYPE_OSPF_LSA_DATA, lsah);
 }
 
-
+
 /* LSA general functions. */
 
 const char *
@@ -393,7 +393,7 @@
 
   stream_forward_endp (s, OSPF_LSA_HEADER_SIZE);
 }
-
+
 
 /* router-LSA related functions. */
 /* Get router-LSA flags. */
@@ -746,7 +746,7 @@
   /* Set # of links here. */
   stream_putw_at (s, putp, cnt);
 }
-
+
 static int
 ospf_stub_router_timer (struct thread *t)
 {
@@ -803,7 +803,7 @@
   OSPF_AREA_TIMER_ON (area->t_stub_router, ospf_stub_router_timer,
                       area->ospf->stub_router_startup_time);
 }
- 
+ 
 /* Create new router-LSA. */
 static struct ospf_lsa *
 ospf_router_lsa_new (struct ospf_area *area)
@@ -1005,7 +1005,7 @@
   return 0;
 }
 
-
+
 /* network-LSA related functions. */
 /* Originate Network-LSA. */
 static void
@@ -1184,7 +1184,7 @@
 
   return new;
 }
-
+
 static void
 stream_put_ospf_metric (struct stream *s, u_int32_t metric_value)
 {
@@ -1343,7 +1343,7 @@
   return new;
 }
 
-
+
 /* summary-ASBR-LSA related functions. */
 static void
 ospf_summary_asbr_lsa_body_set (struct stream *s, struct prefix *p,
@@ -2377,7 +2377,7 @@
   return new;
 }
 
-
+
 /* LSA installation functions. */
 
 /* Install router-LSA to an area. */
@@ -2802,7 +2802,7 @@
   return new;
 }
 
-
+
 int
 ospf_check_nbr_status (struct ospf *ospf)
 {
@@ -2827,7 +2827,7 @@
   return 1;
 }
 
-
+
 
 static int
 ospf_maxage_lsa_remover (struct thread *thread)
@@ -3539,7 +3539,7 @@
   return id;
 }
 
-
+
 #define LSA_ACTION_FLOOD_AREA 1
 #define LSA_ACTION_FLUSH_AREA 2
 
@@ -3602,7 +3602,7 @@
   thread_add_event (master, ospf_lsa_action, data, 0);
 }
 
-
+
 /* LSA Refreshment functions. */
 struct ospf_lsa *
 ospf_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
