I don't see why we should delay initializing the ports to the first call
of ofproto_run1(). We originally did initialize the ports in
ofproto_create(), but back in January 2010 Jesse moved the call into
ofproto_run1() in commit
149f577a "netdev: Fully handle netdev lifecycle
through refcounting." The commit message doesn't explain why this
particular change was made, so I can only assume that it was important at
the time. Now, however, everything seems to work fine with initialization
done in the most logical place.
/* Initialize OpenFlow connections. */
p->connmgr = connmgr_create(p, datapath, local_name);
+ init_ports(p);
+
*ofprotop = p;
return 0;
}
int error;
int i;
- if (shash_is_empty(&p->port_by_name)) {
- init_ports(p);
- }
-
for (i = 0; i < 50; i++) {
struct dpif_upcall packet;