/*
* BIRD -- OSPF Configuration
*
- * (c) 1999 Ondrej Filip <feela@network.cz>
+ * (c) 1999-2000 Ondrej Filip <feela@network.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
#include "proto/ospf/ospf.h"
+CF_DEFINES
+
+#define OSPF_CFG ((struct ospf_config *) this_proto)
+
CF_DECLS
CF_KEYWORDS(OSPF, AREA, OSPF_METRIC1, OSPF_METRIC2, OSPF_TAG)
-CF_KEYWORDS(NEIGHBORS)
+CF_KEYWORDS(NEIGHBORS, RFC1583COMPAT)
%type <t> opttext
ospf_proto:
ospf_proto_start proto_name '{'
- | ospf_proto proto_item ';'
+ | ospf_proto proto_item ';'
| ospf_proto ospf_area ';'
+ | ospf_proto RFC1583COMPAT bool ';' { OSPF_CFG->rfc1583 = $3; }
;
ospf_area: AREA idval {
{
struct proto *p = proto_new(c, sizeof(struct proto_ospf));
struct proto_ospf *po=(struct proto_ospf *)p;
+ struct ospf_config *oc=(struct ospf_config *)c;
debug("OSPF: Init requested.\n");
p->import_control = ospf_import_control;
p->rte_better = ospf_rte_better;
p->rte_same = ospf_rte_same;
+ po->rfc1583=oc->rfc1583;
+
return p;
}
struct ospf_config {
struct proto_config c;
+ int rfc1583;
u32 area; /* FIXME: Area ID !!! This is wrong !!!
* Should respect interface */
};
list area_list;
int areano; /* Number of area I belong to */
struct fib efib; /* FIB for external routes */
+ int rfc1583;
};
static int ospf_start(struct proto *p);