ofproto: Querying port stats for individual ports (OpenFlow 1.0)
[openvswitch] / vswitchd / ovs-brcompatd.c
index 585ab2c70576f3f080ddf84f890e0ebde5fc3fb9..faf1bee37cf7804d624abf1637aa46e372e48cd9 100644 (file)
@@ -756,7 +756,7 @@ handle_fdb_query_cmd(const struct ovsrec_open_vswitch *ovs,
         struct netdev *netdev;
 
         error = netdev_open_default(iface_name, &netdev);
-        if (netdev) {
+        if (!error) {
             if (!netdev_get_etheraddr(netdev, mac->addr)) {
                 n_local_macs++;
             }
@@ -1154,6 +1154,7 @@ main(int argc, char *argv[])
     remote = parse_options(argc, argv);
     signal(SIGPIPE, SIG_IGN);
     process_init();
+    ovsrec_init();
 
     die_if_already_running();
     daemonize_start();
@@ -1224,7 +1225,6 @@ main(int argc, char *argv[])
             ovsdb_idl_txn_wait(txn);
             poll_block();
         }
-        ovsdb_idl_txn_destroy(txn);
             
         switch (status) {
         case TXN_INCOMPLETE:
@@ -1240,16 +1240,19 @@ main(int argc, char *argv[])
         
         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:
-            /* 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();
         }
+        ovsdb_idl_txn_destroy(txn);
 
         nl_sock_wait(brc_sock, POLLIN);
         ovsdb_idl_wait(idl);