Commit Graph

109 Commits

Author SHA1 Message Date
anjiahao
d1d46335df Replace nxsem API when used as a lock with nxmutex API
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
Xiang Xiao
ba9486de4a iob: Remove iob_user_e enum and related code
since it is impossible to track producer and consumer
correctly if TCP/IP stack pass IOB directly to netdev

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-08-15 08:41:20 +03:00
Gustavo Henrique Nihei
939b990a9c wireless: Convert DEBUGASSERT(false) into more intuitive DEBUGPANIC()
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-07-14 12:08:45 +08:00
Xiang Xiao
ec77c2d3de ieee802154/mac802154.c:332:3: Fix error: 'memcpy' reading 13 bytes from a region of size 4
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-03-10 19:46:01 +02:00
Alin Jerpelea
df088c39f0 author: Anthony Merlino : update licenses to Apache
Verge Aero has submitted the SGA

Anthony Merlino has submitted the SGA

Gregory Nutt has submitted the SGA

Sebastien Lorquet has submitted the ICLA

as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-09-06 20:38:14 +08:00
Gustavo Henrique Nihei
76acb32e29 Fix typos reported by codespell 2021-02-25 11:31:49 -08:00
Xiang Xiao
517974787f Rename clock_systime[r|spec] to clock_systime_[ticks|timespec]
follow up the new naming convention:
https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-10 14:35:50 -06:00
Xiang Xiao
b7d922960f Fix nxstyle issue
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-08 07:20:49 -06:00
Xiang Xiao
bd4e8e19d3 Run codespell -w against all files
and fix the wrong correction
2020-02-22 14:45:07 -06:00
Xiang Xiao
5c80b94820 Replace #include <semaphore.h> to #include <nuttx/semaphore.h>
Since the kernel side should call nxsem_xxx instead and remove the unused inclusion
2020-02-01 08:27:30 -06:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
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
70404ed0dc Merged in antmerlino/nuttx/iobinstrumentation (pull request #1001)
Iobinstrumentation

* mm/iob: Introduces producer/consumer id to every iob call. This is so that the calls can be instrumented to monitor the IOB resources.

* iob instrumentation - Merges producer/consumer enumeration for simpler IOB user.

* fs/procfs: Starts adding support for /proc/iobinfo

* fs/procfs: Finishes first pass of simple IOB user stastics and /proc/iobinfo entry

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-16 22:42:25 +00:00
Anthony Merlino
29ab94198c Merged in antmerlino/nuttx/mac802154_fixes (pull request #998)
Mac802154 fixes

* mac802154: Frame Version should have been 1, but was being set to 3 when payload exceeds version 0 capabilities.

* mac802154: Corrects function reference in warning print-out

* mac802154/sixlowpan: Adds warning to build to indicate what is noted in the menu for CONFIG_MAC802154_NTXDESC

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-16 01:28:26 +00:00
Anthony Merlino
6f4c9678af Merged in antmerlino/nuttx/mac_txdesc_ackreq_fix (pull request #986)
mac802154: Fixes issue where the txdesc's ackreq flag was not being set, despite the frame containing a Frame Control field with ACKREQ bit set.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-10 18:27:49 +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
Gregory Nutt
dc8c814ca3 Squashed commit of the following:
Fixed coding standard error in several files.  Use of while( is incorrect; a space is required between while and (.  Also ran tools/nxstyle and fix thoses complaints as well in most files.

    Changes to comply with coding standard.  Mostly focused on files with missing space after keyword in if(, switch(, and for(.  Offending files also got changes to comply with tools nxstyle.  If there were logs of nxstyle complaints, the file also got a taste of tools/indent.sh.  Still need to fix occurrences of while( with missing space.  There are a lot of them.
2019-02-27 08:41:08 -06:00
Anthony Merlino
5e1f54ddc3 Merged in antmerlino/nuttx/mac802154_primitivebug (pull request #620)
mac802154: Fixes bug where primitive was freed when it shouldn't have been, causing double free call

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-03-28 15:50:41 +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
7cc63f90d9 sched/semaphore: sem_trywait() modifies the errno value and, hence, should not be used within the OS. Use nxsem_trywait() instead. 2017-10-05 07:59:06 -06:00
Gregory Nutt
83cdb0c552 Squashed commit of the following:
libc/semaphore:  Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable.  Changed all references to sem_getvalue in the OS to nxsem_getvalue().

    sched/semaphore:  Rename all internal private functions from sem_xyz to nxsem_xyz.  The sem_ prefix is (will be) reserved only for the application semaphore interfaces.

    libc/semaphore:  Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable.  Changed all references to sem_init in the OS to nxsem_init().

    sched/semaphore:  Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.

    sched/semaphoate:  Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -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
eaf4c05f27 ieee802154: Sets txdesc retrycount to the maxretries MAC attribute when allocated 2017-07-18 14:01:30 -04:00
Anthony Merlino
8610723ee6 ieee802154: Adds some wlinfo logs for debugging 2017-07-16 23:51:24 -04:00
Anthony Merlino
86b690a285 ieee802154: Fixes issue with association on beacon-enabled networking 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
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
Anthony Merlino
c8c31810dc ieee802154: Minor renaming. purge_time -> purgetime 2017-07-09 18:38:56 -04:00
Anthony Merlino
c72eb1b39b ieee802154: mac802154_purge_timeout was not unlocking MAC before returning 2017-07-09 17:59:22 -04:00
Anthony Merlino
4cf2d0a6a8 ieee802154: Changes mac locking/unlocking to aid in debugging 2017-07-07 23:31:23 -04:00
Gregory Nutt
053b6e3d9f Fix dangling white space at the end of lines. 2017-07-03 10:08:49 -06:00
Anthony Merlino
032deb5f49 ieee802154: Supports multiple incoming superframe events 2017-07-01 17:05:42 -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
b981ced4d4 ieee802154: Finishes beacon association functionality 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
ce8f2735ea ieee802154: Improves notification freeing functionality
Each notification now has a number of clients.  When the last client calls free, the notification is freed back to the pool
2017-07-01 17:05:42 -04:00
Gregory Nutt
1f81b14610 Beacon logic: Damage control. Looks like something went wrong with the PR merge. 2017-06-26 11:03:44 -06: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
45a32a116b wireless/ieee802154: Minor naming change to align better with coding guidelines 2017-06-20 19:14:05 -04:00
Gregory Nutt
cd8ac3f070 ieee802154 MAC: Free allocated TX descriptor if an error occurs after the descriptor has been allocated. 2017-06-20 15:00:23 -06:00
Gregory Nutt
d3b9ea9d66 Trivial.. missing newlines in debug output 2017-06-20 11:50:04 -06:00
Gregory Nutt
a82ab4b729 mac802154_req_data() can return without releasing the exclsem 2017-06-20 11:23:31 -06: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