diff --git a/isisd/isis_lsp.h b/isisd/isis_lsp.h
index 71a7508..c6eb7c2 100644
--- a/isisd/isis_lsp.h
+++ b/isisd/isis_lsp.h
@@ -26,7 +26,7 @@
 
 /* The grand plan is to support 1024 circuits so we have 32*32 bit flags
  * the support will be achived using the newest drafts */
-#define ISIS_MAX_CIRCUITS 32 /* = 1024 */ /*FIXME:defined in flags.h as well*/
+#define ISIS_MAX_CIRCUITS 32 /* = 1024 - FIXME:defined in flags.h as well */
 
 /* Structure for isis_lsp, this structure will only support the fixed
  * System ID (Currently 6) (atleast for now). In order to support more
@@ -34,19 +34,20 @@
  * sake it should better be avoided */
 struct isis_lsp
 {
-  struct isis_fixed_hdr *isis_header;       /* normally equals pdu */
-  struct isis_link_state_hdr *lsp_header;   /* pdu + isis_header_len */
-  struct stream *pdu;                       /* full pdu lsp */
-  union {
+  struct isis_fixed_hdr *isis_header;		/* normally equals pdu */
+  struct isis_link_state_hdr *lsp_header;	/* pdu + isis_header_len */
+  struct stream *pdu;				/* full pdu lsp */
+  union
+  {
     struct list *frags;
     struct isis_lsp *zero_lsp;
   } lspu;
   u_int32_t SRMflags[ISIS_MAX_CIRCUITS];
   u_int32_t SSNflags[ISIS_MAX_CIRCUITS];
   u_int32_t rexmit_queue[ISIS_MAX_CIRCUITS];
-  int level;                                /* L1 or L2? */
-  int purged;                               /* have purged this one */
-  int scheduled;                            /* scheduled for sending */
+  int level;			/* L1 or L2? */
+  int purged;			/* have purged this one */
+  int scheduled;		/* scheduled for sending */
   time_t installed;
   time_t last_generated;
   time_t last_sent;
@@ -56,13 +57,13 @@
   struct thread *t_lsp_top_ref;
 #endif
   /* used for 60 second counting when rem_lifetime is zero */
-  int age_out; 
+  int age_out;
   struct isis_adjacency *adj;
-  struct tlvs tlv_data;                     /* Simplifies TLV access */
+  struct tlvs tlv_data;		/* Simplifies TLV access */
 };
 
 dict_t *lsp_db_init (void);
-void lsp_db_destroy (dict_t *lspdb);
+void lsp_db_destroy (dict_t * lspdb);
 int lsp_tick (struct thread *thread);
 
 int lsp_l1_generate (struct isis_area *area);
@@ -73,31 +74,31 @@
 
 int lsp_l1_pseudo_generate (struct isis_circuit *circuit);
 int lsp_l2_pseudo_generate (struct isis_circuit *circuit);
-int lsp_l1_refresh_pseudo  (struct thread *thread);
-int lsp_l2_refresh_pseudo  (struct thread *thread);
+int lsp_l1_refresh_pseudo (struct thread *thread);
+int lsp_l2_refresh_pseudo (struct thread *thread);
 int isis_lsp_authinfo_check (struct stream *stream, struct isis_area *area,
-			     int  pdulen, struct isis_passwd *passwd);
-struct isis_lsp *lsp_new (u_char *lsp_id, u_int16_t rem_lifetime, 
-                          u_int32_t seq_num, u_int8_t lsp_bits, 
-                          u_int16_t checksum, int level);
-struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream, 
-					  u_int16_t pdu_len,  
-                                          struct isis_lsp *lsp0, 
-                                          struct isis_area *area);
-void lsp_insert (struct isis_lsp *lsp, dict_t *lspdb);
-struct isis_lsp *lsp_search (u_char *id, dict_t *lspdb);
+			     int pdulen, struct isis_passwd *passwd);
+struct isis_lsp *lsp_new (u_char * lsp_id, u_int16_t rem_lifetime,
+			  u_int32_t seq_num, u_int8_t lsp_bits,
+			  u_int16_t checksum, int level);
+struct isis_lsp *lsp_new_from_stream_ptr (struct stream *stream,
+					  u_int16_t pdu_len,
+					  struct isis_lsp *lsp0,
+					  struct isis_area *area);
+void lsp_insert (struct isis_lsp *lsp, dict_t * lspdb);
+struct isis_lsp *lsp_search (u_char * id, dict_t * lspdb);
 
-void lsp_build_list (u_char *start_id, u_char *stop_id, 
-                     struct list *list, dict_t *lspdb);
-void lsp_build_list_nonzero_ht (u_char *start_id, u_char *stop_id, 
-                                struct list *list, dict_t *lspdb);
-void lsp_build_list_ssn (struct isis_circuit *circuit, struct list *list, 
-                         dict_t *lspdb);
+void lsp_build_list (u_char * start_id, u_char * stop_id,
+		     struct list *list, dict_t * lspdb);
+void lsp_build_list_nonzero_ht (u_char * start_id, u_char * stop_id,
+				struct list *list, dict_t * lspdb);
+void lsp_build_list_ssn (struct isis_circuit *circuit, struct list *list,
+			 dict_t * lspdb);
 
-void lsp_search_and_destroy (u_char *id, dict_t *lspdb);
-void lsp_purge_dr (u_char *id, struct isis_circuit *circuit, int level);
-void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr, 
-                          struct isis_area *area);
+void lsp_search_and_destroy (u_char * id, dict_t * lspdb);
+void lsp_purge_dr (u_char * id, struct isis_circuit *circuit, int level);
+void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
+			  struct isis_area *area);
 
 #define LSP_EQUAL 1
 #define LSP_NEWER 2
@@ -109,24 +110,24 @@
         memcpy ((I), isis->sysid, ISIS_SYS_ID_LEN);\
         (I)[ISIS_SYS_ID_LEN] = 0;\
         (I)[ISIS_SYS_ID_LEN + 1] = 0
-int lsp_id_cmp (u_char *id1, u_char *id2);
-int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num, 
-                 u_int16_t checksum, u_int16_t rem_lifetime);
+int lsp_id_cmp (u_char * id1, u_char * id2);
+int lsp_compare (char *areatag, struct isis_lsp *lsp, u_int32_t seq_num,
+		 u_int16_t checksum, u_int16_t rem_lifetime);
 void lsp_update (struct isis_lsp *lsp, struct isis_link_state_hdr *lsp_hdr,
-                 struct stream *stream, struct isis_area *area);
+		 struct stream *stream, struct isis_area *area);
 void lsp_inc_seqnum (struct isis_lsp *lsp, u_int32_t seq_num);
-int lsp_print_all (struct vty *vty, dict_t *lspdb, char detail, char dynhost);
+int lsp_print_all (struct vty *vty, dict_t * lspdb, char detail,
+		   char dynhost);
 char *lsp_bits2string (u_char *);
 
 /* staticly assigned vars for printing purposes */
-char lsp_bits_string[200]; /* FIXME: enough ? */
+char lsp_bits_string[200];	/* FIXME: enough ? */
 
 #ifdef TOPOLOGY_GENERATE
 void generate_topology_lsps (struct isis_area *area);
 void remove_topology_lsps (struct isis_area *area);
 void build_topology_lsp_data (struct isis_lsp *lsp,
-            struct isis_area *area, int lsp_top_num);
+			      struct isis_area *area, int lsp_top_num);
 #endif /* TOPOLOGY_GENERATE */
 
 #endif /* ISIS_LSP */
-
