diff --git a/ospf6d/ospf6_flood.h b/ospf6d/ospf6_flood.h
index 4851c14..3a6f300 100644
--- a/ospf6d/ospf6_flood.h
+++ b/ospf6d/ospf6_flood.h
@@ -32,34 +32,34 @@
   (conf_debug_ospf6_flooding)
 
 /* Function Prototypes */
-struct ospf6_lsdb *ospf6_get_scoped_lsdb (struct ospf6_lsa *lsa);
-struct ospf6_lsdb *ospf6_get_scoped_lsdb_self (struct ospf6_lsa *lsa);
+extern struct ospf6_lsdb *ospf6_get_scoped_lsdb (struct ospf6_lsa *lsa);
+extern struct ospf6_lsdb *ospf6_get_scoped_lsdb_self (struct ospf6_lsa *lsa);
 
 /* origination & purging */
-void ospf6_lsa_originate (struct ospf6_lsa *lsa);
-void ospf6_lsa_originate_process (struct ospf6_lsa *lsa,
-                                  struct ospf6 *process);
-void ospf6_lsa_originate_area (struct ospf6_lsa *lsa,
-                               struct ospf6_area *oa);
-void ospf6_lsa_originate_interface (struct ospf6_lsa *lsa,
-                                    struct ospf6_interface *oi);
-void ospf6_lsa_purge (struct ospf6_lsa *lsa);
+extern void ospf6_lsa_originate (struct ospf6_lsa *lsa);
+extern void ospf6_lsa_originate_process (struct ospf6_lsa *lsa,
+                                         struct ospf6 *process);
+extern void ospf6_lsa_originate_area (struct ospf6_lsa *lsa,
+                                     struct ospf6_area *oa);
+extern void ospf6_lsa_originate_interface (struct ospf6_lsa *lsa,
+                                           struct ospf6_interface *oi);
+extern void ospf6_lsa_purge (struct ospf6_lsa *lsa);
 
 /* access method to retrans_count */
-void ospf6_increment_retrans_count (struct ospf6_lsa *lsa);
-void ospf6_decrement_retrans_count (struct ospf6_lsa *lsa);
+extern void ospf6_increment_retrans_count (struct ospf6_lsa *lsa);
+extern void ospf6_decrement_retrans_count (struct ospf6_lsa *lsa);
 
 /* flooding & clear flooding */
-void ospf6_flood_clear (struct ospf6_lsa *lsa);
-void ospf6_flood (struct ospf6_neighbor *from, struct ospf6_lsa *lsa);
+extern void ospf6_flood_clear (struct ospf6_lsa *lsa);
+extern void ospf6_flood (struct ospf6_neighbor *from, struct ospf6_lsa *lsa);
 
 /* receive & install */
-void ospf6_receive_lsa (struct ospf6_neighbor *from,
-                        struct ospf6_lsa_header *header);
-void ospf6_install_lsa (struct ospf6_lsa *lsa);
+extern void ospf6_receive_lsa (struct ospf6_neighbor *from,
+                               struct ospf6_lsa_header *header);
+extern void ospf6_install_lsa (struct ospf6_lsa *lsa);
 
-int config_write_ospf6_debug_flood (struct vty *vty);
-void install_element_ospf6_debug_flood ();
+extern int config_write_ospf6_debug_flood (struct vty *vty);
+extern void install_element_ospf6_debug_flood (void);
 
 #endif /* OSPF6_FLOOD_H */
 
