Commit Graph

57 Commits

Author SHA1 Message Date
Anthony Merlino
535db0140a Merged in antmerlino/nuttx/wirelessnetdev (pull request #984)
wireless network devices: Attach radio to d_buf before registering device to handle forwarding case.

When CONFIG_NET_IPFORWARD is enabled, and CONFIG_NET_6LOWPAN is being used, a packet that attempts to get forwarded on the 6LoWPAN interface will require that the radio's buffer be attached to d_buf. Otherwise the below exception will be hit.

~line 542 of sixlowpan_framelist.c

```
      /* Recover the reassembly buffer from the driver d_buf. */

      reass = (FAR struct sixlowpan_reassbuf_s *)radio->r_dev.d_buf;
      DEBUGASSERT(reass != NULL);
```

The underlying "radio" in this case is the mac802154_netdev.

This behavior has probably not been observed because the buffer is normally attached in the periodic txpoll worker. However, in my case, the 6LoWPAN interace was not UP yet, and therefore the worker hadn't run yet.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-10 18:22:39 +00:00
Michał Łyszczek
626afb015b nuttx/sched/mqueue: Change 'int prio' to 'unsigned int prio'. According to open group specification, priority field in mq_* functions should have unsigned type: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html 2019-02-15 19:18:55 -06:00
Lwazi Dube
701c8abbbb wireless/bluetooth and include/nuttx/wireless/bluetooth: Remove unnecessary gatt ioctls 2018-12-08 12:58:27 -06:00
Lwazi Dube
b7fa409fc4 include/nuttx/wireless/bluetooth adn include/nuttx/wireless/bluetooth: Add SIOCBTCONNECT and SIOCBTDISCONNECT ioctl commands 2018-12-02 10:57:51 -06:00
Lwazi Dube
aee64102be wireless/bluetooth/bt_hcicore.c: Add second RX work function 2018-11-30 06:34:18 -06:00
Lwazi Dube
08b37cc104 wireless/bluetooth/bt_att.c: Fix uninitialized variable. 2018-11-27 06:41:51 -06:00
Lwazi Dube
f1aa141d83 wireless/bluetooth/bt_conn.c: Fix uninitialized variable. 2018-11-25 15:50:07 -06:00
Gregory Nutt
6d93658ff8 Add new configuratin CONFIG_NET_MCASTGROUP. This option is selected automatically if either CONFIG_NET_IGMP or CONFIG_NET_MLD are selected. Most conditional logic based on CONFIG_NET_IGMP replaced with conditioning on CONFIG_NET_MCASTGROUP. 2018-10-31 15:03:51 -06:00
Gregory Nutt
ef3abe1423 Add missing function names in function headers. 2018-08-13 15:53:15 -06:00
Gregory Nutt
8c61c2f31b Remove trailing spaces at the end of lines. 2018-08-13 07:39:38 -06:00
Gregory Nutt
668df010ec Committed defconfigs for working configurations should never have CONFIG_EXPERIMENTAL set because the opens the doors for untested and incomplete configurations. Conversely, if there are released configurations that use features with dependencies on CONFIG_EXPERIMENTAL, then those configurations are in use and those dependencies should be removed:
graphics/vnc/server/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL
net/tcp/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL
wireless/bluetooth/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL

configs/lc823450-xgevk/audio/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/bt/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/ipl2/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/rndis/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/usb/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lpcxpresso-lpc54628/netnsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/moxa/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/olimex-stm32-p407/module/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/photon/wlan/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sabre-6quad/smp/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sam4cmp-db/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sama5d4-ek/elf/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sama5d4-ek/knsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/module/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/vnc/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/vnxwm/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/bluetooth/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/pf_ieee802154/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/pktradio/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/sixlowpan/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/traveler/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/userfs/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/stm32f4discovery/hciuart/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/stm32f4discovery/pseudoterm/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/teensy-3.x/usbnsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
2018-06-17 10:30:01 -06:00
Gregory Nutt
ae44eb2969 tools/kconfig2html.c and wireless/bluetooth/Kconfig: Fixes needed to generate new configuration variable document. 2018-06-03 10:03:35 -06:00
Gregory Nutt
fd844f8eac include/nuttx/wireless/bluetooth: Move Bluetooth header files from include/nuttx/wireless to include/nuttx/wireless/bluetooth for symmetry with other wireless technologies. 2018-04-29 12:43:09 -06:00
Gregory Nutt
0663e075ca Trivial typo fix 2018-04-22 08:39:18 -06:00
Gregory Nutt
f188b35707 Update some comments. 2018-04-22 07:36:39 -06:00
Gregory Nutt
5a8a9e3aec wireless/bluetooth: Adds implementation of GATT write IOCTL commands. 2018-04-21 08:55:58 -06:00
Gregory Nutt
87dd2dc16a wireless/bluetooth: Adds implementation of GATT read IOCTL commands. 2018-04-21 08:38:08 -06:00
Gregory Nutt
8aa5b6c6ac include/nuttx/wireless: Add support for the rest of the IOCTL options needed to support apps/wireless/bluetooth/btsak. This is only the IOCTL command definitions. The IOCTL command implementation is still missing. 2018-04-20 09:14:59 -06:00
Gregory Nutt
1d044e6952 Eliminate some warnings found in build-testing 2018-04-19 16:54:17 -06:00
Gregory Nutt
71b8d408e2 wireless/bluetooth: Add IOCTL commands to support MTU exchange. 2018-04-19 15:51:40 -06:00
Gregory Nutt
0a8dd2a778 wireless/bluetooth: Fix an attempt to use an uninitialized semaphore in the IOCTL logic. 2018-04-19 13:43:21 -06:00
Gregory Nutt
4eaa2b8306 wireless/bluetooth: IOCTL discover parameters need to persist throughout the discovery. 2018-04-19 11:57:15 -06:00
Gregory Nutt
2ebe8e99cc wireless/bluetooth: Add support for IOCTL commands to perform GATT discovery and obtain the results. 2018-04-19 11:26:36 -06:00
Gregory Nutt
f27124dfc4 include/nuttx/wireless: Remove bogus name from structure. This was left over from a previous change and had me confused for awhile. 2018-04-19 09:14:48 -06:00
Gregory Nutt
44a5a7e170 wireless/bluetooth: Remove Rx kernel thread. The operation of dispatching messages can be performed just as well on the high and low priority work queue. The network driver operates the low priority work queue so that also integrates better with network frame reception. 2018-04-19 08:52:09 -06:00
Gregory Nutt
8ab2eb55d6 drivers/wireless: Add option to dump I/O buffers. Fix calculation of response length. 2018-04-18 12:46:47 -06:00
Gregory Nutt
c13e54de10 arch/arm/src/stm32: Fix an error in the HCI UART. It was setting 9- vs 8-bit word size. 2018-04-17 08:30:16 -06:00
Gregory Nutt
862ff9cae3 arch/arm/src/stm32/: In HCI UART, sense of RTS and CTS are inverted. When we speak of asserting RTS we mean setting nRTS to zero. 2018-04-16 17:14:51 -06:00
Gregory Nutt
949adaa4c9 bt_hcicore.c edited online with Bitbucket 2018-04-15 02:04:26 +00:00
Gregory Nutt
91ff7cc785 wireless/bluetooth: Soften use of enter_critical_sectino() which is a performance hog in SMP configurations. Replace with spin_lock_irqsave() in most cases. That is the same for single core CPUs, but much more efficient in SMP configurations. And better, repace with sched_lock() if there is really no necessity to disable interrupts too. 2018-04-14 17:55:30 -06:00
Gregory Nutt
9aa1c6c3d5 wireless/bluetooth: Use nxsem_timedwait() vs nxsem_wait() when waiting for response from the HCI device. Adding this timeout prevents things from hanging when there is a problem with the connect HCI UART (in the current test, when there is no HCI UART connected). 2018-04-14 15:09:12 -06:00
Gregory Nutt
5d2c226675 wireless/bluetooth and drivers/wireless/bluetooth: Simply the driver registration/initialization interface. 2018-04-14 11:33:29 -06:00
Gregory Nutt
fa287e8863 Various fixes/changes from intial testing of the HCI UART on the STM32F4-Discovery board. Re-organized how the Blutetooth network driver is initialized. Added lots of new debug output. Add a new STM32 F4 Discovery configuration for testing the HCI UART. Various fixes to get through initialization (still does not). 2018-04-14 09:23:08 -06:00
Gregory Nutt
0686989645 configs/stm32fdiscovery: Add support in bringup logic to initialize the HCI UART and register the HCI UART network device. 2018-04-13 14:53:11 -06:00
Gregory Nutt
d25549ac54 This commit adds a Bluetooth HCI UART lower half driver for the STM32
Squashed commit of the following:

    arch/arm/src/stm32:  Add Kconfig options needed by the HCI UART.  Various fixes to finally get a clean error free compile with no unexpected warnings.
    arch/arm/src/stm32:  In HCI UART, use spin_lock_irqsave() instead of enter_critical_section() whenever possible.
    arch/arm/src/stm32:  In HCI UART, fix up naming of configurations so that they are unique.  Still needs Kconfig settings.  Modify logic so that there can be multiple HCI UARTs, some supporting DMA and some not.
    arch/arm/src/stm32:  Integrate watermarks and software Rx flow control into the HCI UART driver.
    arch/arm/src/stm32:  Eliminate some HCI UART UART configuration options.  Per the HCI UART spec, the link will b 8 data bits, no parity, 1 stop bit... Always.
    arch/arm/src/stm32:  Trivial cleanup
    arch/arm/src/stm32:  Fixes most initial compilation issues STM32 HCI UART driver.  Still need to set up USART configuration parmeters for HCI UART
    arch/arm/src/stm32:  Completes first cut at STM32 HCI UART driver.
    arch/arm/src/stm32:  Completes most of read logic for HCI UART.  Still needs to be able to block if no read data is available.  Still missing write and flush logic.
    drivers/wireless:    Remove txenable from HCI UART methods.  arch/arm/src/stm32:  Reorganize some structures in HCI UART.
    arch/arm/src/stm32:  Still messaging the HCI uart driver.
    arch/arm/src/stm32:  Some trivial renaming.
    arch/arm/src/stm32:  A little more HCI-UART logic.
    arch/arm/src/stm32:  Initial setup to support HCI-UART.  Little more than the serial driver with some name changes and a few things removed.
2018-04-13 10:36:23 -06:00
Gregory Nutt
4fd814982d drivers/bluetooth: Extend device simulation. Now makes it all the way through initialization without error. wireless/bluetooth: Add support for IOCTL commangs to get BR/EDR and LE features. 2018-04-06 16:22:49 -06:00
Gregory Nutt
ea84215059 drivers/bluetooth: Extend NULL driver to support a little more testing. 2018-04-06 14:07:03 -06:00
Gregory Nutt
5009c22f85 wireless/bluetooth: Implementat SIOCGBTINFO IOCTL command. Eliminated some redundancy. 2018-04-06 10:39:12 -06:00
Gregory Nutt
cab7ba8b8f Bluetooth: Better integrate NuttX Bluetooth IOCTL commands and NetBSD IOCTL commands. Stanardize naming. 2018-04-06 09:42:41 -06:00
Gregory Nutt
39e393fa5f net/bluetooth: Since the max header is always reported, the max frame size for purposes of allocation is the max header lenght plus the max payload, even though the frames with the max payload never have the max header length. 2018-04-05 16:40:59 -06:00
Juha Niskanen
797d9b1822 This commit adds a 1wire subsystem.
Squashed commit of the following:

Author: Gregory Nutt <gnutt@nuttx.org>
    Some cosmetic changes from coding style review.
Author: Juha Niskanen <juha.niskanen@haltian.com>
    drivers/1wire: add 1-wire subsystem and ds28e17 driver
2018-04-04 10:57:36 -06:00
Gregory Nutt
04b0ace6b0 wireless/bluetooth: With change the test with the simulated bluetooth driver can get all the way up the point where it determines that the attached controller is not LE capable. I am not sure how much first to take the simulation. The time would probably be better invested in bringing up real hardware. 2018-04-03 17:57:06 -06:00
Gregory Nutt
48dd0f3825 wireless/bluetooth: Fix some confusion in initialization of message queues. 2018-04-03 17:23:54 -06:00
Gregory Nutt
265b5d7dc6 wireless/bluetooth: A few trivial fixes from initial testing with the simulator. The simulated Bluetooth device is probably going to be in adequate for any level of testing. 2018-04-03 16:28:22 -06:00
Gregory Nutt
0142a5ad13 arch/sim/src: Variable fixes to get a Bluetooth simulation build. 2018-04-03 10:00:56 -06:00
Gregory Nutt
49644be9a5 include/nuttx/wireless and wireless/bluetooth: Add support for an IOCTL command to enable Bluetooth security. 2018-04-02 17:34:41 -06:00
Gregory Nutt
bf23588a41 include/nuttx/wireless: Another correction to a Bluetooth IOCTL command structure. 2018-04-02 14:20:01 -06:00
Gregory Nutt
15c7886fad include/nuttx/wireless: All Bluetooth IOCTL command data must begin with the interface name string. 2018-04-02 13:03:46 -06:00
Gregory Nutt
4ee0917789 wireless/bluetooth: Completes basic Rx/Tx data paths. Still missing: device address discovery and pairing logic. 2018-04-02 06:38:31 -06:00
Gregory Nutt
3a0f3d4be8 wireless/bluetooth: Buffer allocation was always allocationg a new buffer, even if one was provided.. causing data loss. Correct initialization of lengths: IOB lenth includes data offset. Bluetooth buffer length does not. 2018-04-01 15:46:11 -06:00