18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Netlink helper functions for driver wrappers
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef NETLINK_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define NETLINK_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct netlink_data;
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ifinfomsg;
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct netlink_config {
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void *ctx;
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void (*newlink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			   size_t len);
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void (*dellink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			   size_t len);
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct netlink_data * netlink_init(struct netlink_config *cfg);
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid netlink_deinit(struct netlink_data *netlink);
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint netlink_send_oper_ifla(struct netlink_data *netlink, int ifindex,
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			   int linkmode, int operstate);
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* NETLINK_H */
29