X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fproc-net-compat.c;h=6a8f8756e2f8b12716c7c3520ea6afae08152768;hb=142181fcd734a2afff9fe13e54fe51c7a2c824d2;hp=8e8dd237db8e0f17e93b4679543306e8521aa63a;hpb=34e63086edddcae06d7c1a4fa84fec0861e50758;p=openvswitch diff --git a/vswitchd/proc-net-compat.c b/vswitchd/proc-net-compat.c index 8e8dd237..6a8f8756 100644 --- a/vswitchd/proc-net-compat.c +++ b/vswitchd/proc-net-compat.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009 Nicira Networks +/* Copyright (c) 2009, 2010 Nicira Networks * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ #include #include "proc-net-compat.h" + +#ifdef HAVE_NETLINK #include #include #include @@ -29,10 +31,10 @@ #include "hmap.h" #include "shash.h" #include "svec.h" - -#define THIS_MODULE VLM_proc_net_compat #include "vlog.h" +VLOG_DEFINE_THIS_MODULE(proc_net_compat) + /* Netlink socket to bridge compatibility kernel module. */ static struct nl_sock *brc_sock; @@ -70,11 +72,11 @@ proc_net_compat_init(void) static int set_proc_file(const char *dir, const char *file, const char *data) { - struct ofpbuf request, *reply; + struct ofpbuf request; int retval; ofpbuf_init(&request, 0); - nl_msg_put_genlmsghdr(&request, brc_sock, 1024, brc_family, NLM_F_REQUEST, + nl_msg_put_genlmsghdr(&request, 1024, brc_family, NLM_F_REQUEST, BRC_GENL_C_SET_PROC, 1); nl_msg_put_string(&request, BRC_GENL_A_PROC_DIR, dir); nl_msg_put_string(&request, BRC_GENL_A_PROC_NAME, file); @@ -82,9 +84,8 @@ set_proc_file(const char *dir, const char *file, const char *data) nl_msg_put_string(&request, BRC_GENL_A_PROC_DATA, data); } - retval = nl_sock_transact(brc_sock, &request, &reply); + retval = nl_sock_transact(brc_sock, &request, NULL); ofpbuf_uninit(&request); - ofpbuf_delete(reply); if (retval) { VLOG_WARN_RL(&rl, "failed to %s /proc/%s/%s (%s)", data ? "update" : "remove", dir, file, strerror(retval)); @@ -154,6 +155,12 @@ proc_net_compat_update_bond(const char *name, const struct compat_bond *bond) "\n" "Source load balancing info:\n", bond->up ? "up" : "down", bond->updelay, bond->downdelay); + + for (i = 0; i < bond->n_hashes; i++) { + const struct compat_bond_hash *cbh = &bond->hashes[i]; + ds_put_format(&ds, " [%03d] = %s\n", cbh->hash, cbh->netdev_name); + } + for (i = 0; i < bond->n_slaves; i++) { const struct compat_bond_slave *slave = &bond->slaves[i]; ds_put_format( @@ -250,7 +257,7 @@ proc_net_compat_update_vlan(const char *tagged_dev, const char *trunk_dev, } if (!vlan) { /* Create a new compat_vlan for (trunk_dev,vid). */ - vlan = xcalloc(1, sizeof *vlan); + vlan = xzalloc(sizeof *vlan); vlan->trunk_dev = xstrdup(trunk_dev); vlan->vid = vid; vlan->vlan_dev = xasprintf("%s.%d", trunk_dev, vid); @@ -340,3 +347,25 @@ update_vlan_config(void) set_proc_file("net/vlan", "config", ds_cstr(&ds)); ds_destroy(&ds); } +#else /* !HAVE_NETLINK */ +#include "compiler.h" + +int +proc_net_compat_init(void) +{ + return 0; +} + +void +proc_net_compat_update_bond(const char *name OVS_UNUSED, + const struct compat_bond *bond OVS_UNUSED) +{ +} + +void +proc_net_compat_update_vlan(const char *tagged_dev OVS_UNUSED, + const char *trunk_dev OVS_UNUSED, + int vid OVS_UNUSED) +{ +} +#endif /* !HAVE_NETLINK */