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