diff options
author | Ondrej Filip <feela@network.cz> | 1999-11-17 15:50:41 +0000 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 1999-11-17 15:50:41 +0000 |
commit | 4364b47e48ddedb841e8ec8db25c8b4fa878a911 (patch) | |
tree | 5a74249c27264f814a0c3fa0f446bb79d35b2d13 /proto/ospf/topology.h | |
parent | bff1db76292b194bbbf0c476d960f40aa0ea47ce (diff) |
ospf.c and ospc.h splitted into various files.
Diffstat (limited to 'proto/ospf/topology.h')
-rw-r--r-- | proto/ospf/topology.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/proto/ospf/topology.h b/proto/ospf/topology.h new file mode 100644 index 00000000..b35c4543 --- /dev/null +++ b/proto/ospf/topology.h @@ -0,0 +1,39 @@ +/* + * BIRD -- OSPF + * + * (c) 1999 Ondrej Filip <feela@network.cz> + * + * 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_ */ |