# # Copyright (C) 2015 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. WPAN_MENU:=WPAN 802.15.4 Support define KernelPackage/ieee802154 SUBMENU:=$(WPAN_MENU) TITLE:=IEEE-802.15.4 support DEPENDS:=@!LINUX_3_18 KCONFIG:= \ CONFIG_IEEE802154 \ CONFIG_IEEE802154_SOCKET=y \ CONFIG_IEEE802154_NL802154_EXPERIMENTAL=n FILES:= \ $(LINUX_DIR)/net/ieee802154/ieee802154.ko \ $(LINUX_DIR)/net/ieee802154/ieee802154_socket.ko@ge4.0 AUTOLOAD:=$(call AutoLoad,90,ieee802154 ieee802154_socket) endef define KernelPackage/ieee802154/description IEEE Std 802.15.4 defines a low data rate, low power and low complexity short range wireless personal area networks. It was designed to organise networks of sensors, switches, etc automation devices. Maximum allowed data rate is 250 kb/s and typical personal operating space around 10m. endef $(eval $(call KernelPackage,ieee802154)) define KernelPackage/mac802154 SUBMENU:=$(WPAN_MENU) TITLE:=MAC-802.15.4 support DEPENDS:=+kmod-ieee802154 +kmod-crypto-aead +kmod-lib-crc-ccitt @!LINUX_3_18 KCONFIG:= \ CONFIG_MAC802154 \ CONFIG_IEEE802154_DRIVERS=y FILES:=$(LINUX_DIR)/net/mac802154/mac802154.ko AUTOLOAD:=$(call AutoLoad,91,mac802154) endef define KernelPackage/mac802154/description This option enables the hardware independent IEEE 802.15.4 networking stack for SoftMAC devices (the ones implementing only PHY level of IEEE 802.15.4 standard). Note: this implementation is neither certified, nor feature complete! Compatibility with other implementations hasn't been tested yet! endef $(eval $(call KernelPackage,mac802154)) define KernelPackage/fakelb SUBMENU:=$(WPAN_MENU) TITLE:=Fake LR-WPAN driver DEPENDS:=+kmod-mac802154 @!LINUX_3_18 KCONFIG:=CONFIG_IEEE802154_FAKELB FILES:=$(LINUX_DIR)/drivers/net/ieee802154/fakelb.ko AUTOLOAD:=$(call AutoLoad,92,fakelb) endef define KernelPackage/fakelb/description Say Y here to enable the fake driver that can emulate a net of several interconnected radio devices. endef $(eval $(call KernelPackage,fakelb)) define KernelPackage/at86rf230 SUBMENU:=$(WPAN_MENU) TITLE:=AT86RF230 transceiver driver DEPENDS:=+kmod-mac802154 +kmod-regmap KCONFIG:=CONFIG_IEEE802154_AT86RF230 \ CONFIG_IEEE802154_AT86RF230_DEBUGFS=n \ CONFIG_SPI=y \ CONFIG_SPI_MASTER=y FILES:=$(LINUX_DIR)/drivers/net/ieee802154/at86rf230.ko endef $(eval $(call KernelPackage,at86rf230)) define KernelPackage/mrf24j40 SUBMENU:=$(WPAN_MENU) TITLE:=MRF24J40 transceiver driver DEPENDS:=+kmod-mac802154 +kmod-regmap KCONFIG:=CONFIG_IEEE802154_MRF24J40 \ CONFIG_SPI=y \ CONFIG_SPI_MASTER=y FILES:=$(LINUX_DIR)/drivers/net/ieee802154/mrf24j40.ko endef $(eval $(call KernelPackage,mrf24j40)) define KernelPackage/cc2520 SUBMENU:=$(WPAN_MENU) TITLE:=CC2520 transceiver driver DEPENDS:=+kmod-mac802154 KCONFIG:=CONFIG_IEEE802154_CC2520 \ CONFIG_SPI=y \ CONFIG_SPI_MASTER=y FILES:=$(LINUX_DIR)/drivers/net/ieee802154/cc2520.ko endef $(eval $(call KernelPackage,cc2520)) define KernelPackage/ieee802154_6lowpan SUBMENU:=$(WPAN_MENU) TITLE:= 6LoWPAN support over IEEE-802.15.4 DEPENDS:=@!LINUX_3_18 +kmod-6lowpan +kmod-ieee802154 KCONFIG:=CONFIG_IEEE802154_6LOWPAN FILES:= \ $(LINUX_DIR)/net/ieee802154/6lowpan/ieee802154_6lowpan.ko@ge4.0 \ $(LINUX_DIR)/net/ieee802154/ieee802154_6lowpan.ko@lt4.0 AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan) endef define KernelPackage/ieee802154_6lowpan/description IPv6 compression over IEEE 802.15.4 endef $(eval $(call KernelPackage,ieee802154_6lowpan)) ee/package/libnl-tiny/src/include?id=5f643ca7dc2fe4afcdbcb4bf7b30ce23ec23eff5'>include/netlink/netlink.h
blob: e06fb7f118104a4921da39d087590e7b432fed93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * netlink/netlink.h		Netlink Interface
 *
 *	This library is free software; you can redistribute it and/or
 *	modify it under the terms of the GNU Lesser General Public
 *	License as published by the Free Software Foundation version 2.1
 *	of the License.
 *
 * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
 */

#ifndef NETLINK_NETLINK_H_
#define NETLINK_NETLINK_H_

#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <netdb.h>
#include <netlink/netlink-compat.h>
#include <linux/netlink.h>
#include <linux/genetlink.h>
#include <netlink/version.h>
#include <netlink/errno.h>
#include <netlink/types.h>
#include <netlink/handlers.h>
#include <netlink/socket.h>

#ifdef __cplusplus
extern "C" {
#endif

extern int nl_debug;
extern struct nl_dump_params nl_debug_dp;

/* Connection Management */
extern int			nl_connect(struct nl_sock *, int);
extern void			nl_close(struct nl_sock *);

/* Send */
extern int			nl_sendto(struct nl_sock *, void *, size_t);
extern int			nl_sendmsg(struct nl_sock *, struct nl_msg *,
					   struct msghdr *);
extern int			nl_send(struct nl_sock *, struct nl_msg *);
extern int			nl_send_auto_complete(struct nl_sock *,
						      struct nl_msg *);
extern int			nl_send_simple(struct nl_sock *, int, int,
					       void *, size_t);

/* Receive */
extern int			nl_recv(struct nl_sock *,
					struct sockaddr_nl *, unsigned char **,
					struct ucred **);
extern int			nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb);

extern int			nl_wait_for_ack(struct nl_sock *);

/* Netlink Family Translations */
extern char *			nl_nlfamily2str(int, char *, size_t);
extern int			nl_str2nlfamily(const char *);

/**
 * Receive a set of message from a netlink socket using handlers in nl_sock.
 * @arg sk		Netlink socket.
 *
 * Calls nl_recvmsgs() with the handlers configured in the netlink socket.
 */
static inline int nl_recvmsgs_default(struct nl_sock *sk)
{
	return nl_recvmsgs(sk, sk->s_cb);
}


#ifdef __cplusplus
}
#endif

#endif