Thanks, applied to master and branch-2.1.
On Thu, Jan 30, 2014 at 04:11:13PM -0800, Justin Pettit wrote: > Acked-by: Justin Pettit <[email protected]> > > > On 1/30/14, 3:40 PM, "Ben Pfaff" <[email protected]> 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 <[email protected]> > >Signed-off-by: Ben Pfaff <[email protected]> > >--- > > 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 [email protected] > > Srini Seetharaman [email protected] > > Stephen Hemminger [email protected] > > Stephen Finucane [email protected] > >+Suganya Ramachandran [email protected] > > Takayuki HAMA [email protected] > > Teemu Koponen [email protected] > > Timothy Chen [email protected] > >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 > >[email protected] > >http://openvswitch.org/mailman/listinfo/dev > > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
