2009-09-14 18:17:36 +04:00
/*
* Copyright ( C ) 2007 , 2008 , 2009 Siemens AG
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
*/
# ifndef IEEE_802154_LOCAL_H
# define IEEE_802154_LOCAL_H
int __init ieee802154_nl_init ( void ) ;
2014-11-09 10:36:53 +03:00
void ieee802154_nl_exit ( void ) ;
2009-09-14 18:17:36 +04:00
# define IEEE802154_OP(_cmd, _func) \
{ \
. cmd = _cmd , \
. policy = ieee802154_policy , \
. doit = _func , \
. dumpit = NULL , \
. flags = GENL_ADMIN_PERM , \
}
# define IEEE802154_DUMP(_cmd, _func, _dump) \
{ \
. cmd = _cmd , \
. policy = ieee802154_policy , \
. doit = _func , \
. dumpit = _dump , \
}
2009-11-04 18:05:38 +03:00
struct genl_info ;
2009-09-14 18:17:36 +04:00
struct sk_buff * ieee802154_nl_create ( int flags , u8 req ) ;
int ieee802154_nl_mcast ( struct sk_buff * msg , unsigned int group ) ;
2009-11-04 18:05:38 +03:00
struct sk_buff * ieee802154_nl_new_reply ( struct genl_info * info ,
2014-07-02 07:31:09 +04:00
int flags , u8 req ) ;
2009-11-04 18:05:38 +03:00
int ieee802154_nl_reply ( struct sk_buff * msg , struct genl_info * info ) ;
2009-09-14 18:17:36 +04:00
extern struct genl_family nl802154_family ;
2013-11-14 20:14:41 +04:00
/* genetlink ops/groups */
int ieee802154_list_phy ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_dump_phy ( struct sk_buff * skb , struct netlink_callback * cb ) ;
int ieee802154_add_iface ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_del_iface ( struct sk_buff * skb , struct genl_info * info ) ;
2013-11-19 18:19:39 +04:00
enum ieee802154_mcgrp_ids {
IEEE802154_COORD_MCGRP ,
IEEE802154_BEACON_MCGRP ,
} ;
2013-11-14 20:14:41 +04:00
int ieee802154_associate_req ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_associate_resp ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_disassociate_req ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_scan_req ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_start_req ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_list_iface ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_dump_iface ( struct sk_buff * skb , struct netlink_callback * cb ) ;
2014-03-31 23:37:46 +04:00
int ieee802154_set_macparams ( struct sk_buff * skb , struct genl_info * info ) ;
2009-09-14 18:17:36 +04:00
2014-05-16 19:46:44 +04:00
int ieee802154_llsec_getparams ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_setparams ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_add_key ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_del_key ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_dump_keys ( struct sk_buff * skb ,
struct netlink_callback * cb ) ;
int ieee802154_llsec_add_dev ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_del_dev ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_dump_devs ( struct sk_buff * skb ,
struct netlink_callback * cb ) ;
int ieee802154_llsec_add_devkey ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_del_devkey ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_dump_devkeys ( struct sk_buff * skb ,
struct netlink_callback * cb ) ;
int ieee802154_llsec_add_seclevel ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_del_seclevel ( struct sk_buff * skb , struct genl_info * info ) ;
int ieee802154_llsec_dump_seclevels ( struct sk_buff * skb ,
struct netlink_callback * cb ) ;
2009-09-14 18:17:36 +04:00
# endif