]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
authorOndrej Filip <feela@network.cz>
Tue, 9 Mar 1999 22:27:43 +0000 (22:27 +0000)
committerOndrej Filip <feela@network.cz>
Tue, 9 Mar 1999 22:27:43 +0000 (22:27 +0000)
configure.in
nest/proto.c
nest/protocol.h
proto/ospf/Makefile [new file with mode: 0644]
proto/ospf/config.Y [new file with mode: 0644]
proto/ospf/ospf.c [new file with mode: 0644]
proto/ospf/ospf.h [new file with mode: 0644]

index aa527a02b907ca3f2fb55f5c03201cb044111a15..185c7e6f9edcf678ac72f86725b7fb2bbffa2c6b 100644 (file)
@@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR(tools)
 
 AC_ARG_ENABLE(debug,[  --enable-debug          enable internal debugging routines (default: enabled)],,enable_debug=yes)
 AC_ARG_WITH(sysconfig,[  --with-sysconfig=FILE   use specified BIRD system configuration file])
-AC_ARG_WITH(protocols,[  --with-protocols=LIST   include specified routing protocols (default: rip,static)],,[with_protocols="rip,static"])
+AC_ARG_WITH(protocols,[  --with-protocols=LIST   include specified routing protocols (default: rip,static)],,[with_protocols="rip,static,ospf"])
 
 if test "$srcdir" = . ; then
        # Building in current directory => create obj directory holding all objects
index 1715585094407fbda9daaedf774f996695f61d4e..4df625ff486a28772f3774679acc7583c751b4f0 100644 (file)
@@ -263,6 +263,9 @@ protos_build(void)
 #endif
 #ifdef CONFIG_STATIC
   add_tail(&protocol_list, &proto_static.n);
+#endif
+#ifdef CONFIG_OSPF
+  add_tail(&protocol_list, &proto_ospf.n);
 #endif
   proto_pool = rp_new(&root_pool, "Protocols");
   proto_flush_event = ev_new(proto_pool);
index cb30754fe2bb1823600742af8a987905bf506994..a1ee2b8b42d33459791bfd93917aa333625739d3 100644 (file)
@@ -58,6 +58,7 @@ extern list protocol_list;
 extern struct protocol proto_device;
 extern struct protocol proto_rip;
 extern struct protocol proto_static;
+extern struct protocol proto_ospf;
 
 /*
  *     Routing Protocol Instance
diff --git a/proto/ospf/Makefile b/proto/ospf/Makefile
new file mode 100644 (file)
index 0000000..0bd05d0
--- /dev/null
@@ -0,0 +1,6 @@
+source=ospf.c
+root-rel=../../
+dir-name=proto/ospf
+
+include ../../Rules
+
diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y
new file mode 100644 (file)
index 0000000..3f41623
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ *     BIRD -- OSPF Configuration
+ *
+ *     (c) 1999 Ondrej Filip <feela@network.cz>
+ *
+ *     Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+CF_HDR
+
+#include "proto/ospf/ospf.h"
+
+CF_DECLS
+
+CF_KEYWORDS(OSPF, AREA)
+
+CF_GRAMMAR
+
+CF_ADDTO(proto, ospf_proto '}')
+
+ospf_proto_start: proto_start OSPF {
+     this_proto = proto_config_new(&proto_ospf, sizeof(struct ospf_config));
+  }
+ ;
+
+ospf_proto:
+   ospf_proto_start proto_name '{'
+   | ospf_proto proto_item ';'
+ | ospf_proto ospf_area ';'
+ ;
+
+ospf_area: AREA IPA {
+    ((struct ospf_config *)this_proto)->area = $2;
+ }
+ ;
+
+CF_CODE
+
+CF_END
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
new file mode 100644 (file)
index 0000000..25a0bea
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ *     BIRD -- OSPF
+ *
+ *     (c) 1999 Ondrej Filip <feela@network.cz>
+ *
+ *     Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+#define LOCAL_DEBUG
+
+#include <string.h>
+
+#include "nest/bird.h"
+#include "nest/iface.h"
+#include "nest/protocol.h"
+#include "nest/route.h"
+#include "conf/conf.h"
+
+#include "ospf.h"
+
+
+static int
+ospf_start(struct proto *p)
+{
+  struct ospf_config *c = (void *) p->cf;
+
+  DBG(" OSPF: Start\n");
+  return PS_UP;
+}
+
+static void
+ospf_dump(struct proto *p)
+{
+  char areastr[20];
+  struct ospf_config *c = (void *) p->cf;
+
+  DBG(" OSPF: Dump.\n");
+  debug(" -AreaID: %d\n", c->area );
+}
+
+static struct proto *
+ospf_init(struct proto_config *c)
+{
+  struct proto *p = proto_new(c, sizeof(struct proto));
+
+  DBG(" OSPF: Init.\n");
+  p->neigh_notify = NULL;
+  p->if_notify = NULL;
+  return p;
+}
+
+static void
+ospf_preconfig(struct protocol *x, struct config *c)
+{
+  DBG( " OSPF: preconfig\n" );
+}
+
+static void
+ospf_postconfig(struct proto_config *c)
+{
+  DBG( " OSPF: postconfig\n" );
+}
+
+
+struct protocol proto_ospf = {
+  name:                "OSPF",
+  init:                ospf_init,
+  dump:                ospf_dump,
+  start:       ospf_start,
+  preconfig:   ospf_preconfig,
+  postconfig:  ospf_postconfig,
+
+};
+
diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h
new file mode 100644 (file)
index 0000000..4e165f8
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ *     BIRD -- OSPF
+ *
+ *     (c) 1999 Ondrej Filip <feela@network.cz>
+ *
+ *     Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+#ifndef _BIRD_OSPF_H_
+#define _BIRD_OSPF_H_
+
+struct ospf_config {
+  struct proto_config c;
+  ip_addr area;                /* Area ID */
+};
+
+#endif /* _BIRD_OSPF_H_ */