X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=vswitchd%2Fproc-net-compat.c;h=d8160f45fded72aff709ee3155a55d641f7f4887;hb=f48667811c04d848dc345aa0bbda29d889b5f960;hp=68ae1ac817ac019f9a8618cf0c3807c8c671eaec;hpb=5f55c39b21e69025045437ffbd3bb98fe6ce2e89;p=openvswitch diff --git a/vswitchd/proc-net-compat.c b/vswitchd/proc-net-compat.c index 68ae1ac8..d8160f45 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)); @@ -247,8 +248,7 @@ proc_net_compat_update_vlan(const char *tagged_dev, const char *trunk_dev, /* 'tagged_dev' is not attached to any compat_vlan. Find the * compat_vlan corresponding to (trunk_dev,vid) to attach it to, or * create a new compat_vlan if none exists for (trunk_dev,vid). */ - HMAP_FOR_EACH_WITH_HASH (vlan, struct compat_vlan, trunk_node, - hash_vlan(trunk_dev, vid), + HMAP_FOR_EACH_WITH_HASH (vlan, trunk_node, hash_vlan(trunk_dev, vid), &vlans_by_trunk) { if (!strcmp(trunk_dev, vlan->trunk_dev) && vid == vlan->vid) { break; @@ -339,10 +339,32 @@ update_vlan_config(void) ds_init(&ds); ds_put_cstr(&ds, "VLAN Dev name | VLAN ID\n" "Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD\n"); - HMAP_FOR_EACH (vlan, struct compat_vlan, trunk_node, &vlans_by_trunk) { + HMAP_FOR_EACH (vlan, trunk_node, &vlans_by_trunk) { ds_put_format(&ds, "%-15s| %d | %s\n", vlan->vlan_dev, vlan->vid, vlan->trunk_dev); } 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 */