Skip to content

Commit

Permalink
ofproto-dpif: Only delete tunnel backer ports along with the dpif.
Browse files Browse the repository at this point in the history
The admin can choose whether or not to delete flows from datapaths when
they stop ovs-vswitchd.  The goal of not deleting flows it to allow
existing traffic to continue being forwarded until ovs-vswitchd is
restarted.  Until now, regardless of this choice, ovs-vswitchd has
always deleted tunnel ports from the datapath.  When flows are not
deleted, this nevertheless prevents tunnel traffic from being forwarded.

With this patch, ovs-vswitchd no longer deletes tunnel ports in the
case where it does not delete flows, allowing tunnel traffic to continue
being forwarded.

Reported-by: Antonin Bas <abas@vmware.com>
Tested-by: Antonin Bas <abas@vmware.com>
Tested-by: txfh2007 <txfh2007@aliyun.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
blp committed Feb 29, 2020
1 parent bae24b4 commit 7cc77b3
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions ofproto/ofproto-dpif.c
Expand Up @@ -698,8 +698,10 @@ close_dpif_backer(struct dpif_backer *backer, bool del)

udpif_destroy(backer->udpif);

SIMAP_FOR_EACH (node, &backer->tnl_backers) {
dpif_port_del(backer->dpif, u32_to_odp(node->data), false);
if (del) {
SIMAP_FOR_EACH (node, &backer->tnl_backers) {
dpif_port_del(backer->dpif, u32_to_odp(node->data), false);
}
}
simap_destroy(&backer->tnl_backers);
ovs_rwlock_destroy(&backer->odp_to_ofport_lock);
Expand Down

0 comments on commit 7cc77b3

Please sign in to comment.