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/39801 github. com/Juniper/ contrail- vrouter/ commit/ a437faa4bb2b2c5 2ffb06c5e363576 6d89e4ef60
Committed: http://
Submitter: Zuul (<email address hidden>)
Branch: R3.2
commit a437faa4bb2b2c5 2ffb06c5e363576 6d89e4ef60
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