[ovs-git] Open vSwitch: netdev: Remove netdev from global shash when the user is changing interface configuration. (master)

dev at openvswitch.org dev at openvswitch.org
Fri May 16 19:04:35 UTC 2014

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  fe83f81df9779ba4fa74111a09764d3153651dac (commit)
       via  fe99c36086aa755a077be609d21870c3d0874944 (commit)
      from  e09d61c41b4fe6559de4316d83d9221c254d4b0a (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 fe83f81df9779ba4fa74111a09764d3153651dac
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fe83f81df9779ba4fa74111a09764d3153651dac
Author: Ryan Wilson <wryan at nicira.com>
netdev: Remove netdev from global shash when the user is changing interface configuration.
When the user changes port type (i.e. changing p0 from type 'internal' to
'gre'), the netdev must first be deleted, then re-created with the new type.
Deleting the netdev requires there exist no more references to the netdev.
However, the xlate cache holds references to netdevs and the cache is only
invalidated by revalidator threads. Thus, if cache is not invalidated prior to
the netdev being re-created, the netdev will not be able to be re-created and
the configuration change will fail.

This patch always removes the netdev from the global netdev shash when the
user changes port type. This ensures that the new netdev can always be created
while handler and revalidator threads can retain references to the old netdev
until they are finished.

Signed-off-by: Ryan Wilson <wryan at nicira.com>
Signed-off-by: Ben Pfaff <blp at nicira.com>

commit fe99c36086aa755a077be609d21870c3d0874944
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fe99c36086aa755a077be609d21870c3d0874944
Author: Andy Zhou <azhou at nicira.com>
ofproto-dpif: Install internal rule should not change the match content.
Without this patch, the match passed into to
ofproto_dpif_add_internal_flow() are modified. The mask of dl_type will
always be converted from wildcarded match into exact match due to
calling rule_dpif_lookup_in_table(). The fix makes sure
ofproto_dpif_add_internal_flow() does not change the original match,
and makes the match passed as const in the
ofproto_dpif_add_internal_flow() API.

This bug prevents bond module from properly tracking the post
recirculation rules installed in the internal table. The existing rule
is always deleted followed by reinstalling of the same rule.

The observable behavior of the bug is that bond module losses track
of the slave's stats, after the slave is rebalanced. Although traffic
flows through the slave just fine.

Bug #1229225

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


Summary of changes:
 AUTHORS                |    1 +
 lib/netdev.c           |   26 +++++++++++++++++++++++++-
 lib/netdev.h           |    1 +
 ofproto/ofproto-dpif.c |    6 +++---
 ofproto/ofproto-dpif.h |    2 +-
 vswitchd/bridge.c      |    4 +++-
 6 files changed, 34 insertions(+), 6 deletions(-)

Open vSwitch

More information about the git mailing list