From 4364b47e48ddedb841e8ec8db25c8b4fa878a911 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Wed, 17 Nov 1999 15:50:41 +0000 Subject: ospf.c and ospc.h splitted into various files. --- proto/ospf/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 proto/ospf/topology.h (limited to 'proto/ospf/topology.h') diff --git a/proto/ospf/topology.h b/proto/ospf/topology.h new file mode 100644 index 0000000..b35c454 --- /dev/null +++ b/proto/ospf/topology.h @@ -0,0 +1,39 @@ +/* + * BIRD -- OSPF + * + * (c) 1999 Ondrej Filip + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#ifndef _BIRD_OSPF_TOPOLOGY_H_ +#define _BIRD_OSPF_TOPOLOGY_H_ + +struct top_hash_entry { /* Index for fast mapping (type,rtrid,LSid)->vertex */ + struct top_hash_entry *next; /* Next in hash chain */ + struct top_vertex *vertex; + u32 lsa_id, rtr_id; + u16 lsa_type; + u16 pad; +}; + +struct top_graph { + pool *pool; /* Pool we allocate from */ + slab *hash_slab; /* Slab for hash entries */ + struct top_hash_entry **hash_table; /* Hashing (modelled a`la fib) */ + unsigned int hash_size; + unsigned int hash_order; + unsigned int hash_mask; + unsigned int hash_entries; + unsigned int hash_entries_min, hash_entries_max; +}; + +struct top_graph *ospf_top_new(struct proto_ospf *); +void ospf_top_free(struct top_graph *); +void ospf_top_dump(struct top_graph *); +struct top_hash_entry *ospf_hash_find(struct top_graph *, u32 lsa, u32 rtr, u32 type); +struct top_hash_entry *ospf_hash_get(struct top_graph *, u32 lsa, u32 rtr, u32 type); +void ospf_hash_delete(struct top_graph *, struct top_hash_entry *); + + +#endif /* _BIRD_OSPF_TOPOLOGY_H_ */ -- cgit v1.2.3