nuttx/net
Michael Jung 2e27698d6c SLIP: Switch to poll based design
This is a refactored version of the SLIP network driver.  Updates
include:

1. The original design started two kernel threads per SLIP device.
   The refactored version uses file_poll to essentially be driven
   by the UART RX and TX interrupts and pushes work to the low
   priority work queue.

2. The SLIP byte un-/stuffing is more efficient now, using memcpy
   instead of handling each byte individually.

3. The switch of the old SLIP driver to IOBs caused buffer overwrites
   if packets were sent that would not fit into a single IOB.  This is
   fixed now.

Signed-off-by: Michael Jung <michael.jung@secore.ly>
2023-05-26 19:57:57 -03:00
..
arp Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
bluetooth net: Remove some minor #warning since it compiler specific 2023-05-18 15:44:28 +03:00
can Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
devif Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
icmp nuttx/net:Support to PMTUD 2023-05-12 10:21:52 -03:00
icmpv6 net/icmpv6: fix style issues 2023-05-19 02:40:38 +08:00
ieee802154 net: Remove some minor #warning since it compiler specific 2023-05-18 15:44:28 +03:00
igmp
inet Remove #warning if the code already return the error code or value 2023-05-18 15:44:28 +03:00
ipforward forward: copy iob when broadcast forward 2023-05-06 03:18:08 +08:00
ipfrag nuttx/net:Support to PMTUD 2023-05-12 10:21:52 -03:00
local Remove #warning if the code already return the error code or value 2023-05-18 15:44:28 +03:00
mld
nat
neighbor Replace all sprintf with snprintf 2023-05-08 09:57:01 +02:00
netdev net/procfs: Support to show MTU in netdev statistics 2023-04-28 09:45:21 +08:00
netfilter Fix Kconfig style 2023-05-23 00:03:25 +08:00
netlink net: remove conn-related casts 2023-05-10 19:32:09 -03:00
pkt net: remove conn-related casts 2023-05-10 19:32:09 -03:00
procfs net: Simplify the tcp/udp existence check 2023-05-03 17:40:00 +03:00
route net: use NXRMUTEX_INITIALIZER for rmutex init 2023-03-15 13:57:08 +01:00
rpmsg net/rpmsg: initialize semaphore count before wait 2023-05-16 17:15:42 +08:00
sixlowpan Fix Kconfig style 2023-05-23 00:03:25 +08:00
socket socket/send/recv: Copy user parameters to kernel memory (BUILD_KERNEL) 2023-05-27 03:24:06 +08:00
tcp net: Add the check that socket domain is equal to bound address type, when do bind. 2023-05-18 01:08:38 +03:00
udp net/udp: remove FAR for non-pointer variables 2023-05-19 02:40:38 +08:00
usrsock net/local: Return the unblock handle correctly in local_accept 2023-03-09 09:17:19 +01:00
utils Remove #warning if the code already return the error code or value 2023-05-18 15:44:28 +03:00
Kconfig SLIP: Switch to poll based design 2023-05-26 19:57:57 -03:00
Makefile
net_initialize.c
README.txt

README
======

Directory Structure
===================

  nuttx/
   |
   `- net/
       |
       +- arp        - Address resolution protocol (IPv4)
       +- bluetooth  - PF_BLUETOOTH socket interface
       +- devif      - Stack/device interface layer
       +- ipfrag     - Fragmentation and reassembly
       +- icmp       - Internet Control Message Protocol (IPv4)
       +- icmpv6     - Internet Control Message Protocol (IPv6)
       +- ieee802154 - PF_IEEE802154 socket interface
       +- inet       - PF_INET/PF_INET6 socket interface
       +- ipforward  - IP forwarding logic
       +- local      - Unix domain (local) sockets
       +- mld        - Multicast Listener Discovery (MLD)
       +- neighbor   - Neighbor Discovery Protocol (IPv6)
       +- netdev     - Socket network device interface
       +- netlink    - Netlink IPC socket interface
       +- pkt        - "Raw" packet socket support
       +- sixlowpan  - 6LoWPAN implementation
       +- socket     - BSD socket interface
       +- route      - Routing table support
       +- tcp        - Transmission Control Protocol
       +- udp        - User Datagram Protocol
       +- usrsock    - User socket API for user-space networking stack
       `- utils      - Miscellaneous utility functions

    +-------------------------------------------------------------------++------------------------+
    |                     Application layer                             || usrsock daemon         |
    +-------------------------------------------------------------------++------------------------+
    +-------------------------------------------------------------------++----------------+ +-----+
    |                   Socket layer (socket/)                          || /dev/usrsock   | |     |
    +-------------------------------------------------------------------++----------------+ |     |
    +------------++--------------------------------------------------++-------------------+ |     |
    |  Network   || Protocol stacks (arp, ipv6, icmp, pkt, tcp, udp) || usrsock/          | |     |
    |   Device   |+--------------------------------------------------++-------------------+ |     |
    | Interface  |+------------------------------------++---------------------------------+ |     |
    | (netdev/)  ||  Network Device Interface (devif/) || Utilities                       | |     |
    +------------++------------------------------------++---------------------------------+ |     |
    +----------------------------------------------------------------+                      |     |
    |                    Network Device Drivers                      |                      | HAL |
    +----------------------------------------------------------------+                      +-----+
    +----------------------------------------------------------------+ +--------------------------+
    |                    Networking Hardware                         | |  Hardware TCP/IP Stack   |
    +----------------------------------------------------------------+ +--------------------------+