mirror of
https://github.com/apache/nuttx.git
synced 2026-08-14 08:53:15 +00:00
Author: Gregory Nutt <gnutt@nuttx.org>
Run all .h and .c files modified in last PR through nxstyle.
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Net cleanup (#17)
* Fix the semaphore usage issue found in tcp/udp
1. The count semaphore need disable priority inheritance
2. Loop again if net_lockedwait return -EINTR
3. Call nxsem_trywait to avoid the race condition
4. Call nxsem_post instead of sem_post
* Put the work notifier into free list to avoid the heap fragment in the long run. Since the allocation strategy is encapsulated internally, we can even refine the implementation later.
* Network stack shouldn't allocate memory in the poll implementation to avoid the heap fragment in the long run, other modification include:
1. Select MM_IOB automatically since ICMP[v6] socket can't work without the read ahead buffer
2. Remove the net lock since xxx_callback_free already do the same thing
3. TCP/UDP poll should work even the read ahead buffer isn't enabled at all
* Add NET_ prefix for UDP_NOTIFIER and TCP_NOTIFIER option to align with other UDP/TCP option convention
* Remove the unused _SF_[IDLE|ACCEPT|SEND|RECV|MASK] flags since there are code to set/clear these flags, but nobody check them.
|
||
|---|---|---|
| .. | ||
| arp | ||
| bluetooth | ||
| devif | ||
| icmp | ||
| icmpv6 | ||
| ieee802154 | ||
| igmp | ||
| inet | ||
| ipforward | ||
| local | ||
| loopback | ||
| mld | ||
| neighbor | ||
| netdev | ||
| netlink | ||
| pkt | ||
| procfs | ||
| route | ||
| sixlowpan | ||
| socket | ||
| tcp | ||
| udp | ||
| usrsock | ||
| utils | ||
| .gitignore | ||
| Kconfig | ||
| 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
+- 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
+- loopback - Local loopback
+- 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 |
+----------------------------------------------------------------+ +--------------------------+