[quagga-dev 16622] Too much memory allocation for BGP route aggregation

LT C chenlt_work at 126.com
Tue May 23 09:34:37 BST 2017

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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quagga.net/pipermail/quagga-dev/attachments/20170523/ce6db4a4/attachment.html>

More information about the Quagga-dev mailing list