diff options
author | Michael Lambert <lambert@psc.edu> | 2010-07-24 12:44:07 -0400 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2011-03-21 17:30:52 +0000 |
commit | 2c9fd7e07283b8904ef20030c9dadb032e999b12 (patch) | |
tree | e134706cdc5c91daf0002ef3e2d22d12b09cb758 /bgpd/bgp_community.h | |
parent | 95cbbd2ace2f88019a7a54e67b4b12aaeda177f7 (diff) |
bgpd: "Intern" communities in route maps
* bgp_community.[ch]: (community_lookup) New helper function to look
up a community list in the hash table.
* bgp_routemap.c: A new community structure was being allocated for
every BGP update which matched a route map which set a community.
This behavior led to rapid growth in the memory consumed by bgpd.
Adding the communities to the hash table addresses the memory
growth, but may introduce a problem in modifying or deleting the
'set community' statement in the route map.
Diffstat (limited to 'bgpd/bgp_community.h')
-rw-r--r-- | bgpd/bgp_community.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/bgpd/bgp_community.h b/bgpd/bgp_community.h index bc1e56ef..78cbfe2b 100644 --- a/bgpd/bgp_community.h +++ b/bgpd/bgp_community.h @@ -70,5 +70,6 @@ extern int community_include (struct community *, u_int32_t); extern void community_del_val (struct community *, u_int32_t *); extern unsigned long community_count (void); extern struct hash *community_hash (void); +extern struct community *community_lookup (struct community *); #endif /* _QUAGGA_BGP_COMMUNITY_H */ |