Currently mirror metadata is stored in index table using flow index
as key. Before the Flow eviction, the addition and deletion of this meta
data to Index table is always from Agent and hence no parallel
manipulation of Index table. After eviction, the metadata deletion from
index table can happen in parallel and hence leading to memory
corruption/leak in index table manipulation.
The right fix is making the index table SMP ready. As a stop gap fix,
the mirror metada data pointer is stored in the flow entry itself
directly.
Reviewed: https:/ /review. opencontrail. org/40943 github. com/Juniper/ contrail- vrouter/ commit/ b04b55134f70ee1 9448989c70e9ca6 6831176ebb
Committed: http://
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master
commit b04b55134f70ee1 9448989c70e9ca6 6831176ebb
Author: Divakar <email address hidden>
Date: Fri May 27 15:58:31 2016 +0530
Keeping the mirror metadata entry in Flow entry
Currently mirror metadata is stored in index table using flow index
as key. Before the Flow eviction, the addition and deletion of this meta
data to Index table is always from Agent and hence no parallel
manipulation of Index table. After eviction, the metadata deletion from
index table can happen in parallel and hence leading to memory
corruption/leak in index table manipulation.
The right fix is making the index table SMP ready. As a stop gap fix,
the mirror metada data pointer is stored in the flow entry itself
directly.
Conflicts:
include/vr_flow.h
closes-bug: #1572397, #1744369 6053b808fd28073 38265b307e0
Change-Id: I216d8b6c55025a