From: Gurucharan Shetty Date: Tue, 20 Nov 2012 11:18:11 +0000 (-0800) Subject: ofproto: Fix ofport allocation. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff_plain;h=4780f13745796a22ac1971bb9bf90a39317d7094 ofproto: Fix ofport allocation. Currently running the following 3 commands results in vswitchd running in an infinite loop. ovs-vsctl add-port br1 port1 -- set interface port1 \ type=internal ofport_request=1 ovs-vsctl add-port br1 port2 -- set interface port2 \ type=internal ofport_request=2 ovs-vsctl add-port br1 port3 -- set interface port3 \ type=internal This patch lets us go through all the possible ofport values to find a free ofport. Signed-off-by: Gurucharan Shetty --- diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 182da633..8bc9b590 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -1666,7 +1666,8 @@ alloc_ofp_port(struct ofproto *ofproto, const char *netdev_name) * flows. */ while (ofp_port >= ofproto->max_ports) { for (ofproto->alloc_port_no++; - ofproto->alloc_port_no < ofproto->max_ports; ) { + ofproto->alloc_port_no < ofproto->max_ports; + ofproto->alloc_port_no++) { if (!bitmap_is_set(ofproto->ofp_port_ids, ofproto->alloc_port_no)) { ofp_port = ofproto->alloc_port_no;