Commit Graph

32 Commits

Author SHA1 Message Date
Anthony Merlino
66d66b0616 Merged in antmerlino/nuttx/mac802154-assoc-lpwork (pull request #1004)
mac802154: Defers handling of extracting association response to LPWORK queue.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-19 15:17:01 +00:00
Anthony Merlino
a8e1620f3c Merged in antmerlino/nuttx/mac802154_fix_eaddr (pull request #985)
mac802154: Fixes issues with extended address. 1) Extended address should be read-only. 2) Extended address should be placed in frame in "reverse-canonical" order.

The extended address is a read-only attribute and thus an attempt to write the extended address should be denied. Instead, the extended address should really be either set by the PHY/radio itself, or provided at board bring-up time to the radio layer. The MAC layer now pulls in the extended address from the radio any time the MAC is reset.

The extended address is also supposed to be sent in the frame in reverse-canonical order. This is very confusing in the standard and it wasn't until I realized it was backwards in Wireshark that I researched this further. Searching online I find documents from the committee for suggestions/feedback on the future standard. It isn't in the 2015 standard but a newer version of the standard will presumably clarify this. It says that the extended address should be written in reverse-canonical form, meaning the OUI comes last, not first inside the frame.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-10 18:25:13 +00:00
Anthony Merlino
90317a9eeb Merged in antmerlino/nuttx/ieee802154_energydetect (pull request #977)
wireless/ieee8021254: Adds support for energy detect.

Adds support for energy detect by introducing a new radio call/callback, as the PHY layer is required to perform the energy detect.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-10 17:03:24 +00:00
Anthony Merlino
62e89e0f8d Merged in antmerlino/nuttx/mac802154_rxenable (pull request #618)
mac802154: Adds basic support for RX-ENABLE.request primitive

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-03-28 15:49:34 +00:00
Dmitriy Linikov
a8c58607e9 Merged in hardlulz/modem-3.0-nuttx/fix-sem-EINTR (pull request #603)
Added ECANCELED condition to DEBUGASSERT-s checking sem_wait result

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-02-20 18:24:53 +00:00
Anthony Merlino
14fb37c995 Merged in antmerlino/nuttx/sixlowpan-mac802154 (pull request #526)
ieee802154: Simplifies notify() and rxframe() calls to a single notify() call. dataind's and all other "notifs" are now "primitives" which aligns with standard terminology

* mac802154: Adds missing breaks from case statement

* sixlowpan: Fixes bad logic where ACK is not requested if address is not a broadcast

* ieee802154: Simplification of "notifs" and "datainds" to generic primitives passed via a single notify call to the layer above the MAC

* Directories.mk should reference CONFIG_WIRELESS instead of CONFIG_DRIVERS_WIRELESS

* xbee_netdev: Network must be locked when calling sixlowpan_input

* sixlowpan: Reassembly buffer can't be freed if provided by radio driver

* sixlowpan: Don't free IOB if there is an error processing it as the MAC will try to pass it along to another receiver

* ieee802154: Adds basic logging to ieee802154_primitive.c

* Minor fixes after rebase

* xbee: Adds AT query timeout to retry if XBee doesn't respond to request

* same70-xplained: Adds Xbee support. Makes mikroBus slot Kconfig 'choice'

* mac802154: Removes unused function declaration

* drivers/mrf24j40: Fixes compilation error using . operator rather than -> operator

* mac802154_device: Changes a few mac802154_primtive_free's to ieee802154_primitive_free() and changes notif to primitive in a couple places.

* mac802154: Adds promiscous mode logic to bypass parsing of incoming frames. MAC char device also checks for promiscous mode and passes whole frames including header and FCS to the application if promiscous mode is enabled.

* sixlowpan: Fixes logic to correctly check if packet is large enough to include header.  This would cause packets to be considered too small when they are sufficiently sized.

* sixlowpan: Fixes forwarding logic to use forwarding device rather than received device to look up destination link layer address

* net/ipforward: Fixes typo that caused build error when IP forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as well.

* configs/same70-xplained: Simple spelling fix

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-11-01 20:15:21 +00:00
Gregory Nutt
9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00
Anthony Merlino
9af6b7cdae Squashed commit of the following:
Merged in merlin17/nuttx/mac802154-sock (pull request #479)

    wireless/ieee802154: Adds support for receiving MAC events via IOCTL through socket interface. Other small fixes and cleanup

    * ioctl: Cleans up MAC802154IOC values
    * wireless/ieee802154: Cleans up MAC802154IOC_NOTIFY_REGISTER logic in character driver
    * wireless/ieee802154/mac802154_netdev:  Adds support for MAC event notification via IOCTL
    * wireless/ieee802154/mac802154: Changes reset logic. No longer reset extended address.
    * wireless/ieee802154: Cleans up MAC802154IOC logic

        Moves MAC802154IOC from ieee802154_ioctl.h and renames ieee802154_ioctl.h to ieee802154_device.h since it only contains types relevant to the MAC char device now.

    * wireless/ieee802154/mac802154_device: Cleans up IOCTL logic for recent changes.
    * drivers/wireless/ieee802154/mrf24j40: Adds missing break in case statement
    * wireless/ieee802154/mac802154_netdev: Starts adding support for passing MAC events via IOCTL
    * wireless/ieee802154/mac802154: Fixes issue with receiver enable logic
    * wireless/ieee802154/mac802154: Fixes issue where extended address is cleared and not rewritten after radio reset
    * configs/clicker2-stm32/mrf24j40-mac: Enables RAMLOG and wireless driver logging
    * wireless/ieee802154/mac802154: Fixes poll logic meant to automatically choose address mode based on short address range.

    Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-09-15 08:04:38 -06:00
Anthony Merlino
aaa1dd2bbe ieee802154: Renames ack_wait_dur to ack_waitdur and removes it from private mac struct 2017-07-16 23:51:24 -04:00
Anthony Merlino
95e797fceb ieee802154: Fixes setting devmode logic 2017-07-13 03:17:05 -04:00
Anthony Merlino
420db06b37 ieee802154: Notify radio layer of changes in devmode 2017-07-12 00:53:04 -04:00
Anthony Merlino
b9a9ba7dd0 ieee802154: Adds configuration options for verbose logging of certain features, to aid in debugging 2017-07-10 13:06:12 -04:00
Anthony Merlino
93cdae50fc ieee802154: Improves internal timer logic to handle work serially
Before, the MAC timer used a watchdog to schedule work with the high priority worker queue.  However, since everything in the MAC is supposed to be serialized through the use of the high priority work queue, but the timer uses a watchdog, there are some unintended consequences. To simplify, we now use the delayed work feature of the work queue.
2017-07-10 13:06:12 -04:00
Gregory Nutt
4547309571 Remove carriage return endings and dangling white space at the end of lines 2017-07-09 16:53:08 -06:00
Anthony Merlino
4cf2d0a6a8 ieee802154: Changes mac locking/unlocking to aid in debugging 2017-07-07 23:31:23 -04:00
Anthony Merlino
7d9c4ace34 ieee802154: Cleans up some wireless logging 2017-07-01 17:05:42 -04:00
Anthony Merlino
5ca18999a5 ieee802154: Random fixes to get beacon-enabled networking more stable 2017-07-01 17:05:42 -04:00
Anthony Merlino
6b17d5ccc9 ieee802154: Minor changes to align closer with coding standard 2017-07-01 17:05:42 -04:00
Anthony Merlino
da8afe9d9e ieee802154: Finishes transmission of beacon frames, and performing a passive scan 2017-06-25 18:08:00 -04:00
Anthony Merlino
683bd6e10e ieee802154: Adds some missing elements to start support for beacon-enabled networks 2017-06-25 18:08:00 -04:00
Anthony Merlino
8831d6e1d4 ieee802154: Minor renaming to align better with coding style standard 2017-06-23 14:51:29 -04:00
Anthony Merlino
cf53c9767e Merged in merlin17/nuttx/ieee802154 (pull request #415)
wireless/ieee802154: Minor naming change to align better with coding guidelines

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-21 16:11:12 +00:00
Gregory Nutt
0d290904af Renaming in hope of eliminating a conflict with a pending PR. 2017-06-21 10:08:25 -06:00
Gregory Nutt
4931792700 Make naming of NTXDESC consistent. I don't know where it should be MAC or IEEE, gut I changed the one that affects the fewest files. 2017-06-21 06:56:34 -06:00
Anthony Merlino
45a32a116b wireless/ieee802154: Minor naming change to align better with coding guidelines 2017-06-20 19:14:05 -04:00
Anthony Merlino
fc4f1de766 wireless/ieee802154: Cleans up some endianness issues 2017-06-19 15:55:14 -04:00
Anthony Merlino
b1ce07deb1 Swithches IEEE 802.15.4 based code to using byte arrays instead of uint16_t values for short address and PAN ID 2017-06-19 05:55:28 -04:00
Gregory Nutt
6162a84f80 ieee 802.15.4: Need counting protection on the logic that releases the notification resources. Otherwise, notification handlers may be operating with a stale pointer. 2017-06-18 13:33:07 -06:00
Gregory Nutt
2d4ba3ee3f IEEE 802.15.4 MAC: Add list management and prioritization logic that will permit the MAC layer to support bound multiple clients. 2017-06-18 11:00:47 -06:00
Anthony Merlino
30568ee04f wireless/ieee802154: Merges shard logic for sending data request commands 2017-06-17 14:56:42 -04:00
Gregory Nutt
77757410c8 Remove dangling white space at the end of lines. 2017-06-15 10:46:48 -06:00
Anthony Merlino
e30501ebd4 wireless/ieee802154: Lots of fixes, cleanup, new functionality. Functional 2017-06-15 12:11:52 -04:00