X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fproc-net-compat.c;h=106a7c3f55e78b8840c919fd927236b0da051f70;hb=e3648418c4bf028e6bca38bcbfc5a5ed493447fb;hp=3f5cf44adb5eb9e72416a5420cd46770587c161a;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch diff --git a/vswitchd/proc-net-compat.c b/vswitchd/proc-net-compat.c index 3f5cf44a..106a7c3f 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 @@ -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 */