linux/net/ieee802154/ieee802154.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2007, 2008, 2009 Siemens AG
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2
   6 * as published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11 * GNU General Public License for more details.
  12 *
  13 */
  14#ifndef IEEE_802154_LOCAL_H
  15#define IEEE_802154_LOCAL_H
  16
  17int __init ieee802154_nl_init(void);
  18void ieee802154_nl_exit(void);
  19
  20#define IEEE802154_OP(_cmd, _func)                      \
  21        {                                               \
  22                .cmd    = _cmd,                         \
  23                .policy = ieee802154_policy,            \
  24                .doit   = _func,                        \
  25                .dumpit = NULL,                         \
  26                .flags  = GENL_ADMIN_PERM,              \
  27        }
  28
  29#define IEEE802154_DUMP(_cmd, _func, _dump)             \
  30        {                                               \
  31                .cmd    = _cmd,                         \
  32                .policy = ieee802154_policy,            \
  33                .doit   = _func,                        \
  34                .dumpit = _dump,                        \
  35        }
  36
  37struct genl_info;
  38
  39struct sk_buff *ieee802154_nl_create(int flags, u8 req);
  40int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group);
  41struct sk_buff *ieee802154_nl_new_reply(struct genl_info *info,
  42                                        int flags, u8 req);
  43int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info);
  44
  45extern struct genl_family nl802154_family;
  46
  47/* genetlink ops/groups */
  48int ieee802154_list_phy(struct sk_buff *skb, struct genl_info *info);
  49int ieee802154_dump_phy(struct sk_buff *skb, struct netlink_callback *cb);
  50int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info);
  51int ieee802154_del_iface(struct sk_buff *skb, struct genl_info *info);
  52
  53enum ieee802154_mcgrp_ids {
  54        IEEE802154_COORD_MCGRP,
  55        IEEE802154_BEACON_MCGRP,
  56};
  57
  58int ieee802154_associate_req(struct sk_buff *skb, struct genl_info *info);
  59int ieee802154_associate_resp(struct sk_buff *skb, struct genl_info *info);
  60int ieee802154_disassociate_req(struct sk_buff *skb, struct genl_info *info);
  61int ieee802154_scan_req(struct sk_buff *skb, struct genl_info *info);
  62int ieee802154_start_req(struct sk_buff *skb, struct genl_info *info);
  63int ieee802154_list_iface(struct sk_buff *skb, struct genl_info *info);
  64int ieee802154_dump_iface(struct sk_buff *skb, struct netlink_callback *cb);
  65int ieee802154_set_macparams(struct sk_buff *skb, struct genl_info *info);
  66
  67int ieee802154_llsec_getparams(struct sk_buff *skb, struct genl_info *info);
  68int ieee802154_llsec_setparams(struct sk_buff *skb, struct genl_info *info);
  69int ieee802154_llsec_add_key(struct sk_buff *skb, struct genl_info *info);
  70int ieee802154_llsec_del_key(struct sk_buff *skb, struct genl_info *info);
  71int ieee802154_llsec_dump_keys(struct sk_buff *skb,
  72                               struct netlink_callback *cb);
  73int ieee802154_llsec_add_dev(struct sk_buff *skb, struct genl_info *info);
  74int ieee802154_llsec_del_dev(struct sk_buff *skb, struct genl_info *info);
  75int ieee802154_llsec_dump_devs(struct sk_buff *skb,
  76                               struct netlink_callback *cb);
  77int ieee802154_llsec_add_devkey(struct sk_buff *skb, struct genl_info *info);
  78int ieee802154_llsec_del_devkey(struct sk_buff *skb, struct genl_info *info);
  79int ieee802154_llsec_dump_devkeys(struct sk_buff *skb,
  80                                  struct netlink_callback *cb);
  81int ieee802154_llsec_add_seclevel(struct sk_buff *skb, struct genl_info *info);
  82int ieee802154_llsec_del_seclevel(struct sk_buff *skb, struct genl_info *info);
  83int ieee802154_llsec_dump_seclevels(struct sk_buff *skb,
  84                                    struct netlink_callback *cb);
  85
  86#endif
  87