diff --git a/isisd/isis_spf.h b/isisd/isis_spf.h
new file mode 100644
index 0000000..59e4b6b
--- /dev/null
+++ b/isisd/isis_spf.h
@@ -0,0 +1,85 @@
+/*
+ * IS-IS Rout(e)ing protocol - isis_spf.h
+ *                             IS-IS Shortest Path First algorithm  
+ *
+ * Copyright (C) 2001,2002   Sampo Saaristo
+ *                           Tampere University of Technology      
+ *                           Institute of Communications Engineering
+ *
+ * This program is free software; you can redistribute it and/or modify it 
+ * under the terms of the GNU General Public Licenseas published by the Free 
+ * Software Foundation; either version 2 of the License, or (at your option) 
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT 
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+ * more details.
+
+ * You should have received a copy of the GNU General Public License along 
+ * with this program; if not, write to the Free Software Foundation, Inc., 
+ * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifndef _ZEBRA_ISIS_SPF_H
+#define _ZEBRA_ISIS_SPF_H
+
+enum vertextype {
+  VTYPE_PSEUDO_IS = 1,
+  VTYPE_NONPSEUDO_IS,
+  VTYPE_ES,
+  VTYPE_IPREACH_INTERNAL,
+  VTYPE_IPREACH_EXTERNAL
+#ifdef HAVE_IPV6
+  , 
+  VTYPE_IP6REACH_INTERNAL,
+  VTYPE_IP6REACH_EXTERNAL
+#endif /* HAVE_IPV6 */ 
+};
+
+/*
+ * Triple <N, d(N), {Adj(N)}> 
+ */
+struct isis_vertex
+{
+  enum vertextype type;
+
+  union {
+    u_char id [ISIS_SYS_ID_LEN + 1];
+    struct prefix prefix;
+  } N;
+  
+  struct isis_lsp *lsp;
+  u_int32_t d_N;   /* d(N) Distance from this IS      */
+  u_int16_t depth; /* The depth in the imaginary tree */
+
+  struct list *Adj_N; /* {Adj(N)}  */
+}; 
+
+
+struct isis_spftree
+{
+  struct thread *t_spf_periodic;  /* periodic spf threads  */
+  time_t                lastrun;  /* for scheduling */
+  int                   pending;  /* already scheduled */
+  struct list            *paths;  /* the SPT */
+  struct list            *tents;  /* TENT */
+
+  u_int32_t             timerun;  /* statistics */
+};
+
+void spftree_area_init (struct isis_area *area);
+int isis_spf_schedule (struct isis_area *area, int level);
+void isis_spf_cmds_init (void);
+#ifdef HAVE_IPV6
+int isis_spf_schedule6 (struct isis_area *area, int level);
+#endif
+#endif /* _ZEBRA_ISIS_SPF_H */
+
+
+
+
+
+
+
+
