diff options
author | Ondrej Filip <feela@network.cz> | 2000-02-24 00:26:10 +0000 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-02-24 00:26:10 +0000 |
commit | ab56f6b16fd9401565a066122be3231dccd24fb6 (patch) | |
tree | 4c48d05245a41d912511857db02f058d8371fbf6 /proto/ospf/topology.c | |
parent | ea28da044af9a35407724ba091d9a823c1cfe7e7 (diff) |
Area work and router LSA starts when interface goes up.
Diffstat (limited to 'proto/ospf/topology.c')
-rw-r--r-- | proto/ospf/topology.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index db2065bb..60dbd4f9 100644 --- a/proto/ospf/topology.c +++ b/proto/ospf/topology.c @@ -23,6 +23,40 @@ #define HASH_LO_STEP 2 #define HASH_LO_MIN 8 +void +addifa_rtlsa(struct ospf_iface *ifa) +{ + struct ospf_area *oa; + struct proto_ospf *po; + + po=ifa->proto; + oa=po->firstarea; + + while(oa!=NULL) + { + if(oa->areaid==ifa->area) break; + oa=oa->next; + } + + if(oa!=NULL) /* Known area */ + { + /**/; + } + else /* New area */ + { + po->areano++; + oa=po->firstarea; + po->firstarea=sl_alloc(po->areaslab); + po->firstarea->next=oa; + po->firstarea->areaid=ifa->area; + po->firstarea->gr=ospf_top_new(po); + } + + /* FIXME Go on, change router lsa, bits and so on... */ +} + + + static void ospf_top_ht_alloc(struct top_graph *f) { |