summaryrefslogtreecommitdiffstats
path: root/proto/ospf/rt.h
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2004-06-11 11:36:50 +0200
committerOndrej Filip <feela@network.cz>2004-06-11 11:36:50 +0200
commit1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95 (patch)
tree13654b6d8ab69989e8b0787ec702511bb2025036 /proto/ospf/rt.h
parentb1f7229ad7d0b10fcc1fde6645c8b8ebbb3644a6 (diff)
downloadbird-1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95.tar
bird-1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95.zip
Better routing table calculation. We are ready to work with
multiple OSPF areas.
Diffstat (limited to 'proto/ospf/rt.h')
-rw-r--r--proto/ospf/rt.h43
1 files changed, 23 insertions, 20 deletions
diff --git a/proto/ospf/rt.h b/proto/ospf/rt.h
index 73fe878..ca3d057 100644
--- a/proto/ospf/rt.h
+++ b/proto/ospf/rt.h
@@ -10,31 +10,34 @@
#ifndef _BIRD_OSPF_RT_H_
#define _BIRD_OSPF_RT_H_
-struct infib
+typedef struct orta
{
- struct fib_node fn;
- u16 metric;
- u16 oldmetric;
- struct top_hash_entry *en;
- struct top_hash_entry *olden;
-};
+ int type;
+ int capa;
+ struct ospf_area *oa;
+ int metric1;
+ int metric2;
+ ip_addr nh; /* Next hop */
+ struct iface *ifa; /* Outgoing interface */
+ struct top_hash_entry *ar; /* Advertising router */
+ u32 tag;
+}
+orta;
-struct extfib
+typedef struct ort
{
struct fib_node fn;
- u16 metric;
- u16 metric2;
- ip_addr nh;
- u32 tag;
- struct iface *nhi;
- u16 oldmetric;
- u16 oldmetric2;
- ip_addr oldnh;
- u32 oldtag;
-};
+ int dest;
+#define ORT_UNDEF -1
+#define ORT_ROUTER 1
+#define ORT_NET 0
+ orta n;
+ orta o;
+}
+ort;
void ospf_rt_spf(struct proto_ospf *po);
-void init_infib(struct fib_node *fn);
-void init_efib(struct fib_node *fn);
+void ospf_rt_initort(struct fib_node *fn);
+
#endif /* _BIRD_OSPF_RT_H_ */