[ovs-dev] [PATCH] ofproto-dpif: Don't rate limit facet_learn() with fin_timeouts.
Ethan Jackson
ethan at nicira.com
Tue Apr 2 19:36:12 UTC 2013
In the standard case, rate limiting facet_learn() to once ever
500ms, makes sense. The worst that can happen is a learning entry
is expired half a second to early. However, when using
fin_timeouts, we really need react quickly to delete the newly
stale flow.
Bug #15915.
Signed-off-by: Ethan Jackson <ethan at nicira.com>
---
ofproto/ofproto-dpif.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index 32ed091..47830c1 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -4585,13 +4585,14 @@ facet_learn(struct facet *facet)
struct ofproto_dpif *ofproto = ofproto_dpif_cast(facet->rule->up.ofproto);
struct subfacet *subfacet= CONTAINER_OF(list_front(&facet->subfacets),
struct subfacet, list_node);
+ long long int now = time_msec();
struct action_xlate_ctx ctx;
- if (time_msec() < facet->learn_rl) {
+ if (!facet->has_fin_timeout && now < facet->learn_rl) {
return;
}
- facet->learn_rl = time_msec() + 500;
+ facet->learn_rl = now + 500;
if (!facet->has_learn
&& !facet->has_normal
--
1.7.9.5
More information about the dev
mailing list