diff --git a/ospfd/ospf_nsm.h b/ospfd/ospf_nsm.h
index 3d25730..fe42f7a 100644
--- a/ospfd/ospf_nsm.h
+++ b/ospfd/ospf_nsm.h
@@ -54,38 +54,37 @@
 #define OSPF_NSM_EVENT_MAX     14
 
 /* Macro for OSPF NSM timer turn on. */
-#define OSPF_NSM_TIMER_ON(T,F,V) \
-      do { \
-        if (!(T)) \
-          (T) = thread_add_timer (master, (F), nbr, (V)); \
+#define OSPF_NSM_TIMER_ON(T,F,V)                                              \
+      do {                                                                    \
+        if (!(T))                                                             \
+          (T) = thread_add_timer (master, (F), nbr, (V));                     \
       } while (0)
 
 /* Macro for OSPF NSM timer turn off. */
-#define OSPF_NSM_TIMER_OFF(X) \
-      do { \
-        if (X) \
-          { \
-            thread_cancel (X); \
-            (X) = NULL; \
-          } \
+#define OSPF_NSM_TIMER_OFF(X)                                                 \
+      do {                                                                    \
+        if (X)                                                                \
+          {                                                                   \
+            thread_cancel (X);                                                \
+            (X) = NULL;                                                       \
+          }                                                                   \
       } while (0)
 
 /* Macro for OSPF NSM schedule event. */
-#define OSPF_NSM_EVENT_SCHEDULE(N,E) \
+#define OSPF_NSM_EVENT_SCHEDULE(N,E)                                          \
       thread_add_event (master, ospf_nsm_event, (N), (E))
 
 /* Macro for OSPF NSM execute event. */
-#define OSPF_NSM_EVENT_EXECUTE(N,E) \
+#define OSPF_NSM_EVENT_EXECUTE(N,E)                                           \
       thread_execute (master, ospf_nsm_event, (N), (E))
 
 /* Prototypes. */
-int ospf_nsm_event (struct thread *);
-void nsm_change_state (struct ospf_neighbor *, int);
-void ospf_check_nbr_loading (struct ospf_neighbor *);
-int ospf_db_summary_isempty (struct ospf_neighbor *);
-int ospf_db_summary_count (struct ospf_neighbor *);
-void ospf_db_summary_clear (struct ospf_neighbor *);
-/* void ospf_db_summary_delete_all (struct ospf_neighbor *); */
+extern int ospf_nsm_event (struct thread *);
+extern void nsm_change_state (struct ospf_neighbor *, int);
+extern void ospf_check_nbr_loading (struct ospf_neighbor *);
+extern int ospf_db_summary_isempty (struct ospf_neighbor *);
+extern int ospf_db_summary_count (struct ospf_neighbor *);
+extern void ospf_db_summary_clear (struct ospf_neighbor *);
 
 #endif /* _ZEBRA_OSPF_NSM_H */
 
