circuitpython/extmod
Jim Mussared 341158c251 extmod/nimble: Add "memory stalling" mechanism for l2cap_send.
When l2cap_send detects that the sys mempool is running low (used to store
the outgoing HCI payloads), it will report stalled back to the application,
and then only unstall once these HCI payloads have been sent.

This prevents a situation where a remote receiver with very large MTU can
cause NimBLE to queue up more than MYNEWT_VAL_MSYS_1_BLOCK_COUNT (i.e. 12)
payloads, causing further attempts to send to fail with ENOMEM (even though
the channel is not stalled and we have room in the channel mbufs). The
regular credit/stall flow control is not effective here because the
receiver's MTU is large enough that it will not activate (i.e. there are
lots of credits available).

Thresholds of 1/2 (stall) and 1/4 (unstall) chosen to allow headroom for
other payloads (e.g. notifications) and that when a regular stall occurs it
might keep sending (and creating more payloads) in the background.
2021-07-23 21:58:10 +10:00
..
axtls-include extmod: Update for move of crypto-algorithms, re1.5, uzlib to lib. 2021-07-12 16:37:07 +10:00
btstack extmod/btstack/btstack.mk: Use -Wno-implicit-fallthrough, not =0. 2021-07-17 23:55:25 +10:00
lwip-include all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
nimble extmod/nimble: Add "memory stalling" mechanism for l2cap_send. 2021-07-23 21:58:10 +10:00
uasyncio extmod/uasyncio: Get addr and bind server socket before creating task. 2021-06-26 22:30:22 +10:00
webrepl all: Rename "sys" module to "usys". 2020-09-04 00:10:24 +10:00
extmod.cmake all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
extmod.mk all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
machine_i2c.c extmod/machine_i2c: Add init protocol method for generic I2C bindings. 2020-11-23 19:45:04 +11:00
machine_i2c.h extmod/machine_i2c: Add init protocol method for generic I2C bindings. 2020-11-23 19:45:04 +11:00
machine_mem.c extmod/machine_mem: Only allow integers in machine.memX subscript. 2020-11-13 11:13:37 +11:00
machine_mem.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
machine_pinbase.c extmod/machine_pinbase: Put PinBase singleton in ROM. 2017-09-12 16:00:21 +10:00
machine_pinbase.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_pulse.c esp8266: Provide custom machine_time_pulse_us that feeds soft WDT. 2019-07-01 22:53:00 +10:00
machine_pulse.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_signal.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
machine_signal.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
machine_spi.c extmod/machine_spi: Remove "id" arg in SoftSPI constructor. 2020-10-01 12:57:10 +10:00
machine_spi.h ports: Support legacy soft I2C/SPI construction via id=-1 arg. 2020-10-01 12:57:10 +10:00
misc.h extmod/uos_dupterm: Add mp_uos_dupterm_poll to poll all dupterms. 2019-07-01 17:10:12 +10:00
modbluetooth.c extmod/modbluetooth: Clamp MTU values to 32->UINT16_MAX. 2021-07-23 21:57:58 +10:00
modbluetooth.h extmod/modbluetooth: Separate enabling of "client" from "central". 2021-02-19 17:53:43 +11:00
modbtree.c extmod/modbtree: Retain reference to underlying stream so it's not GC'd. 2020-05-02 16:08:04 +10:00
modframebuf.c extmod/modframebuf: Change int to unsigned int in format methods args. 2021-01-29 23:57:10 +11:00
modlwip.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
modonewire.c extmod/modonewire: Use pin_od_high/pin_od_low instead of pin_write. 2021-01-29 23:57:10 +11:00
moduasyncio.c all: Fix signed shifts and NULL access errors from -fsanitize=undefined. 2021-06-24 23:01:04 +10:00
modubinascii.c extmod: Update for move of crypto-algorithms, re1.5, uzlib to lib. 2021-07-12 16:37:07 +10:00
moducryptolib.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
moductypes.c extmod/moductypes: Fix size and offset calculation for ARRAY of FLOAT32. 2021-05-06 13:11:33 +10:00
moduhashlib.c extmod: Update for move of crypto-algorithms, re1.5, uzlib to lib. 2021-07-12 16:37:07 +10:00
moduheapq.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
modujson.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
modurandom.c extmod/modurandom: Support an argument of bits=0 to getrandbits. 2021-05-30 17:05:56 +10:00
modure.c py: Introduce and use mp_raise_type_arg helper. 2021-07-15 00:12:41 +10:00
moduselect.c extmod/moduselect: Conditionally compile select(). 2021-07-17 23:32:39 +10:00
modussl_axtls.c extmod/modussl: Fix ussl read/recv/send/write errors when non-blocking. 2021-02-17 11:50:54 +11:00
modussl_mbedtls.c extmod/modussl: Fix ussl read/recv/send/write errors when non-blocking. 2021-02-17 11:50:54 +11:00
modutimeq.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
moduwebsocket.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
moduwebsocket.h extmod/moduwebsocket: Refactor websocket to uwebsocket. 2019-02-14 00:35:45 +11:00
moduzlib.c py: Introduce and use mp_raise_type_arg helper. 2021-07-15 00:12:41 +10:00
modwebrepl.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
mpbthci.c extmod/modbluetooth: Refactor stack/hci/driver/port bindings. 2020-09-08 11:41:31 +10:00
mpbthci.h extmod/modbluetooth: Refactor stack/hci/driver/port bindings. 2020-09-08 11:41:31 +10:00
network_cyw43.c all: Format code to add space after C++-style comment start. 2020-04-23 11:24:25 +10:00
network_cyw43.h extmod: Add network-level class binding to cyw43 driver. 2019-06-03 16:47:35 +10:00
uos_dupterm.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
utime_mphal.c extmod/utime: Always invoke mp_hal_delay_ms when >= to 0ms. 2021-07-22 00:05:17 +10:00
utime_mphal.h extmod/utime_mphal: Add generic utime.time_ns() function. 2020-10-01 14:20:42 +10:00
vfs_blockdev.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
vfs_fat_diskio.c tools/uncrustify: Enable more opts to remove space between func and '('. 2020-06-19 22:07:32 +10:00
vfs_fat_file.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
vfs_fat.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
vfs_fat.h extmod: Factor out block-device struct to make independent of fatfs. 2019-10-29 12:12:37 +11:00
vfs_lfs.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
vfs_lfs.h extmod: Add VFS littlefs bindings. 2019-10-29 14:17:29 +11:00
vfs_lfsx_file.c extmod/vfs_lfs: Add mtime support to littlefs files. 2020-08-25 17:35:19 +10:00
vfs_lfsx.c all: Update to point to files in new shared/ directory. 2021-07-12 17:08:10 +10:00
vfs_posix_file.c extmod/vfs_posix_file: Allow closing an already closed file. 2021-02-11 22:54:41 +11:00
vfs_posix.c extmod/vfs: Support larger integer range in VFS stat time fields. 2020-09-01 12:36:28 +10:00
vfs_posix.h extmod/vfs: Introduce a C-level VFS protocol, with fast import_stat. 2018-06-06 14:33:42 +10:00
vfs_reader.c extmod/vfs_reader: Fix mp_reader_new_file to open file in "rb" mode. 2020-08-12 23:40:50 +10:00
vfs.c extmod/vfs: Check block 0 and 1 when auto-detecting littlefs. 2021-01-29 15:02:55 +11:00
vfs.h extmod/vfs: Factor out vfs mount-and-chdir helper from stm32. 2020-03-11 14:24:26 +11:00
virtpin.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
virtpin.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00