projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ovs-brcompatd: Delete Bridge record when deleting a bridge.
[openvswitch]
/
vswitchd
/
ovs-brcompatd.c
diff --git
a/vswitchd/ovs-brcompatd.c
b/vswitchd/ovs-brcompatd.c
index 585ab2c70576f3f080ddf84f890e0ebde5fc3fb9..bf571d743a11465ff7a8b4719f8b3f3056e57a74 100644
(file)
--- a/
vswitchd/ovs-brcompatd.c
+++ b/
vswitchd/ovs-brcompatd.c
@@
-479,6
+479,8
@@
del_port(const struct ovsrec_bridge *br, const char *port_name)
}
ovsrec_bridge_set_ports(br, ports, n);
free(ports);
}
ovsrec_bridge_set_ports(br, ports, n);
free(ports);
+
+ ovsrec_port_delete(port_rec);
}
}
}
}
@@
-507,6
+509,9
@@
del_bridge(const struct ovsrec_open_vswitch *ovs, const char *br_name)
ovsrec_open_vswitch_set_bridges(ovs, bridges, n);
free(bridges);
ovsrec_open_vswitch_set_bridges(ovs, bridges, n);
free(bridges);
+ /* Delete the bridge itself. */
+ ovsrec_bridge_delete(br);
+
VLOG_INFO("delbr %s: success", br_name);
return 0;
VLOG_INFO("delbr %s: success", br_name);
return 0;
@@
-756,7
+761,7
@@
handle_fdb_query_cmd(const struct ovsrec_open_vswitch *ovs,
struct netdev *netdev;
error = netdev_open_default(iface_name, &netdev);
struct netdev *netdev;
error = netdev_open_default(iface_name, &netdev);
- if (
netdev
) {
+ if (
!error
) {
if (!netdev_get_etheraddr(netdev, mac->addr)) {
n_local_macs++;
}
if (!netdev_get_etheraddr(netdev, mac->addr)) {
n_local_macs++;
}
@@
-1154,6
+1159,7
@@
main(int argc, char *argv[])
remote = parse_options(argc, argv);
signal(SIGPIPE, SIG_IGN);
process_init();
remote = parse_options(argc, argv);
signal(SIGPIPE, SIG_IGN);
process_init();
+ ovsrec_init();
die_if_already_running();
daemonize_start();
die_if_already_running();
daemonize_start();
@@
-1224,7
+1230,6
@@
main(int argc, char *argv[])
ovsdb_idl_txn_wait(txn);
poll_block();
}
ovsdb_idl_txn_wait(txn);
poll_block();
}
- ovsdb_idl_txn_destroy(txn);
switch (status) {
case TXN_INCOMPLETE:
switch (status) {
case TXN_INCOMPLETE:
@@
-1240,16
+1245,19
@@
main(int argc, char *argv[])
case TXN_TRY_AGAIN:
/* xxx Handle this better! */
case TXN_TRY_AGAIN:
/* xxx Handle this better! */
-
printf("xxx We need to try again!\n
");
+
VLOG_ERR("OVSDB transaction needs retry
");
break;
case TXN_ERROR:
break;
case TXN_ERROR:
- /* xxx Is this what we want to do? */
- ovs_fatal(0, "transaction error");
-
+ /* xxx Handle this better! */
+ VLOG_ERR("OVSDB transaction failed: %s",
+ ovsdb_idl_txn_get_error(txn));
+ break;
+
default:
NOT_REACHED();
}
default:
NOT_REACHED();
}
+ ovsdb_idl_txn_destroy(txn);
nl_sock_wait(brc_sock, POLLIN);
ovsdb_idl_wait(idl);
nl_sock_wait(brc_sock, POLLIN);
ovsdb_idl_wait(idl);