Acked-by: Justin Pettit <jpet...@nicira.com>
On 1/30/14, 3:40 PM, "Ben Pfaff" <b...@nicira.com> wrote: >Database transactions can occasionally fail due to concurrent changes in >the database. When that happens, the next transaction should repeat the >changes that ovs-vswitchd tried to make the first time (adjusted for the >changes to the database). > >The code to report the OpenFlow port number in use didn't do that. It set >the ofport field once when it created the port and never set it again, >even >if the transaction to set it failed. This commit fixes the problem. > >Bug #23047. >Reported-by: Suganya Ramachandran <sugan...@vmware.com> >Signed-off-by: Ben Pfaff <b...@nicira.com> >--- > AUTHORS | 1 + > vswitchd/bridge.c | 7 +++---- > 2 files changed, 4 insertions(+), 4 deletions(-) > >diff --git a/AUTHORS b/AUTHORS >index 08ebdba..f1b129b 100644 >--- a/AUTHORS >+++ b/AUTHORS >@@ -237,6 +237,7 @@ Spiro Kourtessis sp...@vmware.com > Srini Seetharaman seeth...@stanford.edu > Stephen Hemminger shemmin...@vyatta.com > Stephen Finucane stephen.finuc...@intel.com >+Suganya Ramachandran sugan...@vmware.com > Takayuki HAMA t-h...@cb.jp.nec.com > Teemu Koponen kopo...@nicira.com > Timothy Chen tc...@nicira.com >diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c >index e6be975..5b1aec3 100644 >--- a/vswitchd/bridge.c >+++ b/vswitchd/bridge.c >@@ -1,4 +1,4 @@ >-/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc. >+/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. >@@ -575,6 +575,7 @@ bridge_reconfigure(const struct ovsrec_open_vswitch >*ovs_cfg) > port_configure(port); > > LIST_FOR_EACH (iface, port_elem, &port->ifaces) { >+ iface_set_ofport(iface->cfg, iface->ofp_port); > iface_configure_cfm(iface); > iface_configure_qos(iface, port->cfg->qos); > iface_set_mac(iface, port->cfg->fake_bridge ? br->ea : >NULL); >@@ -1478,7 +1479,6 @@ iface_create(struct bridge *br, const struct >ovsrec_interface *iface_cfg, > ovs_assert(!iface_lookup(br, iface_cfg->name)); > error = iface_do_create(br, iface_cfg, port_cfg, &ofp_port, &netdev); > if (error) { >- iface_set_ofport(iface_cfg, OFPP_NONE); > iface_clear_db_record(iface_cfg); > return false; > } >@@ -1503,8 +1503,6 @@ iface_create(struct bridge *br, const struct >ovsrec_interface *iface_cfg, > hmap_insert(&br->ifaces, &iface->ofp_port_node, > hash_ofp_port(ofp_port)); > >- iface_set_ofport(iface->cfg, ofp_port); >- > /* Populate initial status in database. */ > iface_refresh_stats(iface); > iface_refresh_status(iface); >@@ -3539,6 +3537,7 @@ static void > iface_clear_db_record(const struct ovsrec_interface *if_cfg) > { > if (!ovsdb_idl_row_is_synthetic(&if_cfg->header_)) { >+ iface_set_ofport(if_cfg, OFPP_NONE); > ovsrec_interface_set_status(if_cfg, NULL); > ovsrec_interface_set_admin_state(if_cfg, NULL); > ovsrec_interface_set_duplex(if_cfg, NULL); >-- >1.7.10.4 > >_______________________________________________ >dev mailing list >dev@openvswitch.org >http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev