diff options
author | Ondrej Filip <feela@network.cz> | 2000-01-05 01:03:47 +0100 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-01-05 01:03:47 +0100 |
commit | 150875747813977ddf12474fa10a771090586402 (patch) | |
tree | 8e74d517989c3f7fb7ceda4db1101d36907bfa05 | |
parent | 7a7c1d9f34b95263d3bc100dec6cf3b94f1a9802 (diff) | |
download | bird-150875747813977ddf12474fa10a771090586402.tar bird-150875747813977ddf12474fa10a771090586402.zip |
Preparing for building LS databaze. Huh, why is it so complicated? :-(
Adding definition of some constants.
-rw-r--r-- | proto/ospf/ospf.c | 19 | ||||
-rw-r--r-- | proto/ospf/ospf.h | 21 |
2 files changed, 35 insertions, 5 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index ccaad53..db77336 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -17,7 +17,11 @@ ospf_start(struct proto *p) p->if_notify=ospf_if_notify; /* Create graph of LSA's */ - po->gr=ospf_top_new(po); + po->areano=1; /* FIXME should respect config! */ + po->firstarea=(struct ospf_area *)malloc(sizeof(struct ospf_area)); + po->firstarea->gr=ospf_top_new(po); + po->firstarea->next=NULL; + po->firstarea->areaid=0; return PS_UP; } @@ -30,6 +34,7 @@ ospf_dump(struct proto *p) struct ospf_neighbor *n; struct ospf_config *c = (void *) p->cf; struct proto_ospf *po=(struct proto_ospf *)p; + struct ospf_area *oa; debug("%s: AreaID: %u\n", p->name, c->area ); @@ -45,9 +50,15 @@ ospf_dump(struct proto *p) } } - debug("\n%s: LSA graph dump start:\n", p->name); - ospf_top_dump(po->gr); - debug("%s: LSA graph dump finished\n\n", p->name); + oa=po->firstarea; + while(oa!=NULL) + { + debug("\n%s: LSA graph dump for area \"%d\" start:\n", p->name,oa->areaid); + ospf_top_dump(oa->gr); + debug("%s: LSA graph dump for area \"%d\" finished\n\n", p->name, + oa->areaid); + oa=oa->next; + } } diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h index 5b8758b..647deba 100644 --- a/proto/ospf/ospf.h +++ b/proto/ospf/ospf.h @@ -38,6 +38,18 @@ #error Multicast address not defined in IPv6 #endif + +#define LSREFRESHTIME 1800 /* 30 minut */ +#define MINLSINTERVAL 5 +#define MINLSARRIVAL 1 +#define MAXAGE 3600 /* 1 hour */ +#define CHECKAGE 300 /* 5 min */ +#define MAXAGEDIFF 900 /* 15 min */ +#define LSINFINITY 0xffffff +/*#define DEFAULTDES 0.0.0.0 FIXME: How to define it? */ +#define INITSEQNUM 0x80000001 /* Initial Sequence Number */ +#define MAXSEQNUM 0x7fffffff /* Maximal Sequence Number */ + struct ospf_config { struct proto_config c; u32 area; /* FIXME: Area ID !!! This is wrong !!! @@ -197,10 +209,17 @@ struct ospf_neighbor #define INM_INACTTIM 11 /* Inactivity timer */ #define INM_LLDOWN 12 /* Line down */ +struct ospf_area { + struct ospf_area *next; + u32 areaid; + struct top_graph *gr; /* LSA graph */ +}; + struct proto_ospf { struct proto proto; list iface_list; /* Interfaces we really use */ - struct top_graph *gr; /* LSA graph */ + int areano; /* Number of area I belong to */ + struct ospf_area *firstarea; }; static int ospf_start(struct proto *p); |