nuttx/net/usrsock
Alexander Lunev 36fbedcbfc 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).
2021-09-18 21:01:39 -05:00
..
Kconfig Kconfig: remove empty help sections 2021-07-23 02:32:19 -07:00
Make.defs net/socket: move si_send/recv into sendmsg/recvmsg 2021-03-05 04:46:13 -08:00
usrsock_accept.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_bind.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_close.c Replace #include <semaphore.h> to #include <nuttx/semaphore.h> 2020-02-01 08:27:30 -06:00
usrsock_conn.c net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO. 2021-09-18 21:01:39 -05:00
usrsock_connect.c net: fix nxstyle errors 2021-04-02 11:12:25 -05:00
usrsock_dev.c net/usrsock/usrsock_dev.c: Fix syslog formats 2020-11-27 05:18:57 -06:00
usrsock_event.c usrsock/recv: guarantee all data is received before close 2021-07-07 08:40:55 +09:00
usrsock_getpeername.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_getsockname.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_getsockopt.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_ioctl.c sourcefiles: Fix relative path in file header 2021-03-09 23:18:28 +08:00
usrsock_listen.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_poll.c net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO. 2021-09-18 21:01:39 -05:00
usrsock_recvmsg.c usrsock/recv: guarantee all data is received before close 2021-07-07 08:40:55 +09:00
usrsock_sendmsg.c net/usrsock: add send multi-elements support 2021-03-23 00:44:37 -07:00
usrsock_setsockopt.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_socket.c net: fix typos, incorrect comments, nxstyle 2020-12-13 09:06:28 -06:00
usrsock_sockif.c net/socket: move si_send/recv into sendmsg/recvmsg 2021-03-05 04:46:13 -08:00
usrsock.h net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO. 2021-09-18 21:01:39 -05:00