nuttx/include/nuttx
Alexander Lunev eafe6e50ac net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO.
In case of enabled packet forwarding mode, packets were forwarded in a reverse order
because of LIFO behavior of the connection event list.
The issue exposed only during high network traffic. Thus the event list started to grow
that resulted in changing the order of packets inside of groups of several packets
like the following: 3, 2, 1, 6, 5, 4, 8, 7 etc.

Remarks concerning the connection event list implementation:
* Now the queue (list) is FIFO as it should be.
* The list is singly linked.
* The list has a head pointer (inside of outer net_driver_s structure),
  and a tail pointer is added into outer net_driver_s structure.
* The list item is devif_callback_s structure.
  It still has two pointers to two different list chains (*nxtconn and *nxtdev).
* As before the first argument (*dev) of the list functions can be NULL,
  while the other argument (*list) is effective (not NULL).
* An extra (*tail) argument is added to devif_callback_alloc()
  and devif_conn_callback_free() functions.
* devif_callback_alloc() time complexity is O(1) (i.e. O(n) to fill the whole list).
* devif_callback_free() time complexity is O(n) (i.e. O(n^2) to empty the whole list).
* devif_conn_event() time complexity is O(n).

Change-Id: I1123657f9a591b29f2a7546691d58dff58896a18
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-09-22 19:30:52 +08:00
..
1wire
analog stm32h7 fix adc port to handle overrun and the DR's fifo, adapt adc driver 2021-06-16 04:58:06 -07:00
audio feature:add audio AUDIOIOC_SETPARAMTER ioctl command 2021-08-13 15:47:56 +08:00
binfmt Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-09 21:03:17 +08:00
can
contactless
crypto Don't include debug.h from public header file 2021-06-01 06:42:02 +09:00
drivers sim_addrenv: support add addrenv dynamically multiple times. 2021-05-30 23:28:40 -05:00
eeprom
efuse
fs fs/ioctl: using FIOC_FILEPATH instead of FIOC_FILENAME. 2021-08-31 19:17:20 +08:00
himem
i2c
input feat: touch: add io command for touch firmware version 2021-08-31 20:18:35 +08:00
ioexpander Add basic support for MCP23017 I/O Expander 2021-05-16 12:48:52 -05:00
lcd feature: driver: add interface for lcd dev driver 2021-09-09 20:28:58 +08:00
leds
lib libc: Remove include/nuttx/lib/regex.h and libs/libc/misc/lib_match.c 2021-08-03 14:39:11 +08:00
mbox
mm mm: Remove mm_heap_impl_s struct 2021-07-07 04:25:15 -07:00
modem
motor drivers/motor/foq: Remove forward declaration for nonexistent type 2021-06-18 14:11:05 -03:00
mtd fs: Add model field to geometry and mtd_geometry_s 2021-08-18 18:37:51 +08:00
net net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO. 2021-09-22 19:30:52 +08:00
note
nx Documentation, comments: Minor improvements and typos fixed 2021-05-09 19:12:13 -07:00
power feat: charge: initialize pump charger sc8551a driver 2021-09-22 19:13:02 +08:00
rc
rf
rptun rptun: fix compile break when disable openamp 2021-07-15 13:43:13 +08:00
sensors Feature: Sensor: Add new sensor types 2021-08-17 15:56:29 +08:00
serial serial/uart/h4: add bt h4 uart serial driver 2021-06-03 18:33:20 +08:00
spi spi: Refactor SPI Slave interface prefix to sync with I2C Slave 2021-06-05 04:50:34 -07:00
syslog syslog/ramlog_channel: fix log confusion when multi task writing together 2021-07-03 11:24:21 -05:00
timers include: update licenses to Apache 2021-05-27 08:07:25 +09:00
usb include: update licenses to Apache 2021-05-27 08:07:25 +09:00
video feature: driver: add interface for fb driver 2021-09-09 20:31:28 +08:00
wireless Merge commit '2e43815c92' into dev 2021-07-13 03:14:34 +08:00
.gitignore
addrenv.h mm: Remove mm_heap_impl_s struct 2021-07-07 04:25:15 -07:00
arch.h nuttx/up_backtrace: add up_backtrace interface 2021-08-23 12:08:43 +08:00
ascii.h
b2c.h
board.h Rename CONFIG_LIB_BOARDCTL to CONFIG_BOARDCTL 2021-08-09 21:03:17 +08:00
cache.h
can.h
cancelpt.h
clock.h
compiler.h stddef: Let offset be defined from toolchain 2021-08-28 09:39:32 +08:00
elf.h
environ.h
envpath.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-09 21:03:17 +08:00
init.h
irq.h sched: Don't include nuttx/sched.h inside sched.h 2021-06-13 00:25:26 -07:00
kmalloc.h mm: Add kmm_malloc_size and mm_malloc_size 2021-07-05 14:23:24 +09:00
kthread.h sched: Add kthread_create_with_stack 2021-06-28 10:57:42 +08:00
lirc.h
list.h
mmcsd.h
module.h
mqueue.h mq_open: add long file name check and parameter check 2021-07-15 14:29:47 +08:00
mutex.h
nuttx.h
page.h
pgalloc.h
progmem.h
pthread.h libc: Call pthread_exit in user-space by up_pthread_exit 2021-05-21 22:46:52 -06:00
random.h
sched.h sched: Move tls_ndxset_t & tls_dtor_t to tls.h 2021-07-19 13:55:30 +08:00
sched_note.h
scsi.h
sdio.h sdio,stm32h7: fixed an issue with not starting IDMA data transfer in case of IO_RW_EXTENDED command (CMD53); 2021-06-21 02:47:46 -05:00
semaphore.h usrwqueue: implement order work queue 2021-07-25 00:12:40 +08:00
signal.h
spawn.h sched/task: Simplify the syscall handling of task_spawn 2021-06-13 00:30:57 -07:00
spinlock.h sched: Don't include nuttx/sched.h inside sched.h 2021-06-13 00:25:26 -07:00
streams.h drivers/syslog: Remove emergstream implementation and caller 2021-06-04 13:46:41 +08:00
symtab.h
time.h
tls.h libc: Implement gettext function 2021-08-04 14:02:16 +08:00
tree.h
userspace.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-09 21:03:17 +08:00
vt100.h
wdog.h sched/wdog: Remove flags field from wdog_s to save memory 2021-07-01 19:27:10 -03:00
wqueue.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-09 21:03:17 +08:00
zoneinfo.h Rename LIB_ to LIBC_ for all libc Kconfig 2021-08-09 21:03:17 +08:00