Skip to content

Commit

Permalink
Add task exclusion between KSync and Flow processing
Browse files Browse the repository at this point in the history
Flow setup and KSync task run in parallel, its possible that
flow_entry_map_ can be manipulated by both tasks in parallel. In this
case following scenario has happend,

     1. The flow found in flow_entry_map_ was deleted and DEL operation
     was sent to VRouter
     2. In "Allocate" routine, a flow-entry was found from
     flow_entry_map_.
     3. VRouter DEL processing complete and the flow-entry is freed
     4. The flow-entry found in (2) is freed and contents modified

Agent must have exclusion between KSync and Flow-setup till
parallel access between the two task is handled correctly.

Change-Id: Ib13a3c13222826accd398f8f45c8c105328c9070
Fixes-Bug: #1520797
  • Loading branch information
praveenkv committed Nov 28, 2015
1 parent b635a7c commit 91089e8
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/vnsw/agent/cmn/agent.cc
Expand Up @@ -173,6 +173,8 @@ void Agent::SetAgentTaskPolicy() {
"Agent::StatsCollector",
"db::DBTable",
"Agent::PktFlowResponder",
kTaskFlowEvent,
kTaskFlowUpdate,
AGENT_INIT_TASKNAME
};
SetTaskPolicyOne("Agent::KSync", ksync_exclude_list,
Expand Down

0 comments on commit 91089e8

Please sign in to comment.