X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vswitchd%2Fproc-net-compat.c;h=3b7596ad91b59a79d539b27ea319f4a51788ba3a;hb=cceb11f5b12d09cc8afc87ca4fd03e941234d439;hp=68ae1ac817ac019f9a8618cf0c3807c8c671eaec;hpb=58fda1dab104041fc693032475ec4662c1a52849;p=sliver-openvswitch.git diff --git a/vswitchd/proc-net-compat.c b/vswitchd/proc-net-compat.c index 68ae1ac81..3b7596ad9 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, 2011 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 @@ -23,16 +25,17 @@ #include "dynamic-string.h" #include "hash.h" #include "netlink-protocol.h" +#include "netlink-socket.h" #include "netlink.h" #include "ofpbuf.h" #include "openvswitch/brcompat-netlink.h" #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; @@ -56,7 +59,7 @@ proc_net_compat_init(void) return retval; } - retval = nl_sock_create(NETLINK_GENERIC, 0, 0, 0, &brc_sock); + retval = nl_sock_create(NETLINK_GENERIC, &brc_sock); if (retval) { return retval; } @@ -70,11 +73,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 +85,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 +249,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 +340,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 */