linux/net/ieee802154/nl-mac.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Netlink interface for IEEE 802.15.4 stack
 *
 * Copyright 2007, 2008 Siemens AG
 *
 * Written by:
 * Sergey Lapin <[email protected]>
 * Dmitry Eremin-Solenikov <[email protected]>
 * Maxim Osipov <[email protected]>
 */

#include <linux/gfp.h>
#include <linux/kernel.h>
#include <linux/if_arp.h>
#include <linux/netdevice.h>
#include <linux/ieee802154.h>
#include <net/netlink.h>
#include <net/genetlink.h>
#include <net/sock.h>
#include <linux/nl802154.h>
#include <linux/export.h>
#include <net/af_ieee802154.h>
#include <net/ieee802154_netdev.h>
#include <net/cfg802154.h>

#include "ieee802154.h"

static int nla_put_hwaddr(struct sk_buff *msg, int type, __le64 hwaddr,
			  int padattr)
{}

static __le64 nla_get_hwaddr(const struct nlattr *nla)
{}

static int nla_put_shortaddr(struct sk_buff *msg, int type, __le16 addr)
{}

static __le16 nla_get_shortaddr(const struct nlattr *nla)
{}

static int ieee802154_nl_start_confirm(struct net_device *dev, u8 status)
{}

static int ieee802154_nl_fill_iface(struct sk_buff *msg, u32 portid,
				    u32 seq, int flags, struct net_device *dev)
{}

/* Requests from userspace */
static struct net_device *ieee802154_nl_get_dev(struct genl_info *info)
{}

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)
{}

/* PANid, channel, beacon_order = 15, superframe_order = 15,
 * PAN_coordinator, battery_life_extension = 0,
 * coord_realignment = 0, security_enable = 0
*/
int ieee802154_start_req(struct sk_buff *skb, struct genl_info *info)
{}

int ieee802154_scan_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)
{}

int ieee802154_set_macparams(struct sk_buff *skb, struct genl_info *info)
{}

static int
ieee802154_llsec_parse_key_id(struct genl_info *info,
			      struct ieee802154_llsec_key_id *desc)
{}

static int
ieee802154_llsec_fill_key_id(struct sk_buff *msg,
			     const struct ieee802154_llsec_key_id *desc)
{}

int ieee802154_llsec_getparams(struct sk_buff *skb, struct genl_info *info)
{}

int ieee802154_llsec_setparams(struct sk_buff *skb, struct genl_info *info)
{}

struct llsec_dump_data {};

static int
ieee802154_llsec_dump_table(struct sk_buff *skb, struct netlink_callback *cb,
			    int (*step)(struct llsec_dump_data *))
{}

static int
ieee802154_nl_llsec_change(struct sk_buff *skb, struct genl_info *info,
			   int (*fn)(struct net_device*, struct genl_info*))
{}

static int
ieee802154_llsec_parse_key(struct genl_info *info,
			   struct ieee802154_llsec_key *key)
{}

static int llsec_add_key(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_add_key(struct sk_buff *skb, struct genl_info *info)
{}

static int llsec_remove_key(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_del_key(struct sk_buff *skb, struct genl_info *info)
{}

static int
ieee802154_nl_fill_key(struct sk_buff *msg, u32 portid, u32 seq,
		       const struct ieee802154_llsec_key_entry *key,
		       const struct net_device *dev)
{}

static int llsec_iter_keys(struct llsec_dump_data *data)
{}

int ieee802154_llsec_dump_keys(struct sk_buff *skb, struct netlink_callback *cb)
{}

static int
llsec_parse_dev(struct genl_info *info,
		struct ieee802154_llsec_device *dev)
{}

static int llsec_add_dev(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_add_dev(struct sk_buff *skb, struct genl_info *info)
{}

static int llsec_del_dev(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_del_dev(struct sk_buff *skb, struct genl_info *info)
{}

static int
ieee802154_nl_fill_dev(struct sk_buff *msg, u32 portid, u32 seq,
		       const struct ieee802154_llsec_device *desc,
		       const struct net_device *dev)
{}

static int llsec_iter_devs(struct llsec_dump_data *data)
{}

int ieee802154_llsec_dump_devs(struct sk_buff *skb, struct netlink_callback *cb)
{}

static int llsec_add_devkey(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_add_devkey(struct sk_buff *skb, struct genl_info *info)
{}

static int llsec_del_devkey(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_del_devkey(struct sk_buff *skb, struct genl_info *info)
{}

static int
ieee802154_nl_fill_devkey(struct sk_buff *msg, u32 portid, u32 seq,
			  __le64 devaddr,
			  const struct ieee802154_llsec_device_key *devkey,
			  const struct net_device *dev)
{}

static int llsec_iter_devkeys(struct llsec_dump_data *data)
{}

int ieee802154_llsec_dump_devkeys(struct sk_buff *skb,
				  struct netlink_callback *cb)
{}

static int
llsec_parse_seclevel(struct genl_info *info,
		     struct ieee802154_llsec_seclevel *sl)
{}

static int llsec_add_seclevel(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_add_seclevel(struct sk_buff *skb, struct genl_info *info)
{}

static int llsec_del_seclevel(struct net_device *dev, struct genl_info *info)
{}

int ieee802154_llsec_del_seclevel(struct sk_buff *skb, struct genl_info *info)
{}

static int
ieee802154_nl_fill_seclevel(struct sk_buff *msg, u32 portid, u32 seq,
			    const struct ieee802154_llsec_seclevel *sl,
			    const struct net_device *dev)
{}

static int llsec_iter_seclevels(struct llsec_dump_data *data)
{}

int ieee802154_llsec_dump_seclevels(struct sk_buff *skb,
				    struct netlink_callback *cb)
{}