[ovs-git] Open vSwitch: vswitchd: Only re-learn from flows that output to OFPP_NORMAL. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Aug 6 20:26:39 UTC 2010

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  26d79bf2686b08a49c881d5bb54501d7584f5111 (commit)
       via  d12f7113b047455d410cb54862f339717d4c932f (commit)
       via  c393047875e2c9dc76b2f19092fff6bbf69ec4f9 (commit)
      from  d54ff9987c3bbd9989ee7fef574bdab3207aca60 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 26d79bf2686b08a49c881d5bb54501d7584f5111
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=26d79bf2686b08a49c881d5bb54501d7584f5111
Author: Ben Pfaff <blp at nicira.com>
vswitchd: Only re-learn from flows that output to OFPP_NORMAL.
Commit e96a4d8035 "bridge: Feed flow stats into learning table." started
feeding flow statistics back into the learning table, but it did not
distinguish between flows with and flows without an action that outputs to
OFPP_NORMAL.  Flows without such an action are not put into the learning
table initially, because bridge_normal_ofhook_cb() is not called for them,
but since that commit they have been put into the learning table when their
flows are reassessed.

This is inconsistent--flows without OFPP_NORMAL should either be learned
from all the time or never, not sometimes.  I can see valid arguments both
ways, but since it was always my intention not to learn from such flows,
this commit disables learning from them.

Problem found by code inspection.  I don't know of any observed bug that
this fixes.

commit d12f7113b047455d410cb54862f339717d4c932f
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=d12f7113b047455d410cb54862f339717d4c932f
Author: Ben Pfaff <blp at nicira.com>
tag: Be more precise about choosing tags to add, in tag_set_add().
It is not necessary to add a "tag" if all of the bits in it are already
present in some member of the set.  This commit adds that optimization.

commit c393047875e2c9dc76b2f19092fff6bbf69ec4f9
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c393047875e2c9dc76b2f19092fff6bbf69ec4f9
Author: Ben Pfaff <blp at nicira.com>
tag: Use existing macro instead of constant.
N_TAG_BITS is always 32, currently, because tag_type is a typedef
for uint32_t, so this does not fix an actual bug.


Summary of changes:
 lib/tag.c         |   31 ++++++++++++++++++++++++++++---
 ofproto/ofproto.c |    2 +-
 ofproto/ofproto.h |    6 +++---
 vswitchd/bridge.c |   19 ++++++++++++-------
 4 files changed, 44 insertions(+), 14 deletions(-)

Open vSwitch

More information about the git mailing list