Skip to content

Commit

Permalink
Before initiating eviction, wait for the reverse flow to move from
Browse files Browse the repository at this point in the history
HOLD

If the reverse flow action is HOLD, it is possible that we might not
flush the packets that are in the hold queue when we do eviction.
There is also an unidentified case where such flows remain in the
table in the eviction marked state.

Also, free the vrouter operation request structure once the request
is done.

Change-Id: I75d54367c7f7a3b32c3a09332be4f01a64e06d2a
Partial-BUG: #1570203
  • Loading branch information
anandhk-juniper committed Apr 29, 2016
1 parent 2810d11 commit 8e7127d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 3 additions & 1 deletion dp-core/vr_flow.c
Expand Up @@ -689,7 +689,9 @@ vr_flow_mark_evict(struct vrouter *router, struct vr_flow_entry *fe,
/* no modification. hence...*/
rfe = NULL;
} else {
if ((rfe->fe_rflow == index) || (rfe->fe_rflow < 0)) {
/* we do not want hold flows to be evicted, just yet */
if (((rfe->fe_rflow == index) || (rfe->fe_rflow < 0)) &&
(rfe->fe_action != VR_FLOW_ACTION_HOLD)) {
evict_forward_flow = __vr_flow_mark_evict(router, rfe);
}
}
Expand Down
2 changes: 2 additions & 0 deletions dp-core/vrouter.c
Expand Up @@ -262,6 +262,8 @@ vrouter_ops_destroy(vrouter_ops *req)
req->vo_build_info = NULL;
}

vr_free(req, VR_VROUTER_REQ_OBJECT);

return;
}

Expand Down

0 comments on commit 8e7127d

Please sign in to comment.