Mailing List Archive

Too much memory allocation for BGP route aggregation
Hi,

If "aggregate-address" is set with the option summary-only, the suppress count will be changed and bgp_process() be called in bgp_aggregate_delete() and bgp_aggregate_route() when the incoming prefix matches the configured aggregate address. A call to bgp_process() will allocate three types of memory buffer called MTYPE_LINK_NODE, MTYPE_WORK_QUEUE_ITEM and MTYPE_BGP_PROCESS_QUEUE, because it queues the process and puts it into the backgroud thread list. When we do a stress testing including quite many injected prefixes, such as 4K or more, the memory is consumed on a scale of n^2, i.e., almost 4096^2 for this case. This consumes about 1.5G memory in real testing and should be unacceptable.
Is there any better treatment for this problem?

Liting