X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fproc-net-compat.c;h=6a8f8756e2f8b12716c7c3520ea6afae08152768;hb=10df718e73122df2f3b04ed585e50e4b299a8cbd;hp=3f5cf44adb5eb9e72416a5420cd46770587c161a;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch
diff --git a/vswitchd/proc-net-compat.c b/vswitchd/proc-net-compat.c
index 3f5cf44a..6a8f8756 100644
--- a/vswitchd/proc-net-compat.c
+++ b/vswitchd/proc-net-compat.c
@@ -1,22 +1,22 @@
-/* Copyright (c) 2009 Nicira Networks
+/* Copyright (c) 2009, 2010 Nicira Networks
*
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * http://www.apache.org/licenses/LICENSE-2.0
*
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
#include
#include "proc-net-compat.h"
+
+#ifdef HAVE_NETLINK
#include
#include
#include
@@ -31,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;
@@ -72,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);
@@ -84,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));
@@ -156,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(
@@ -252,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);
@@ -342,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 */