summaryrefslogtreecommitdiffstats
path: root/proto/ospf/topology.c
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2000-02-24 01:26:10 +0100
committerOndrej Filip <feela@network.cz>2000-02-24 01:26:10 +0100
commitab56f6b16fd9401565a066122be3231dccd24fb6 (patch)
tree4c48d05245a41d912511857db02f058d8371fbf6 /proto/ospf/topology.c
parentea28da044af9a35407724ba091d9a823c1cfe7e7 (diff)
downloadbird-ab56f6b16fd9401565a066122be3231dccd24fb6.tar
bird-ab56f6b16fd9401565a066122be3231dccd24fb6.zip
Area work and router LSA starts when interface goes up.
Diffstat (limited to 'proto/ospf/topology.c')
-rw-r--r--proto/ospf/topology.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c
index db2065b..60dbd4f 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)
{