#include "timeval.h"
#include "unixctl.h"
#include "util.h"
+#include "vlog.h"
#include "vswitchd/vswitch-idl.h"
-#include "vlog.h"
-#define THIS_MODULE VLM_brcompatd
+VLOG_DEFINE_THIS_MODULE(brcompatd);
/* xxx Just hangs if datapath is rmmod/insmod. Learn to reconnect? */
static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 60);
-/* Maximum number of milliseconds to wait before pruning port entries that
+/* Maximum number of milliseconds to wait before pruning port entries that
* no longer exist. If set to zero, ports are never pruned. */
static int prune_timeout = 5000;
}
static void
-do_get_bridge_parts(const struct ovsrec_bridge *br, struct svec *parts,
+do_get_bridge_parts(const struct ovsrec_bridge *br, struct svec *parts,
int vlan, bool break_down_bonds)
{
struct svec ports;
* reported. If 'vlan' > 0, only interfaces with implicit VLAN 'vlan' are
* reported. */
static void
-get_bridge_ifaces(const struct ovsrec_bridge *br, struct svec *ifaces,
+get_bridge_ifaces(const struct ovsrec_bridge *br, struct svec *ifaces,
int vlan)
{
do_get_bridge_parts(br, ifaces, vlan, true);
* only trunk ports or ports with implicit VLAN 0 are reported. If 'vlan' > 0,
* only port with implicit VLAN 'vlan' are reported. */
static void
-get_bridge_ports(const struct ovsrec_bridge *br, struct svec *ports,
+get_bridge_ports(const struct ovsrec_bridge *br, struct svec *ports,
int vlan)
{
do_get_bridge_parts(br, ports, vlan, false);
struct ovsrec_bridge *bridge)
{
struct ovsrec_bridge **bridges;
- size_t i;
+ size_t i;
bridges = xmalloc(sizeof *ovs->bridges * (ovs->n_bridges + 1));
for (i = 0; i < ovs->n_bridges; i++) {
bridges[ovs->n_bridges] = bridge;
ovsrec_open_vswitch_set_bridges(ovs, bridges, ovs->n_bridges + 1);
free(bridges);
-}
+}
static struct json *
where_uuid_equals(const struct uuid *uuid)
port = ovsrec_port_insert(txn_from_openvswitch(ovs));
ovsrec_port_set_name(port, br_name);
ovsrec_port_set_interfaces(port, &iface, 1);
-
+
br = ovsrec_bridge_insert(txn_from_openvswitch(ovs));
ovsrec_bridge_set_name(br, br_name);
ovsrec_bridge_set_ports(br, &port, 1);
-
+
ovs_insert_bridge(ovs, br);
return commit_txn(txn, true);
}
static void
-add_port(const struct ovsrec_open_vswitch *ovs,
+add_port(const struct ovsrec_open_vswitch *ovs,
const struct ovsrec_bridge *br, const char *port_name)
{
struct ovsrec_interface *iface;
static int
handle_bridge_cmd(struct ovsdb_idl *idl,
- const struct ovsrec_open_vswitch *ovs,
+ const struct ovsrec_open_vswitch *ovs,
struct ofpbuf *buffer, bool add)
{
const char *br_name;
}
/* Figure out vswitchd bridge and VLAN. */
- error = linux_bridge_to_ovs_bridge(ovs, linux_name,
+ error = linux_bridge_to_ovs_bridge(ovs, linux_name,
&ovs_bridge, &br_vlan);
if (error) {
send_simple_reply(seq, error);
return error;
}
- error = linux_bridge_to_ovs_bridge(ovs, linux_name,
+ error = linux_bridge_to_ovs_bridge(ovs, linux_name,
&ovs_bridge, &br_vlan);
if (error) {
send_simple_reply(seq, error);
} else if (error == ENOBUFS) {
VLOG_WARN_RL(&rl, "network monitor socket overflowed");
} else if (error) {
- VLOG_WARN_RL(&rl, "error on network monitor socket: %s",
+ VLOG_WARN_RL(&rl, "error on network monitor socket: %s",
strerror(error));
} else {
struct nlattr *attrs[ARRAY_SIZE(rtnlgrp_link_policy)];
VLOG_WARN_RL(&rl, "received bad rtnl message (no ifinfomsg)");
ofpbuf_delete(buf);
return;
- }
-
+ }
+
if (!nl_policy_parse(buf, NLMSG_HDRLEN + sizeof(struct ifinfomsg),
rtnlgrp_link_policy,
attrs, ARRAY_SIZE(rtnlgrp_link_policy))) {
br = find_bridge(ovs, br_name);
if (!br) {
- VLOG_WARN("no bridge named %s from which to remove %s",
+ VLOG_WARN("no bridge named %s from which to remove %s",
br_name, port_name);
ofpbuf_delete(buf);
return;
int
main(int argc, char *argv[])
{
+ extern struct vlog_module VLM_reconnect;
struct unixctl_server *unixctl;
const char *remote;
struct ovsdb_idl *idl;
proctitle_init(argc, argv);
set_program_name(argv[0]);
- vlog_set_levels(VLM_ANY_MODULE, VLF_CONSOLE, VLL_WARN);
- vlog_set_levels(VLM_reconnect, VLF_ANY_FACILITY, VLL_WARN);
+ vlog_set_levels(NULL, VLF_CONSOLE, VLL_WARN);
+ vlog_set_levels(&VLM_reconnect, VLF_ANY_FACILITY, VLL_WARN);
remote = parse_options(argc, argv);
signal(SIGPIPE, SIG_IGN);
daemonize_complete();
- idl = ovsdb_idl_create(remote, &ovsrec_idl_class);
+ idl = ovsdb_idl_create(remote, &ovsrec_idl_class, true);
for (;;) {
const struct ovsrec_open_vswitch *ovs;
netdev_run();
/* If 'prune_timeout' is non-zero, we actively prune from the
- * configuration of port entries that are no longer valid. We
- * use two methods:
+ * configuration of port entries that are no longer valid. We
+ * use two methods:
*
* 1) The kernel explicitly notifies us of removed ports
* through the RTNL messages.
};
char *short_options = long_options_to_short_options(long_options);
- appctl_command = xasprintf("%s/ovs-appctl %%s", ovs_bindir);
+ appctl_command = xasprintf("%s/ovs-appctl %%s", ovs_bindir());
for (;;) {
int c;