Gregory Nutt
306bd169f8
net/icmp: Ports the changes in ICMPv6 of commits 4629cf9461
and 74a633ea94
to ICMP. ICMP and ICMPv6 sockets are nearly identical, bug-for-bug.
2017-11-21 10:41:20 -06:00
Gregory Nutt
51c2fe321b
net/icmp: Eliminate a warning.
2017-10-24 15:46:32 -06:00
Gregory Nutt
70c59a9d91
This commit adds support for semi-standard IPPROTO_ICMP6 sockets. This is a replacement for the non-standard ICMPv6 ping support that violated the portable POSIX OS interface.
...
Squashed commit of the following:
net/icmpv6: IPPROT_ICMP6 socket logic now builds without error.
net/icmpv6: Add support for read-ahead and poll(). Initial commit is just cloned from ICMP with the appropriate name changes.
configs/: All defconfig filess that include CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and deselect CONFIG_DISABLE_POLL.
Update NSH documention to show that ping6 is now a built in command.
net/icmpv6: Add icmpv6_sendto.c and icmpv6_recvfrom.c. Initial versions are just clones from icmp/ with appropriate name changes.
net/icmpv6: Clone some ICMP socket logic as the beginning of support for ICMPv6 socket support.
Rename CONFIG_NET_ICMPv6_PING to CONFIG_NET_ICMPv6_SOCKET. Move prototype for icmpv6_ping from include/nuttx/net/icmpv6 to net/icmpv6/icmpv6.h
2017-10-24 11:23:08 -06:00
Gregory Nutt
bad3379bc4
net/icmp: Correct some comments, typings, spacing problems from last big ICMP socket change.
2017-10-23 14:27:31 -06:00
Gregory Nutt
cccc86da09
This change adds support for semi-standard IPPROTO_ICMP AF_INET datagram sockets. This replaces the old ad hoc, nonstandard way of implementing ping with a more standard, socket interface.
...
Squashed commit of the following:
net/icmp: Finishes off icmp_recvfrom().
net/icmp: Add readahead support for IPPROTO_ICMP sockets.
net/icmp: Add poll() support for IPPROTO_ICMP sockets.
net/icmp: Add a connection structure for IPPROTO_ICMP sockets.
net/icmp: Implements sendto for the IPPROTO_ICMP socket.
net/icmp: Move icmp_sendto() and icmp_recvfrom() to separate files. They are likely to be complex (when they are implemented).
net/icmp: Hook IPPROTO_ICMP sockets into network. Fix some naming collisions. Still missing basic ICMP send/receive logic.
configs: apps/system/ping current need poll() enabled.
configs: All defconfig files that use to enable low-level support must now enabled CONFIG_SYSTEM_PING.
net/icmp: Adds basic build framework to support IPPROTO_ICMP sockets.
2017-10-23 08:45:12 -06:00
Gregory Nutt
42a0796615
Squashed commit of the following:
...
sched/semaphore: Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable. Changed all references to sem_post in the OS to nxsem_post().
sched/semaphore: Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable. Changed all references to sem_destroy() in the OS to nxsem_destroy().
libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable. Changed all references to sem_setprotocol in the OS to nxsem_setprotocol(). sem_getprotocol() was not used in the OS
2017-10-03 15:35:24 -06:00
Gregory Nutt
83cdb0c552
Squashed commit of the following:
...
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue().
sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces.
libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init().
sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.
sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Gregory Nutt
0b2a4eb4bd
Networking: A little more wording changes related to interrupts vs. events
2017-08-29 15:08:38 -06:00
Gregory Nutt
04ad162540
Networking: Clean up some naming that has bothered me for a long time... There are no interrupts and no interrupt handlers in the network. There are events and event handler (there used to to be interrupt logic in there years ago but that is long, long gone).
2017-08-29 14:08:04 -06:00
Gregory Nutt
bd7c84b23e
Remove CONFIG_NETDEV_MULTINIC. This increases code size by a little, but greatly reduces the complexity of the network code.
2017-08-08 14:24:12 -06:00
Gregory Nutt
835ae2999d
networking: Move a little more to the inet/ subdirectory.
2017-08-07 13:03:23 -06:00
Gregory Nutt
aa2e9c15a5
IP forwarding: Major rearchitecting of the outgoing portion of the IP forwarding logic necessary into to properly received device-related forwarding events.
2017-07-07 20:19:26 -06:00
Gregory Nutt
803235ad4b
IP forwaring: Rename some files to get closer to other naming conventions.
2017-07-07 18:45:58 -06:00
Gregory Nutt
7258f1cbfc
IP forwarding: Move to separate directory. A few fixes from early testing; In TUN driver, do all polling on worker thread. Otherwise, the stack gets very deep.
2017-07-07 18:33:06 -06:00
Gregory Nutt
b5d7187df6
IP forwarding design simplication; might save some memory. Also fix some compile issues introduce with last commit in MULTINIC configration.
2017-07-06 16:19:10 -06:00
Gregory Nutt
efdc5b0c29
IP forwarding: Add missing ICMP support.
2017-07-06 07:49:55 -06:00
Gregory Nutt
d5207efb5a
Be consistent... Use Name: consistent in function headers vs Function:
2017-04-21 16:33:14 -06:00
Gregory Nutt
7467329a98
Eliminate CONFIG_NO_NOINTS. Lots of files changed -> lots of testing needed.
2016-12-03 16:28:19 -06:00
Gregory Nutt
6ff6cca1a0
Fix some mispellings of semaphore
2016-11-03 17:48:36 -06:00
Gregory Nutt
2d057c28c8
net: Disable priority inheritance on all semaphores used for signaling
2016-11-03 12:17:02 -06:00
Gregory Nutt
43eb04bb8f
Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info().
2016-06-20 11:59:15 -06:00
Gregory Nutt
d40a473f72
Without lowsyslog() *llwarn() is not useful. Eliminate and replace with *warn().
2016-06-20 09:37:08 -06:00
Gregory Nutt
7d0950bb22
net/: Change some nerr() ERRORS to nwarn() WARNINGS. Anomolous network events are not errors.
2016-06-12 07:09:37 -06:00
Gregory Nutt
f4fcdcdb4d
net/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition.
2016-06-11 17:37:21 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2
Rename *lldbg to *llerr
2016-06-11 14:55:27 -06:00
Gregory Nutt
fc3540cffe
Replace all occurrences of vdbg with vinfo
2016-06-11 11:59:51 -06:00
Gregory Nutt
b0ea870bcc
Remove some empty code section comments
2016-02-25 18:34:36 -06:00
Gregory Nutt
0fb035f76b
Standardize some naming in code section comments
2016-02-21 18:09:04 -06:00
Gregory Nutt
f348e68069
Update to use 64-bit timer when available
2016-01-21 11:54:26 -06:00
Gregory Nutt
c16648b3fd
Most cosmetic but also includes a fix for a compile problem from Ken Pettit
2015-12-01 12:54:57 -06:00
Gregory Nutt
6af3ba78b9
Remove CONFIG_NET_PINGADDRCONF. This was a uIP way of assigning IP addresses, but is not standard and not a appropriate feature in general.
2015-12-01 07:48:56 -06:00
Gregory Nutt
6209c51206
net/: More clean-up of spacing/alignment issues
2015-10-08 15:10:04 -06:00
Gregory Nutt
af086c40ff
Remove dangling whitespace
2015-10-04 15:28:54 -06:00
Gregory Nutt
cb9e27c3b0
Standardize naming used for public data and function groupings
2015-10-02 16:30:35 -06:00
Gregory Nutt
342f5fe33d
Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation
2015-06-28 08:08:57 -06:00
Gregory Nutt
8f7752d956
Networking: Modify how callback structures are stored to avoid another potential use of a stal pointer.
2015-06-03 08:11:57 -06:00
Gregory Nutt
ab50e9d04d
Networking: Get rid of g_ipv4_allzeroaddr and g_ipv4_alloneaddr. It is more efficient and more intuitive to use INADDR_ANY and INADDR_BROADCAST
2015-05-29 15:16:11 -06:00
Gregory Nutt
e81f279315
Networking: Modify event list handling: Now there are two event lists each device structure: (1) One is for ARP and ICMP data related evetns, the other is for device related events. Callback allocation/free routines no accept a device paramter as well as a list: If the device paramter is added, then the callback goes into both the connection-related liast AND the device event list. Thus each socket type can received both custom data-related events as well as common device related events.
2015-05-28 12:01:38 -06:00
Gregory Nutt
b94321cfb4
Extend device specific callbacks to ICMPv6 and ARP. Fix some IPv6 compilation errors that have crept in
2015-05-27 11:39:44 -06:00
Gregory Nutt
8ecb84ed89
Improve icmp handling if MULTINIC enabled. From Max Neklyudov
2015-05-27 09:26:00 -06:00
Gregory Nutt
b756df982d
net/: Lots of build problems introduced into multiple NIC support. Many places where conditional logic based on CONFIG_NETDEV_MULTINIC is confused with CONFIG_NET_MULTILINK. Lots of code changed with IPv6 that was never compiled with MULTINIC enabled. Still some problem with parameter passing.
2015-02-09 18:15:34 -06:00
Gregory Nutt
f4bb7f14e1
Networking: Clean up network status collection and presentation for IPv6
2015-01-24 08:26:12 -06:00
Gregory Nutt
96a53254dd
Some minor clean-up of IPv4/6 flags
2015-01-24 07:29:43 -06:00
Gregory Nutt
30f0a942e1
Networking: First cut at ICMPv6 ping logic
2015-01-23 14:06:08 -06:00
Gregory Nutt
4ab8e85dba
Networking: Change some debug outputto vebose debug output
2015-01-21 14:23:50 -06:00
Gregory Nutt
d68cd0d8de
Networking: Update ICMPv6 logic to RFCs
2015-01-20 11:06:51 -06:00
Gregory Nutt
88a0e82934
Networking: Remove field d_sndata from the device structure. It is the same as d_appdata and unnecessary
2015-01-17 05:59:13 -06:00
Gregory Nutt
5e938941a6
Networking: Replace all references to net_ipaddr_t with either in_addr_t on net_ipv6addr_t. The goal is to support both IPv4 and IPv6 simultaneously. This requires that the two types be distinct and not conditionally typedef'ed to net_ipaddr_t.
2015-01-16 12:30:18 -06:00
Gregory Nutt
5a441ce03b
Networking: Misck IPv6 detanglement
2015-01-15 12:19:44 -06:00
Gregory Nutt
a7ce1279f9
Networking: (1) Copied all ICMP sources files to net/icmpv6 with proper renaming and removal of IPv4 logic, (2) remove IPv6 logic from files in net/icmp, (3) copied include/nuttx/icmp.h to icmpv6.h and removed IPv4 specific logic, (4) removed all IPv6 logic from icmp.h, (5) IP_HDRLEN became IPv4_HDRLEN and IPv6_HDRLEN, (6) ip_chksum() became ipv4_chksum() and ipv6_chksum(), and (7) added partial support for ICMPv6 statistics.
2015-01-14 16:10:38 -06:00
Gregory Nutt
99a18c84ff
Networking: Remove all logic conditioned upon IPv6 from the net/icmp/directory
2015-01-14 14:47:40 -06:00
Gregory Nutt
fcd65e9d7d
Networking: Make a home for ICMPv6
2015-01-14 14:26:50 -06:00
Gregory Nutt
b36dbe1d89
Add logic to netdev_findbyaddr() to return the correct network device for the case where a broadcast address is used. This change caused trivial ripples through other files because additional parameters are required for netdev_findbyaddr() when CONFIG_NET_MULTINIC
2014-11-23 11:00:22 -06:00
Gregory Nutt
c64cb19861
Move IP header flags from tcp.h to ip.h and rename IP_FLAGS vs TCPFLAGS. The problem fixed here is that there IP flags were not available when TCP was disabled. The IP flags are used in ICMP and IGFMP
2014-11-17 17:16:46 -06:00
Gregory Nutt
2e55db369d
Network: All logic will now handle varialbe length link layer protocol headers within incoming packets. This permits use of multiple network interfaces with differing data links. For example, ETHERNET + SLIP
2014-11-15 13:13:23 -06:00
Gregory Nutt
6e04518e4a
If CONFIG_NET_ARP_SEND is enabled, then all ICMP, TCP, and UDP send operations will call arp_send() before attempting the real send operation. arp_send() will check if the the IP address mapping is in the ARP table and, if not send ARP requests periodically until it is. This eliminates losing the first outgoing message because there is not mapping in the ARP table.
2014-08-18 16:22:14 -06:00
Gregory Nutt
caba61999a
Remove CONFIG_DISABLE_CLOCK
2014-08-07 12:35:24 -06:00
Gregory Nutt
73f3ecf7e2
NET: Rename network interrupt event flags more appropriately: TCP_, UDP_, ICMP_, or PKT_ vs UIP_
2014-07-06 17:22:02 -06:00
Gregory Nutt
a251259f90
NET: Rename some non-configurable constants UIP_ to IP_ or TCP_
2014-07-06 16:19:26 -06:00
Gregory Nutt
b77fda2c95
NET: Rename TCP state values: UIP_ -> TCP_
2014-07-06 16:10:26 -06:00
Gregory Nutt
c5fc24e110
NET: Standardize naming of all protocal header lengths
2014-07-05 13:04:48 -06:00
Gregory Nutt
60246e613b
NET: emoved all includes of uip.h; added includes of ip.h wherever needed. Tried to fix problems of the now missing sneak inclusions because uip.h was removed. There are probably a few of these that were missed.
2014-07-04 19:13:08 -06:00
Gregory Nutt
0bb153b8cb
Remove all inclusion of uip.h
2014-07-04 16:58:22 -06:00
Gregory Nutt
a6b39d1879
NET: in-progress change... don't use
2014-07-04 16:38:51 -06:00
Gregory Nutt
cce35ce975
NET: More renaming
2014-07-04 15:40:49 -06:00
Gregory Nutt
3e0bd1f1b0
NET: Rename some address comparison macros
2014-07-01 18:11:05 -06:00
Gregory Nutt
96a6c725d5
NET: Some minor clean-up
2014-06-30 19:43:30 -06:00
Gregory Nutt
b18ac3c778
NET: Rename uip_ping to icmp_ping
2014-06-30 18:15:59 -06:00
Gregory Nutt
ad3e39e53d
NET: Rename uiphdr_ipaddr_copy to net_ipaddr_hdrcopy, uip_ip4addr_conv to net_ip4addr_conv32, and uip_ethaddr_cmp to eth_addr_cmp
2014-06-29 13:20:00 -06:00
Gregory Nutt
c362f21815
NET: Rename uip_ipaddr* to net_ipaddr*
2014-06-29 13:11:08 -06:00
Gregory Nutt
fa68fcc843
NET: Rename uip_callback_s to devif_callback_s
2014-06-29 12:59:34 -06:00
Gregory Nutt
899dc193ca
NET: Renaming of IP address types
2014-06-29 12:22:50 -06:00
Gregory Nutt
8e706eb4ff
Rename many functions in net/devif from uip_* to devif_*
2014-06-28 18:36:09 -06:00
Gregory Nutt
5790c94ba3
Rename net/uip to net/devif. Rename uip/uip.h to devif/devif.h
2014-06-28 18:07:02 -06:00
Gregory Nutt
76fa58ee00
Move all socket-related files from net/ to net/socket. Move net/net.h to net/socket/socket.h
2014-06-28 17:25:18 -06:00
Gregory Nutt
64c8dba8c4
NET: Create net/sockets directory and hook into the build/configuration system
2014-06-28 16:41:55 -06:00
Gregory Nutt
50b749a636
Clean-up naming associated with network checksums
2014-06-27 17:51:32 -06:00
Gregory Nutt
fce2a79abd
Rename uip_driver_s net_driver_s
2014-06-27 16:48:12 -06:00
Gregory Nutt
953764181e
NET: Move net/netdev*.c to net/netdev/netdev*.c
2014-06-27 09:56:45 -06:00
Gregory Nutt
64ba574ecc
Move files to net/utils; make appropriate name changes, most for uip_lock to net_lock
2014-06-26 14:23:21 -06:00
Gregory Nutt
e1091251e6
NET: Move statistcs from uip.h to new netstats.h to remove nasty circular inclusion problem.
2014-06-26 09:32:39 -06:00
Gregory Nutt
1a2bcebb4a
Clean up some networking configuration menus
2014-06-25 11:01:08 -06:00
Gregory Nutt
f57024406a
Clean up IGMP naming
2014-06-25 09:52:36 -06:00
Gregory Nutt
92d3075ae0
Clean up ICMP naming
2014-06-25 09:12:47 -06:00
Gregory Nutt
5d1f8180d4
Move the remaining files from include/nuttx/net/uip to include/nuttx/net; Rename *_internal.h header files in net/ to just *.h
2014-06-24 10:14:15 -06:00
Gregory Nutt
37646044ac
Move include/nuttx/net/uip/uip-arch.h to include/nuttx/net/netdev.h
2014-06-24 09:28:44 -06:00
Gregory Nutt
626469e30c
Move include/nuttx/net/uipopt.h to include/nuttx/net/netconfig.h
2014-06-24 08:53:28 -06:00
Gregory Nutt
da4277357c
Move arp, icmp, and igmp configuration values into new Kconfig files in those directories
2014-05-30 14:44:07 -06:00
Gregory Nutt
0e05230c28
Move ICMP files from net/uip to net/icmp
2014-05-30 13:32:10 -06:00