netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v4 0/13] basic ieee802.15.4 mac support
@ 2012-05-12 13:59 Alexander Smirnov
  2012-05-12 13:59 ` [PATCH net-next v4 01/13] mac802154: basic ieee802.15.4 device structures Alexander Smirnov
                   ` (12 more replies)
  0 siblings, 13 replies; 15+ messages in thread
From: Alexander Smirnov @ 2012-05-12 13:59 UTC (permalink / raw)
  To: davem; +Cc: netdev, dbaryshkov

Hi David,

This is the 4-th version of patch series for IEEE 802.15.4 Medium Access
Control layer support. Originally the code was provided by linux-zigbee
sourceforge project.

There is no significant changes in the source code (just added extra headers
to include and fix some typos).

The open question was workqueue usage in RX/TX datapaths. I suspect that at
that time I didn't describe the logic in details, so doing it right now.

RX data path:
=============

The IEEE 802.15.4 Linux stack contains 3 main levels:
 - ieee802154 - 802.15.4 address family, netlink interface, datagrams etc...
 - mac802154 - 802.15.4 MAC layer
 - physical - device drivers

And the first layer registers packet_type struct and works with Linux network
queue.

Regarding mac802154 layer, the IEEE 802.15.4 standard defines 4 MAC packet
types:
 - beacon frame
 - MAC command frame
 - acknowledgement frame
 - data frame

and only the data frame should be pushed to the upper layers. Others must be
managed by MAC layer only. And only if the frame represents a data burst, MAC
layer calls netif_rx and sends packet to the network queue (which is handled
by the ieee802154 layer).

So that's the reason why workqueue was designed as a middle "medium" between
drivers and MAC layer - to communicate MAC-specific information. And the
overall conception is completely based on mac80211 code in the kernel.

TX data path:
=============

There are several drivers for some IEEE 802.15.4 transceivers available in
our project. And their HW specifications describe frame transmit procedure
in a similar way:
 - frame buffer write access
 - write command TX_START
 - wait for the completion of the transaction which is indicated by IRQ

So, during the xmitting a driver may sleep and workqueue is used for these
tasks.


With best regards,
Alex

--
The IEEE 802.15.4 Working Group focuses on the standardization of the
bottom two layers of ISO/OSI protocol stack: Physical (PHY) and MAC.
The MAC layer provides access control to a shared channel and reliable
data delivery.

This series provide only basic features:
 - interface for drivers registration
 - RX/TX datapaths
 - reduced mlme operations
 - monitor device type support (used by network sniffers, e.g.
   Wireshark)
 - IEEE 802.15.4 loopback driver
 - documentation update

8<--

Alexander Smirnov (13):
  mac802154: basic ieee802.15.4 device structures
  mac802154: allocation of ieee802154 device
  mac802154: RX data path
  mac802154: TX data path
  mac802154: define reduced mlme operations
  mac802154: slave interfaces definition
  mac802154: declare reduced mlme operations
  mac802154: basic mib support
  ieee802154: interface type to be added
  mac802154: slaves manipulation routine
  mac802154: monitor device support
  drivers/ieee802154: IEEE 802.15.4 loopback driver
  Documentation/networking/ieee802154: update MAC chapter

 Documentation/networking/ieee802154.txt |   75 ++++++--
 drivers/ieee802154/Kconfig              |    8 +
 drivers/ieee802154/Makefile             |    1 +
 drivers/ieee802154/fakelb.c             |  294 +++++++++++++++++++++++++++++++
 include/linux/if_arp.h                  |    1 +
 include/linux/nl802154.h                |   22 +++
 include/net/ieee802154_netdev.h         |   26 +++-
 include/net/mac802154.h                 |  141 +++++++++++++++
 include/net/wpan-phy.h                  |    5 +-
 net/Kconfig                             |    1 +
 net/Makefile                            |    1 +
 net/ieee802154/nl-phy.c                 |    9 +-
 net/mac802154/Kconfig                   |   16 ++
 net/mac802154/Makefile                  |    2 +
 net/mac802154/ieee802154_dev.c          |  291 ++++++++++++++++++++++++++++++
 net/mac802154/mac802154.h               |  105 +++++++++++
 net/mac802154/mac_cmd.c                 |   44 +++++
 net/mac802154/mib.c                     |   97 ++++++++++
 net/mac802154/monitor.c                 |  116 ++++++++++++
 net/mac802154/rx.c                      |  110 ++++++++++++
 net/mac802154/tx.c                      |  113 ++++++++++++
 21 files changed, 1456 insertions(+), 22 deletions(-)
 create mode 100644 drivers/ieee802154/fakelb.c
 create mode 100644 include/net/mac802154.h
 create mode 100644 net/mac802154/Kconfig
 create mode 100644 net/mac802154/Makefile
 create mode 100644 net/mac802154/ieee802154_dev.c
 create mode 100644 net/mac802154/mac802154.h
 create mode 100644 net/mac802154/mac_cmd.c
 create mode 100644 net/mac802154/mib.c
 create mode 100644 net/mac802154/monitor.c
 create mode 100644 net/mac802154/rx.c
 create mode 100644 net/mac802154/tx.c

-- 
1.7.2.3

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-05-14 22:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-12 13:59 [PATCH net-next v4 0/13] basic ieee802.15.4 mac support Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 01/13] mac802154: basic ieee802.15.4 device structures Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 02/13] mac802154: allocation of ieee802154 device Alexander Smirnov
2012-05-14 22:28   ` David Miller
2012-05-12 13:59 ` [PATCH net-next v4 03/13] mac802154: RX data path Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 04/13] mac802154: TX " Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 05/13] mac802154: define reduced mlme operations Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 06/13] mac802154: slave interfaces definition Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 07/13] mac802154: declare reduced mlme operations Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 08/13] mac802154: basic mib support Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 09/13] ieee802154: interface type to be added Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 10/13] mac802154: slaves manipulation routine Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 11/13] mac802154: monitor device support Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 12/13] drivers/ieee802154: IEEE 802.15.4 loopback driver Alexander Smirnov
2012-05-12 13:59 ` [PATCH net-next v4 13/13] Documentation/networking/ieee802154: update MAC chapter Alexander Smirnov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).