Gregory Nutt
62e588a0a4
VFS: Add an unlink method to the character driver interface. This is important because if the character driver inode is unlinked and there are no open references to the driver, then the driver resources will be stranded. On the unlink call, the driver has the opportunity (1) check if there an any open references, and (2) if not free the driver resources
2015-01-31 11:31:34 -06:00
Gregory Nutt
e86d00913e
Unix domain/FIFOs: Fix a race condition between FIFO buffer operations and the opening and closing of FIFOs which necessary when the FIFOs are used to support Unix domain, datagram sockets. The default policy is the deallocate FIFO buffering when the last client closes the pipe. When when used for datagram communicatinos, packets left in the FIFO will be lost. Some like UDP read-ahead is needed: The buffered data in the FIFO needs to be retained until the reader gets a chance to re-open the FIFO. Added an ioctl (PIPEIOC_POLICY) to control the buffer policy. Default (0) is the legacy behavior; Unix domain datagram logic sets the alternative policy so that the packet data persists after the FIFO is closed.
2015-01-30 11:14:24 -06:00
Gregory Nutt
5f9837dcc8
Merge remote-tracking branch 'origin/master' into afunix
...
Conflicts:
nuttx/ChangeLog
2015-01-27 21:47:12 -06:00
Gregory Nutt
c4bd6f52b5
Networking: The are issues with the TCP write-ahead buffering if CONFIG_NET_NOINTS is enabled: There is a possibility of deadlocks in certain timing conditions. I have not seen this with the Tiva driver that I have been users but other people claim to see the issue on other platforms. Certainly it is a logic error: The network should never wait for TCP read-ahead buffering space to be available. It should drop the packets immediately.
...
This was fixed by duplicating most of the IOB interfaces: The versions that waited are still present (like iob_alloc()), but now there are non-waiting verisons of the same interfaces (like iob_tryalloc()). The TCP read-ahead logic now uses only these non-waiting interfaces.
2015-01-27 21:23:42 -06:00
Gregory Nutt
cbf0608513
Various fixes to get Unix domain sockets to build on the simulator without Ethernet
2015-01-27 14:11:46 -06:00
Gregory Nutt
6418f08459
Add math library defines for nan functions. From Brennan Ashton.
2015-01-26 19:03:38 -06:00
Gregory Nutt
b12cf6d2f5
Add math library support for trunc functions. From Brennan Ashton.
2015-01-26 19:00:35 -06:00
Gregory Nutt
06337a4f7a
Add math library support for copysign. From Brennan Ashton
2015-01-26 18:52:28 -06:00
Gregory Nutt
7e177e1c12
Add error function to math library. From Brennan Ashton.
2015-01-26 13:58:47 -06:00
Gregory Nutt
36d5c00ec6
Add math library definition for isfinite. From Brennan Ashton.
2015-01-26 13:55:49 -06:00
Gregory Nutt
e153959eea
Add support for inverse hyperbolic functions. From Brennan Ashton
2015-01-26 13:52:53 -06:00
Gregory Nutt
d7189558a6
Add ioctls for Unix domain sockets
2015-01-24 11:57:06 -06:00
Gregory Nutt
bf61008448
Add sys/un.h header file
2015-01-24 11:44:06 -06:00
Gregory Nutt
d84abfafc4
Fix another error in conditional compilation; plus some additional cosmetic changes
2015-01-24 09:04:28 -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
7e46e94546
Remove CONFIG_DEBUG_STACK. Adding CONFIG_STACK_COLORATION makes this configuration option pointless
2015-01-24 06:49:51 -06:00
Gregory Nutt
05c5c8c337
Add CONFIG_STACK_COLORATION that does the same thing as CONFIG_DEBUG_STACK but without enabling debug. From David Sidrane
2015-01-24 06:03:39 -06:00
Gregory Nutt
dc759d31d9
Math library: Adds support for the expm1 functions: http://pubs.opengroup.org/onlinepubs/009695399/functions/expm1.html . From Brennan Ashton
2015-01-23 17:15:42 -06:00
Gregory Nutt
30f0a942e1
Networking: First cut at ICMPv6 ping logic
2015-01-23 14:06:08 -06:00
Gregory Nutt
9f40a13cfa
Correct the MSS calculation
2015-01-22 12:30:07 -06:00
Gregory Nutt
6175e9eec5
Networking: Correct the value returned by accept() in the case where net_lockingwait() is called. It was returning -1 and losing the errno value. Noted by Rony Xln
2015-01-22 06:51:31 -06:00
Gregory Nutt
38e0dcf097
Networking: Fix another error in an IPv6 macro. Again ampersand where there should not be one
2015-01-21 14:11:20 -06:00
Gregory Nutt
8132afb3de
Fix some errors in memcpy arguments. No ampersands on array arguments.
2015-01-21 12:42:22 -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
67a655ecf0
Networking: Add logic to search the Neighbor Table and update the destination address in the output Ethernet header OR to send an ICMPv6 Neighbor Solicitation if there is no entry in the Neighbor table for the IPv6 address
2015-01-20 14:37:02 -06:00
Gregory Nutt
d68cd0d8de
Networking: Update ICMPv6 logic to RFCs
2015-01-20 11:06:51 -06:00
Gregory Nutt
2fd334432c
Networking: Fix to ICMPv6 logic: Needs to set source and destination address in the Ethernet header
2015-01-19 14:57:55 -06:00
Gregory Nutt
13149536f2
Networking: Update ICMPv6 message numbers
2015-01-19 14:04:16 -06:00
Gregory Nutt
59c0757183
Fix a few more dangling IPv6 issues found by code inspection
2015-01-18 10:33:27 -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
94f9312150
Networking: Save the IP domain in the connection structure
2015-01-17 13:07:48 -06:00
Gregory Nutt
2c251d845c
include/net/if.h: Add a bit to the device flags to indicate if the device packet buffer holds an IPv4 or an IPv6 domain packet. Set/clear the flag along with the correct offset to the application payload data as each packet is received.
...
net/socket, net/tcp, net/udp: Add logic to select the domain of the outputgoing packet before sending any UDP or TCP packet. This sets the bit to indicate the IPv4 or IPv6 domain and the correct offset to the output going payload data.
2015-01-17 07:42:09 -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
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
fe8b3c5220
Networking: More detangling of IPv6 logic. Next steps will be more invasive and will get moved to a branch
2015-01-16 08:51:18 -06:00
Gregory Nutt
5b45605991
Clean a few more IPv6 compilation issues; Add implementation of net_ipv6_maskcmp()
2015-01-15 15:55:52 -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
60e50ff3b5
Networking: More IPv6 detanglement
2015-01-15 13:08:28 -06:00
Gregory Nutt
5a441ce03b
Networking: Misck IPv6 detanglement
2015-01-15 12:19:44 -06:00
Gregory Nutt
89538ac4a2
- Rename devif_input() ipv4_input()
...
- Copy net/devif/devif_input.c to ipv6_input.c. Remove all IPv4-specific logic.
- Rename net/devif/devif_input.c to ipv4_input.c. Remove all IPv6-specific logic
- Split IPv4 header structure out as net_ipv4hdr_s from net_iphdr_s
2015-01-15 08:03:56 -06:00
Gregory Nutt
a49f0231d2
Networking: A few more IPv6-related fixes
2015-01-14 18:34:28 -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
7d68c22d7f
Networking: Add support for IPv6 ioctls
2015-01-14 13:03:12 -06:00
Gregory Nutt
31a94816b2
USB host drivers: Change all parmeters named class to usbclass to avoid C++ conflicts
2015-01-11 08:05:09 -06:00
Gregory Nutt
089e001874
STM32 SDIO: CONFIG_MMCSD_SDIOWAIT_WRCOMPLETE should not be available unless CONFIG_MMCSD_SDIO=y
2015-01-08 18:12:06 -06:00