]> git.puffer.fish Git - matthieu/frr.git/commit
Quagga: Make sure order of route-maps in list and hash table matches
authorvivek <vivek@cumulusnetworks.com>
Wed, 18 May 2016 21:08:55 +0000 (14:08 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 20 May 2016 13:35:20 +0000 (09:35 -0400)
commit7d3280f1dc9be4d28aa20a870ea933b91c933524
treed705b2641c43589edb5701cfb7ece5e3575d2590
parent284cf39351d74f996d1576ae1dbf28186c6cf621
Quagga: Make sure order of route-maps in list and hash table matches

Quick create/delete actions on a route-map can result in the same route-map
entity having multiple entries created for it — because BGP hasn't run the
update processing to complete prior delete action. The route-map is present
in both a hash table as well as a linked list and the order in each is
different. This can lead to problems when the BGP route-map update processing
runs and finds the same route-map entity present for deletion multiple times.
For example, while processing instance-2 of rmap-A, the code may end up
freeing the hash bucket corresponding to instance-1 of rmap-A.

The fix works by ensuring the list is ordered the same way as the hash
buckets.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Shrijeet Mukherjee <shm@cumulusnetworks.com>
Ticket: CM-10023
Reviewed By: CCR-4747
Testing Done: manual, bgp-smoke
lib/routemap.c