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
|
2ada7d5892
|
IPv6: Remove comparisons to the address with all ones set. IPv6 does not support broadcast addresses and certainly not in that form. Replace with multicast addresses beginning with 0xff02.
|
2017-08-07 11:50:50 -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
|
9c3bade7b4
|
net/tcp: tcp_ipvX_bind() not actually using the ported selected with port==0. Also removes duplicate call to pkt_input(). Issues noted by Pascal Speck.
|
2016-08-30 07:59:57 -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 |
|
Jakub Łągwa
|
338b915008
|
While working with version 7.10 I discovered a problem in TCP stack that could be observed on high network load. Generally speaking, the problem is that RST flag is set in unnecessary case, in which between loss of some TCP packet and its proper retransmission, another packets had been successfully sent. The scenario is as follows: NuttX did not receive ACK for some sent packet, so it has been probably lost somewhere. But before its retransmission starts, NuttX is correctly issuing next TCP packets, with sequence numbers increasing properly. When the retransmission of previously lost packet finally succeeds, tcp_input receives the accumulated ACK value, which acknowledges also the packets sent in the meantime (i.e. between unsuccessful sending of lost packet and its proper retransmission). However, variable unackseq is still set to conn->isn + conn->sent, which is truth only if no further packets transmission occurred in the meantime. Because of incorrect (in such specific case) unackseq value, few lines further condition if (ackseq <= unackseq)is not met, and, as a result, we are going to reset label.
|
2016-06-20 06:55:29 -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
|
4f208600aa
|
Replace confusing references to uIP with just 'the network'
|
2016-05-30 09:31:44 -06:00 |
|
Gregory Nutt
|
8db55f6493
|
Back out most of previous commit
|
2016-02-26 06:45:37 -06:00 |
|
Gregory Nutt
|
0b441ff1f4
|
net/: Add basic IEEE 802.15-4 socket support
|
2016-02-25 14:01:22 -06:00 |
|
Gregory Nutt
|
0e2986f131
|
net/tcp: The logic that binds a specific networkd device to a connection was faulty for the case of multiple network devices. On bind(), the local address should be used to associate a device with the connection (if the local address is not INADDR_ANY); On connect(), the remote address should be used (in case the local address is INADDR_ANY). On accept(), it does not matter but the remote address is the one guarenteed to be available.
|
2015-09-02 19:48:31 -06:00 |
|
Gregory Nutt
|
b1e09d4847
|
net/socket and net/tcp: Fix a problem in whent there are multiple network devices. Polls were being sent to all TCP sockets before. This is not good because it means that packets may sometimes be sent out on the wrong device. That is inefficient because it will cause retransmissions and bad performance. But, worse, when one of the devices is not Ethernet, it will have a different MSS and, as a result, incorrect data transfers can cause crashes. The fix is to lock into a single device once the MSS is locked locked down.
|
2015-08-27 09:06:46 -06:00 |
|
Gregory Nutt
|
007aabc46f
|
Fix a badly formatted comment
|
2015-08-26 19:18:04 -06:00 |
|
Gregory Nutt
|
04a661a97c
|
TCP networking: Add support for network driver events
|
2015-05-30 09:12:27 -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
|
a82b8fd71f
|
Networking: Fix several build errors/warning with IPv4 + IPv6 + multiple networks are enabled.
|
2015-02-10 06:54:10 -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
|
5d31687e75
|
Correct name of fields in struct sockaddr_in6: sin6_port and sin6_family, not sin_port and sin_family
|
2015-01-20 18:14:09 -06:00 |
|
Gregory Nutt
|
f7663ef0ab
|
Networking: Final detangle off IPv4 and IPv6 TCP/UDP send logic. The Networking subsystem now compiles with IPv6 enabled
|
2015-01-18 08:56:05 -06:00 |
|
Gregory Nutt
|
86f617cc88
|
Networking: Straighten up use if IPv6/IPv4 in TCP connection logic
|
2015-01-17 17:07:54 -06:00 |
|
Gregory Nutt
|
b187b4f381
|
Networking: Straighten up use if IPv6/IPv4 in TCP connection logic
|
2015-01-17 15:17:35 -06:00 |
|
Gregory Nutt
|
f7681dbb43
|
Networking: Detangling IPv6/4 logic in UDP connection structures
|
2015-01-17 14:13:56 -06:00 |
|
Gregory Nutt
|
94f9312150
|
Networking: Save the IP domain in the connection structure
|
2015-01-17 13:07:48 -06:00 |
|
Gregory Nutt
|
8f8259a0d6
|
Networking: UDP and TCP MSS depends on the IP header size (as well as the link layer header size) and cannot be represented with a single value.
|
2015-01-16 15:03:10 -06:00 |
|
Gregory Nutt
|
2663538b0a
|
Networking: Replace all references to the macros net_ipaddr_copy, net_ipaddr_hdrcopy, net_ipaddr_cmp, net_ipaddr_hdrcmp, and net_ipaddr_maskcmp with the appropriate IPv4 or IPv6 version of the macro (such as net_ipv4addr_copy). The goal is to support both IPv4 and IPv6 simultaneously. This requires that the macros be distinct and not conditionally defined to one on or the other.
|
2015-01-16 13:01:08 -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
|
bee89be4f4
|
Networking: Drivers can have both IPv4 and IPv6 addesses, but a socket can only only one or the other; The socket connnection structures need to include a union of IPv4 and IPv6 addresses for the local address binding and for the remote address connections
|
2015-01-16 10:01:54 -06:00 |
|
Gregory Nutt
|
630366272a
|
Networking: Seperate tcp_input() and udp_input() into seprate functions tcp_ipv4_input(), tcp_ipv6_input(), udp_ipv4_input(), and upd_ipv6_input() than can deal will the data offsets caused by the differing sizes of the IP header.
|
2015-01-15 15:06:46 -06:00 |
|
Gregory Nutt
|
a6a9452c05
|
net/tcp/tcp_conn.c: Fix a logic error when CONFIG_NETDEV_MULTINIC is selected: net_unlock(flags) will be called will an uninitialized variable (2015-01-03).
|
2015-01-02 12:03:08 -06:00 |
|
Gregory Nutt
|
dc7a45ecf8
|
Extensions to ECP conneciton structure for the case of multiple networks. See additional comments regarding the similar change for UDP
|
2014-11-22 10:46:37 -06:00 |
|
Gregory Nutt
|
80fc094734
|
Make tcp_listener static scope; it is not used outside of tcp_conn.c
|
2014-11-22 07:14:17 -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
|
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
|
2d52d70d4c
|
NET: Move private definitions from include/nuttx/net/tcp to net/tcp/tcp.h
|
2014-07-06 12:34:27 -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
|
a6b39d1879
|
NET: in-progress change... don't use
|
2014-07-04 16:38:51 -06:00 |
|
Gregory Nutt
|
8e9df8ade0
|
NET: Misc naming clean-up
|
2014-07-02 17:23:25 -06:00 |
|
Gregory Nutt
|
7dd04db1d2
|
NET: Rename uip_nextXYZconn to XYZ_netconn
|
2014-06-30 18:03:58 -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
|
c179369a47
|
Rename static functions from uip_* to something more appropriate. Globally scoped functions will take more work
|
2014-06-28 19:26:16 -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
|
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
|
04985d6d1e
|
Clean up all TCP-related naming
|
2014-06-24 18:12:49 -06:00 |
|
Gregory Nutt
|
fabcb6d37e
|
TCP Read-Ahead: Convert to use I/O buffer chains
|
2014-06-24 15:38:00 -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
|
2805582151
|
net: Add net/tcp/tcp.h; rename uip_tcpwrbuffer_ to tcp_wrbuffer_*
|
2014-06-21 15:23:39 -06:00 |
|
Gregory Nutt
|
143959c1ed
|
Move TCP files from net/uip to net/tcp
|
2014-06-18 10:18:53 -06:00 |
|