linux/net/ieee802154
Alexander Aring 838b83d63d ieee802154: introduce wpan_dev_header_ops
The current header_ops callback structure of net device are used mostly
from 802.15.4 upper-layers. Because this callback structure is a very
generic one, which is also used by e.g. DGRAM AF_PACKET sockets, we
can't make this callback structure 802.15.4 specific which is currently
is.

I saw the smallest "constraint" for calling this callback with
dev_hard_header/dev_parse_header by AF_PACKET which assign a 8 byte
array for address void pointers. Currently 802.15.4 specific protocols
like af802154 and 6LoWPAN will assign the "struct ieee802154_addr" as
these parameters which is greater than 8 bytes. The current callback
implementation for header_ops.create assumes always a complete
"struct ieee802154_addr" which AF_PACKET can't never handled and is
greater than 8 bytes.

For that reason we introduce now a "generic" create/parse header_ops
callback which allows handling with intra-pan extended addresses only.
This allows a small use-case with AF_PACKET to send "somehow" a valid
dataframe over DGRAM.

To keeping the current dev_hard_header behaviour we introduce a similar
callback structure "wpan_dev_header_ops" which contains 802.15.4 specific
upper-layer header creation functionality, which can be called by
wpan_dev_hard_header.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2015-09-22 11:51:20 +02:00
..
6lowpan ieee802154: introduce wpan_dev_header_ops 2015-09-22 11:51:20 +02:00
core.c mac802154: remove pib lock 2015-05-23 17:57:08 +02:00
core.h ieee802154: add wpan_phy dump support 2014-11-09 19:50:29 +01:00
header_ops.c ieee802154: header_ops: fix frame control setting 2015-09-22 11:51:20 +02:00
ieee802154.h ieee802154: add nl802154 framework 2014-11-09 19:50:29 +01:00
Kconfig ieee802154: create 6lowpan sub-directory 2015-01-08 07:25:59 +01:00
Makefile ieee802154: Add trace events for rdev->ops 2015-04-30 18:48:09 +02:00
netlink.c netlink: make nlmsg_end() and genlmsg_end() void 2015-01-18 01:03:45 -05:00
nl802154.c nl802154: stricter input checking for boolean inputs 2015-08-28 21:00:37 +02:00
nl802154.h ieee802154: add nl802154 framework 2014-11-09 19:50:29 +01:00
nl_policy.c ieee802154: mac802154: remove FSF address 2014-10-25 08:07:30 +02:00
nl-mac.c ieee802154: Remove 802.15.4/6LoWPAN checks for interface MTU. 2015-05-26 20:26:09 +02:00
nl-phy.c mac802154: remove pib lock 2015-05-23 17:57:08 +02:00
rdev-ops.h ieee802154: add ack request default handling 2015-08-10 20:43:06 +02:00
socket.c ieee802154: introduce wpan_dev_header_ops 2015-09-22 11:51:20 +02:00
sysfs.c cfg802154: add PM hooks 2015-07-23 17:10:49 +02:00
sysfs.h ieee802154: introduce sysfs file 2014-10-28 23:19:09 +01:00
trace.c ieee802154: Add trace events for rdev->ops 2015-04-30 18:48:09 +02:00
trace.h ieee802154: add ack request default handling 2015-08-10 20:43:06 +02:00