#include <sys/socket.h>
#include <linux/switch.h>
#include "swlib.h"
+#include <netlink/netlink.h>
+#include <netlink/genl/genl.h>
+#include <netlink/genl/family.h>
//#define DEBUG 1
#ifdef DEBUG
#define DPRINTF(fmt, ...) do {} while (0)
#endif
-static struct nl_handle *handle;
+static struct nl_sock *handle;
static struct nl_cache *cache;
static struct genl_family *family;
static struct nlattr *tb[SWITCH_ATTR_MAX];
if (cache)
nl_cache_free(cache);
if (handle)
- nl_handle_destroy(handle);
+ nl_socket_free(handle);
handle = NULL;
cache = NULL;
}
static int
swlib_priv_init(void)
{
- handle = nl_handle_alloc();
+ int ret;
+
+ handle = nl_socket_alloc();
if (!handle) {
DPRINTF("Failed to create handle\n");
goto err;
goto err;
}
- cache = genl_ctrl_alloc_cache(handle);
- if (!cache) {
+ ret = genl_ctrl_alloc_cache(handle, &cache);
+ if (ret < 0) {
DPRINTF("Failed to allocate netlink cache\n");
goto err;
}