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 67cdf45 commit 3c987e2
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
4 changes: 3 additions & 1 deletion dp-core/vr_flow.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,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: 1 addition & 1 deletion dp-core/vrouter.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ vrouter_ops_destroy(vrouter_ops *req)
req->vo_build_info = NULL;
}

vr_free(req->vo_build_info);
vr_free(req);

return;
}
Expand Down

0 comments on commit 3c987e2

Please sign in to comment.