Gregory Nutt
78bc1aa6bc
Argument of network device IOCTL should be unsigned long, just as will all other IOCTL methods.
2017-04-15 09:33:27 -06:00
Gregory Nutt
2576f2b2b1
net/: Add IOCTL support for forwarding IEEE802.15.4 MAC and PHY IOCTLs.
2017-04-15 09:11:52 -06:00
Gregory Nutt
bdd66ea6c7
6loWPAN: Add some checks for the case where there are multiple network devices and multiple link layer protocols.
2017-04-15 08:53:42 -06:00
Gregory Nutt
eee89102d8
networking: IPv4 change of last PR should also be applied to corresponding IPv6 logic.
2017-04-15 06:00:42 -06:00
ahb
6d18300f98
not a clean fix, but at least makes DHCP working with CONFIG_NETDEV_MULTINIC
2017-04-15 11:13:24 +02:00
Gregory Nutt
ad9321b7b7
Trivial changes from review of last PR
2017-04-13 06:16:03 -06:00
Thomas Keh
7e293b28ee
TUN driver: Implement TAP (OSI layer 2) mode.
...
Enable by setting the IFF_TAP flag instead of the IFF_TUN flag in ifr_flags.
2017-04-13 13:07:03 +02:00
Gregory Nutt
f3b10eb073
net procfs: Some long lines were being generated that cause buffer-related problems and corrupted output
2017-04-09 11:06:21 -06:00
Gregory Nutt
f9e402018b
Buttons: Change return value of board_buttons() and the type of btn_buttonset_t to uint32_t so that more than 8 buttons can be supported.
2017-04-09 07:22:49 -06:00
Mark Schulte
35ca733108
pthread.h: Fix rwlock initializer
2017-04-08 12:34:08 -06:00
Gregory Nutt
3f51180cca
6loWPAN: Fix breakage in IPv6 dispatch caused by fixes to HC1 dispatch; Move some standard definitions from internal header file to include/nuttx/net/sixlowpan.h. Update a README.
2017-04-08 10:18:44 -06:00
Gregory Nutt
143b8f9591
6loWPAN: Fix more frame offsets. Reorder some logic that was appropriate only for IPv6 dispatch.
2017-04-08 09:34:30 -06:00
Gregory Nutt
fe722e44b9
6loWPAN: Fix a faulty assumption about relationship between some sizes and offsets.
2017-04-08 08:14:42 -06:00
Gregory Nutt
ee6700dbc7
Update README's and some comments.
2017-04-08 07:30:20 -06:00
Gregory Nutt
60f0186258
6loWPAN: Add calculation of TCP header size. It is not a constant.
2017-04-07 17:04:57 -06:00
Gregory Nutt
f264e6aec2
6loWPAN: Fixes for fragmented packets. Change fixes some things, breaks other. Lots more to do.
2017-04-07 15:27:53 -06:00
Gregory Nutt
47647eac8f
6loWPAN: Correct some fragmentation handling
2017-04-07 09:49:10 -06:00
Gregory Nutt
19f19e31eb
6loWPAN: Correct some list handling logic.
2017-04-07 08:13:18 -06:00
Gregory Nutt
58d0c1f228
6loWPAN: Back out part of the last commit. That included two fixes for a problem. One that didn't work and is unnecessary and one that is necessary. The commit removes the former.
2017-04-06 18:11:04 -06:00
Gregory Nutt
494d996826
6loWPAN: Fix a few UDP-related issues.
2017-04-06 17:57:15 -06:00
Gregory Nutt
27c65c3f22
6loWPAN: Add network IOCTL support to set the node address
2017-04-06 15:58:00 -06:00
Gregory Nutt
50170a6108
6loWPAN: Fixes for UDP packet transfers.
2017-04-06 11:57:43 -06:00
Gregory Nutt
1fa300f011
6loWPAN: Fix uncompressing of IPv6 encoded packet.
2017-04-06 08:32:18 -06:00
Gregory Nutt
18518eae06
6loWPAN: Fix another HC06 indexing problem.
2017-04-05 18:14:13 -06:00
Gregory Nutt
d0aa22fb80
6loWPAN: Costmetic changes.
2017-04-05 17:26:12 -06:00
Gregory Nutt
72bffeddcc
6loWPAN: Fixes another HC06 indexing problem.
2017-04-05 14:31:44 -06:00
Gregory Nutt
b7c55660cb
6loWPAN: Correct more address manipulations.
2017-04-05 13:04:22 -06:00
Gregory Nutt
cb70ce7d3c
6loWPAN: Correct some IPv6 addresses and operations on IPv6 addresses.
2017-04-05 12:11:09 -06:00
Gregory Nutt
e61fd2d45b
6loWPAN input: Fix a counting error. Input packet sizes were being calculated a little too big.
2017-04-05 09:14:28 -06:00
Gregory Nutt
3b21545480
sixlowpan: Minor reorganization to removed some unused global varialbes and structure fields.
2017-04-05 08:40:30 -06:00
Gregory Nutt
38eed0a847
6loWPAN: Various fixes for building with different configurations; Some minimal testing of HC06
2017-04-04 17:06:17 -06:00
Gregory Nutt
ca2c18c023
6loWPAN: Fix return value and other issues in sixlowpan_frame_process
2017-04-04 16:12:16 -06:00
Gregory Nutt
34da085b40
6loWPAN: Yet another fix related to buffer offsets primarily.
2017-04-04 14:27:21 -06:00
Gregory Nutt
fdf706a3a9
6loWPAN: Additional fixes related to buffer offsets primarily.
2017-04-04 13:52:02 -06:00
Gregory Nutt
1f394a61b3
6loWPAN: Add option to dump buffers. Fix some issues with calculation of the IEEE802.15.4 header size.
2017-04-04 12:31:22 -06:00
Gregory Nutt
a6ae7d4ae3
6loWPAN: Fix an error in how reassembly timeouts work.
2017-04-04 09:08:48 -06:00
Gregory Nutt
88fd667603
6loWPAN: Fix a pointer initialization problem.
2017-04-04 07:38:48 -06:00
Gregory Nutt
db48f03192
6loWPAN: Fix some compilation problems with HC1 compression is enabled.
2017-04-03 17:04:56 -06:00
Gregory Nutt
cc9445624f
6loWPAN: Correct a couple of tiny but fatal bugs.
2017-04-03 16:17:10 -06:00
Gregory Nutt
7cb34d969d
6loWPAN: More fixes from early debug.
2017-04-03 15:25:36 -06:00
Gregory Nutt
2c06f8ab78
6loWPAN: Updates/fixes from early testing with the IEEE802.15.4 loopback driver.
2017-04-03 12:01:04 -06:00
Gregory Nutt
e9d831ac60
wireless/ieee802154: Add initialization logic for loopback driver; configs/sim: Add configuration for testing 6loWPAN; net/sixlowpan: Fix for compilation with debug output enabled.
2017-04-03 09:15:00 -06:00
Kivilinna
ee4a8336ce
net/socket/accept: fix building with CONFIG_NET_LOCAL_STREAM
2017-04-03 07:38:23 -06:00
Jussi Kivilinna
ae1265c01e
net/socket/send: fix building without CONFIG_NET_6LOWPAN
2017-04-03 07:36:29 -06:00
Gregory Nutt
1b6630ee75
6loWPAN: Fix compile errors and warnings when building the complete 6loWPAN configuration.
2017-04-02 17:46:22 -06:00
Gregory Nutt
3367312401
6loWPAN: Forgot to add files with last commit.
2017-04-02 14:45:14 -06:00
Gregory Nutt
392c90b020
6loWPAN: Fix last checksum issues. Contiki 6loWPAN port is now complete (but completely untested)
2017-04-02 14:30:01 -06:00
Gregory Nutt
6e2f8f3aa3
6loWPAN: Add logic to fill in UDP/TCP headers. Still missing some checksum logic.
2017-04-02 13:27:53 -06:00
Gregory Nutt
663c48c329
6loWPAN: Hook 6loWPAN output into path of output from TCP state machine.
2017-04-02 12:01:04 -06:00
Gregory Nutt
76406af71b
6loWPAN: Add support for sendto()
2017-04-02 11:15:46 -06:00
Gregory Nutt
ec3c40d99d
6loWPAN: Finishes port of Contiki HC06 compression logic
2017-04-02 10:06:31 -06:00
Gregory Nutt
d16fc98c74
6loWPAN: Add HC06 decompression logic; Remove outboard compressor hooks.
2017-04-02 08:08:35 -06:00
Gregory Nutt
5a56d3cce7
6loWPAN: Change ordering of some operations so that the IOB is available at the time that headr compression is perfomed.
2017-04-01 18:24:21 -06:00
Gregory Nutt
5af0909275
6loWPAN: A little HC1 compression logic.
2017-04-01 15:05:38 -06:00
Gregory Nutt
64afba55dd
6loWPAN: Add a little bit of HC1 compression logic.
2017-04-01 13:42:00 -06:00
Gregory Nutt
7a4af75fcf
6lowWPAN: Add frame decompression logic to IEEE802.15.4 input
2017-04-01 12:34:08 -06:00
Gregory Nutt
52ead055fd
6loWPAN: Beginning of IEEE802.15.4 frame input logic.
2017-04-01 09:07:49 -06:00
Gregory Nutt
cccbb6c693
6loWPAN: Clean up some send logic; remove sniffer.
2017-03-31 16:33:21 -06:00
Gregory Nutt
732f0855c6
6loWPAN: Fleshes out framwork for IEEE802.15.4 send. But still has some gaping holes.
2017-03-31 15:09:07 -06:00
Gregory Nutt
85e1d15835
6loWPAN: Fix more configuration related issues detected by addition of 6loWPAN
2017-03-31 12:06:21 -06:00
Gregory Nutt
eb446d5261
net/: Permit net/neighbor to build when IPv6 is defined, but not Ethernet. Needs more work to support 6loWPAN. Also included, some minor configuration updates for 6loWPAN.
2017-03-31 11:15:16 -06:00
Gregory Nutt
a771ec65d6
6loWPAN: Fix a spelling error in macro name.
2017-03-31 10:47:40 -06:00
Gregory Nutt
ad89c88eb3
net/: Fix MULTINIC/MULTILINK selection when 6loWPAN selected.
2017-03-31 10:47:12 -06:00
Gregory Nutt
755b05ff30
TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled.
2017-03-31 10:45:39 -06:00
Gregory Nutt
44f1326046
6loWPAN: Repartition device-specific vs. global data -- again.
2017-03-31 10:04:29 -06:00
Jussi Kivilinna
cd3c9634c8
Add user-space networking stack API (usrsock)
...
User-space networking stack API allows user-space daemon to
provide TCP/IP stack implementation for NuttX network.
Main use for this is to allow use and seamless integration of
HW-provided TCP/IP stacks to NuttX.
For example, user-space daemon can translate /dev/usrsock
API requests to HW TCP/IP API requests while rest of the
user-space can access standard socket API, with socket
descriptors that can be used with NuttX system calls.
2017-03-31 08:58:14 -06:00
Gregory Nutt
c999519bf2
6loWPAN: A little more IOB-related logic.
2017-03-31 08:27:39 -06:00
Gregory Nutt
0427d6c726
6loWPAN: Replace frame buffer with a list of IOBs.
2017-03-31 07:54:58 -06:00
Gregory Nutt
c5d55c62f4
6loWPAN: Pre-format frames in an IOB change before sending.
2017-03-30 20:13:59 -06:00
Gregory Nutt
1a12682f23
6loWPAN: Fix some MTU-related craziness.
2017-03-30 17:18:18 -06:00
Gregory Nutt
9aabb44118
6loWPAN: Add some comments, move a function
2017-03-30 16:30:04 -06:00
Gregory Nutt
2aca4d4ebd
6loWPAN: Add a little more send logic.
2017-03-30 15:38:56 -06:00
Juha Niskanen
21545ab643
net/local: connect: Fix warning with gcc-arm-none-eabi-5-2016q1. Using compiler from gcc-arm-none-eabi-5-2016q1 toolchain:
...
gcc version 5.3.1 20160307 (release) [ARM/embedded-5-branch revision 234589] (GNU Tools for ARM Embedded Processors)
gives error:
local/local_connect.c:188:7: error: '_local_semtake' is static but used in inline function 'local_stream_connect' which is not static [-Werror]
this is due to compiler enforcing ISO/IEC 9899:1999 6.7.4.3: "An inline definition of a function with external linkage shall not contain a definition of a modifiable object with static storage duration, and shall not contain a reference to an identifier with internal linkage."
Fix by making inlined caller to have internal linkage as well.
2017-03-30 06:54:59 -06:00
Gregory Nutt
2e48af78e7
6loWPAN: Repartition some logic
2017-03-29 18:07:52 -06:00
Gregory Nutt
c8cb2009c8
6loWPAN: Forget to add a file before last commit.
2017-03-29 17:32:12 -06:00
Gregory Nutt
8083a0437e
6loWPAN: Add beginning of some compression hooks to send logic.
2017-03-29 15:44:24 -06:00
Gregory Nutt
a6148cdb7c
6loWPAN: Adding more socket send-related logic.
2017-03-29 14:28:51 -06:00
Gregory Nutt
5fb222180c
6loWPAN: IEEE802.15.4 MAC driver will need a special form of the network device structure to manage fragmentation of the large packet into frames.
2017-03-29 10:17:34 -06:00
Gregory Nutt
ae5b5ae431
Add Rime address macros
2017-03-28 17:26:53 -06:00
Gregory Nutt
c3c8f8ed31
6loWPAN: Simplify some logic in send() if there is only an IEEE802.15.4 MAC
2017-03-28 16:14:58 -06:00
Gregory Nutt
64933246c3
6loWPAN: Tie 6loWPAN send into common socket send logic.
2017-03-28 14:08:54 -06:00
Gregory Nutt
75a8ad636c
6loWPAN: Framework to support commpress/uncompress operations.
2017-03-28 12:23:19 -06:00
Gregory Nutt
25496936cc
6loWPAN: Add dummy files to handle 6loWPAN formmatted input and output packets.
2017-03-28 11:35:46 -06:00
Gregory Nutt
d9e32ee337
6loWPAN: More configurtion settings.
2017-03-28 11:16:28 -06:00
Gregory Nutt
f32fe172d4
6loWPAN: Add HC06 initialization
2017-03-28 10:47:25 -06:00
Gregory Nutt
898b769910
6loWPAN: Add framework for initialization; move globals into a separate file.
2017-03-28 09:32:52 -06:00
Gregory Nutt
913daa908a
6loWPAN: Add some more configuration settings that will be needed.
2017-03-28 09:00:25 -06:00
Gregory Nutt
65e95b95f2
Add a little more 6loWPAN logic
2017-03-27 18:15:20 -06:00
Gregory Nutt
a522fc4f34
6loWPAN: Rename net/6lowpan to net/sixlowpan; Add Contike sixlowpan.h to include/nuttx/net
2017-03-27 14:53:52 -06:00
Pascal Speck
1b266096c7
Merged in iktek01/nuttx (pull request #284 )
...
- fixed wrong assert on udp dgram send
Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-03-21 13:33:12 +00:00
Pascal Speck
8f91c73304
- fixed wrong assert on udp dgram send
2017-03-17 15:13:03 +01:00
Gregory Nutt
aad82bcd9f
Cosmetic change
2017-03-13 18:01:21 -06:00
Gregory Nutt
888cff30dc
Fix some errors in the previous commit
2017-03-13 10:14:38 -06:00
Gregory Nutt
b808084e57
Move wireless IOCTLs from include/nuttx/net/ioctl to include/nuttx/wireless/wireless.h. Add some linux compatible structures to use with the IOCTL commands.
2017-03-13 09:51:31 -06:00
Gregory Nutt
430b52c977
Networking: Add registration support for integrated ieee80211 wireless drivers. Rename CONFIG_IEEE802154 to CONFIG_WIRELESS_IEEE8021514 following the convention of including the location of the configuration variable as a part of its name.
2017-03-12 12:50:41 -06:00
Janne Rosberg
3331e9c49a
STM32 OTGHS host: stm32_in_transfer() fails and returns NAK if a short transfer is received. This causes problems from class drivers like CDC/ACM where short packets are expected. In those protocols, any transfer may be terminated by sending short or NUL packet.
2017-03-07 06:58:59 -06:00
Pascal Speck
1094f85bda
Merged in iktek01/nuttx (pull request #231 )
...
- fixed a nullptr-dereference on iob_clone
Approved-by: Gregory Nutt
2017-03-01 15:24:53 +00:00
Pascal Speck
40433bd7f7
- fixed a nullptr-dereference on iob_clone
2017-03-01 12:13:06 +01:00
Gregory Nutt
ba2b345990
Remove a few remaining use of the obsolteted 'Compilation Switches' program section
2017-01-22 08:57:18 -06:00
Gregory Nutt
518d19c0be
Update comments
2017-01-18 07:53:28 -06:00
Gregory Nutt
9f7d332028
Minor changes from the review of the last PR
2017-01-18 07:32:27 -06:00
Pascal Speck
2e074ca4f9
- Fixed some issues that prevented ipv6 to work with ipv4 enabled.
2017-01-18 10:57:15 +01:00
Gregory Nutt
b52e4e5ecd
Move cancellation point definitions to their own header file.
2016-12-10 09:08:26 -06:00
Gregory Nutt
bc3ca25cc7
Cancellation points: Close up some logic to eliminte some race conditions.
2016-12-10 08:36:58 -06:00
Gregory Nutt
38b9ab09d9
Fix copy-and-paste gone wrong.
2016-12-09 17:28:03 -06:00
Gregory Nutt
64ffd89ee1
Another missing header file inclusion.
2016-12-09 17:25:00 -06:00
Gregory Nutt
16be9b332e
More cancellation points
2016-12-09 15:17:58 -06:00
Gregory Nutt
f45727dffc
Fix some kruft left behind in last big commit.
2016-12-03 16:53:31 -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
00beb665f5
net/: Remove references to CONFIG_NET_MULTIBUFFER
2016-11-29 16:12:39 -06:00
Gregory Nutt
0804286ad3
arch/: Add option to use low-priority work queue to all Ethernet drivers in arch that support CONFIG_NET_NOINTS.
2016-11-19 09:20:01 -06:00
Gregory Nutt
936b55f608
drivers/net: Add option to use low-priority work queue to all drivers in drivers/net. Not yet added to all architecture-specific network drivers.
2016-11-18 09:22:49 -06:00
Gregory Nutt
b0dffdc2ca
Fix a number of header files with mismatched 'extern C {' and '}'
2016-11-05 07:25:05 -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
1dabbd8489
Costmetic changes
2016-10-24 16:18:30 -06:00
Vladimir Komendantskiy
e5cffc40fc
NET_TUN=y => NET_MULTIBUFFER=y
2016-09-20 13:06:47 -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
9a44f3017b
Fix a few typos in the last commit
2016-07-19 13:40:54 -06:00
Gregory Nutt
6e6c04f778
Rename file_poll as fdesc_poll. The file_ namespace is used for other things.
2016-07-15 11:21:11 -06:00
Gregory Nutt
88a03ae3ec
Break out internal interface psock_ioctl()
2016-07-06 07:30:09 -06:00
Gregory Nutt
2a751068e6
Without lowsyslog() *llerr() is not useful. Eliminate and replace with *err().
2016-06-20 12:44:38 -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
2b445ddccc
Remove lowsyslog(). The new syslog() includes all of the functionality of lowsyslog(). No longer any need for two interfaces.
2016-06-20 08:57: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
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
86b79b33cf
Reserver the name 'err' for other purposes
2016-06-11 14:40:07 -06:00
Gregory Nutt
1cdc746726
Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES
2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe
Replace all occurrences of vdbg with vinfo
2016-06-11 11:59:51 -06:00
Gregory Nutt
c98f00a93b
Update comments; trivial addtion to a document.
2016-06-10 09:36:59 -06:00
Gregory Nutt
a81a467a40
Networking: In both IPv6 and IPv4 incoming logic: (1) Should check if the packet size is large enough before trying to access the packet length in the IP header. (2) In the comparison between the IP length and the full packet length, need to subtract the size of the link layer header before making the comparison or we will get false positives (i.e., the packet is really too small).
2016-06-09 13:16:47 -06:00
Gregory Nutt
4f208600aa
Replace confusing references to uIP with just 'the network'
2016-05-30 09:31:44 -06:00
Steve
bd3ef36eda
SUMMARY
...
-------
This patch enhances networking support for the simulation under Linux.
Includes updated support for Linux TUN/TAP, and the addition of support for
Linux bridge devices.
CHANGES
-------
o Check to see if the d_txavail callback is present before calling it in
the arp send code. This prevents a segfault when simulating the telnetd
daemon with arp send enabled.
o Adjust the simulation's netdriver_loop() so it will detect and respond to
ARP requests.
o Do not attempt to take the tap device's hardware address for use by the
simulation. That hardware address belongs to the host end of the link,
not the simulation end. Generate a randomized MAC address instead.
o Do not assign an IP address to the interface on the host side of the TAP
link.
+ Provide two modes: "host route" and "bridge".
+ In host route mode, maintain a host route that points any traffic for the
simulation's IP address to the tap device. In this mode, so long as the
simulation's IP is a free address in the same subnet as the host, no
additional configuration will be required to talk to it from the host.
Note that address changes are handled automatically if they follow the
rule of if-down/set-address/if-up, which everything seems to.
+ In bridge mode, add the tap device to the specified bridge instance. See
configs/sim/NETWORK-LINUX.txt for information and usage examples. This
enables much more flexible configurations (with fewer headaches), such as
running multiple simulations on a single host, all of which can access
the network the host is connected to.
o Refresh configurations in configs/sim where CONFIG_NET=y. They default
to "host route" mode.
o Add configs/sim/NETWORK-LINUX.txt
CAVEATS
-------
- The MAC address generation code is extremely simplistic, and does not
check for potential conflicts on the network. Probably not an issue, but
something to be aware of.
- I was careful to leave it in a state where Cygwin/pcap should still work,
but I don't have a Windows environment to test in. This should be
checked.
- I don't know if this was ever intended to work with OS X. I didn't even
try to test it there.
NOTES
-----
- Was able to get telnetd working and simulate nsh over telnet, but only so
long as listen backlogs were disabled.
There appears to be a bug in the backlog code where sockets are being
returned in SYN_RCVD state instead of waiting until they're ESTABLISHED;
if you perform an immediate send after accepting the connection, it will
confuse the stack and the send will hang; additionally, the connection
will never reach ESTABLISHED state.
Can be worked around by adding a sleep(1) after the accept in telnetd. I
don't have the necessary knowledge of the IP stack to know what the
correct fix is.
2016-05-20 17:36:14 -06:00
Gregory Nutt
e523c93391
Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' message weirdness.
2016-05-10 15:44:06 -06:00
Gregory Nutt
3ca5a94515
VNC: Add basic message receipt logic
2016-04-17 09:17:37 -06:00
Gregory Nutt
39a37d6aa8
Separate out psock_listen() and psock_accept() for internal use by the OS
2016-04-14 08:39:48 -06:00
Gregory Nutt
03a77c1d18
Remove most unused references to CONFIG_NET_MULTICAST. Rename other uses of CONFIG_NET_MULTICAST to avoid naming comflicts.
2016-03-20 13:16:17 -06:00
Gregory Nutt
2dd9777c7e
Fix a backward conditional test introduced with the last commit
2016-03-20 09:58:07 -06:00
Gregory Nutt
00b44959ea
TCP poll: TCP poll events can really only being processed when the poll from the correct device is received.
2016-03-20 08:39:15 -06:00
Gregory Nutt
4639cdd894
TCP timeouts: Fix some logic when there are multiple network interfaces. In this case, TCP timeout events can really only being processed when the poll from the correct device is received.
2016-03-20 08:19:00 -06:00
Gregory Nutt
fdddebbffd
net/: Finish IEEE802154->6LOWPAN renaming; remove PF_IEEE804154; Move 6LoWPAN menu to inside Internet Protocol Menu
2016-02-27 07:26:20 -06:00
Gregory Nutt
309beae2cd
Move drivers/ieee802154 to drivers/wireless/ieee802154; rename include/nuttx/net ieee802154 to 6lowpan.h
2016-02-26 15:03:16 -06:00
Gregory Nutt
2f28ca86c2
Clean up some naming; rename net/ieee802154 to net/6lowpan
2016-02-26 10:08:36 -06:00
Gregory Nutt
2c95fef501
Remove some empty code section comments
2016-02-26 07:35:55 -06:00
Gregory Nutt
8db55f6493
Back out most of previous commit
2016-02-26 06:45:37 -06:00
Gregory Nutt
b0ea870bcc
Remove some empty code section comments
2016-02-25 18:34:36 -06:00
Gregory Nutt
9ff645a298
drivers/ieee802154: Add a skeleton IEEE802154 driver
2016-02-25 15:11:30 -06:00
Gregory Nutt
0b441ff1f4
net/: Add basic IEEE 802.15-4 socket support
2016-02-25 14:01:22 -06:00
Gregory Nutt
e4e6181098
net/: IEEE 802.15-4 basic build build structure.
2016-02-25 10:43:51 -06:00
Gregory Nutt
bcbd8ee964
Networking: Cosmetic change
2016-02-24 19:02:51 -06:00
Gregory Nutt
d19e9cc448
networking: cosmetic changes
2016-02-24 16:10:20 -06:00
Gregory Nutt
0fb035f76b
Standardize some naming in code section comments
2016-02-21 18:09:04 -06:00
Gregory Nutt
aa3e778dc6
nuttx/net: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section()
2016-02-14 08:38:44 -06:00
Gregory Nutt
68ee9bcaed
Refresh modules + plus minor clean-up from previous commits
2016-02-08 15:13:14 -06:00
Gregory Nutt
166ad58849
DHCPD no longer calls directly into the OS, but uses network IOCTL commands to modify the ARP table. Plus, fix a warning.
2016-02-08 12:08:18 -06:00
Gregory Nutt
0af9a197ac
ARP: Add IOCTL commands to manage the ARP table
2016-02-08 11:17:22 -06:00
Gregory Nutt
0554de6c50
Networking: Simply devif_timer; Consolidate duplicated devif_poll logic
2016-02-05 07:36:07 -06:00
Gregory Nutt
b5024263e9
Networking: Add a trivial cast
2016-02-03 18:12:19 -06:00
Gregory Nutt
41164740a5
Network: Improve half-second conversion
2016-02-03 13:08:19 -06:00
Gregory Nutt
dea24c503a
Networking: Remove the HSEC argument from devif_timer.
2016-02-03 12:12:41 -06:00
Gregory Nutt
7fb7bef2d2
Fix an error introduced with last IOB fix
2016-01-26 09:55:17 -06:00
Gregory Nutt
365e015010
iob_alloc_qentry() has the same issue that was recently fixed in iob_alloc()
2016-01-25 17:46:59 -06:00
Gregory Nutt
91b762aa86
Networking: Fix an error that I introduced with my last review changes
2016-01-22 17:35:06 -06:00
Andrew Webster
5c589e5b9c
Net: use nlldbg since an iob can be added from an interrupt
2016-01-22 16:23:31 -06:00
Andrew Webster
49e5cc5a6f
TCP: check for an active connection before cleaning it up
...
If there is no active connection (e.g. it is waiting in accept), then
the connection object, which doesn't yet exist, should not be cleaned
up when the socket is closed.
2016-01-22 16:22:09 -06:00
Andrew Webster
5e3023bef1
TCP: return from write when there is no buffer space
...
During a write, if there is no more buffer space for the user data,
return the amount that was written instead of waiting until there
is free space. If nothing has been written yet, then block as before.
This solves a deadlock that occurs if the user data is too large to
fit in the available buffer: the write thread will block before any
data is added to the write queue, leaving no possibility that more
buffers will free up when they are ACKed (since they have not yet been
sent). The write thread will then block forever and hold all of the
buffers.
2016-01-22 16:19:20 -06:00
Andrew Webster
e221777a7a
TCP: post buffer semaphore before re-acquiring both
...
TCP uses two semaphores for buffers, one for the entire buffer pool,
and one for the number of allowed buffers for readahead. To avoid
double taking a semaphore under heavy load, release the semaphore
after waiting before trying to acquire both again.
2016-01-22 16:15:10 -06:00
Andrew Webster
4875c6bbe3
TCP: check for connection before deleting it
...
It is possible for a socket to have no connection, for example if a TCP
socket is waiting in accept. This checks for this condition in case the
socket is closed from a different thread.
2016-01-22 15:59:15 -06:00
Andrew Webster
f1ef2c6cde
TCP: attempt to flush the write buffers before closing
...
When a socket is closed, it should make sure that any pending write
data is sent before the FIN is sent. It already would wait for all
sent data to be acked, however it would discard any pending write
data that had not been sent at least once.
This change adds a check for pending write data in addition to unacked
data. However, to be able to actually send any new data, the send
callback must be left. The callback should be freed later when the socket
is actually destroyed.
2016-01-22 15:58:02 -06:00
Andrew Webster
cdd187a7f3
TCP: check for sndcb before using it
2016-01-22 15:54:45 -06:00
Andrew Webster
df211ee46a
TCP: add writable check during poll
...
When a poll requesting POLLOUT happens, the poll should return
immediately if a write will not block. This change adds that, as
opposed to the old behaviour of blocking until a timer from the
Ethernet driver eventually triggers the poll to complete.
This is only implemented for buffered TCP. Unbuffered TCP should
behave as before.
2016-01-22 15:52:14 -06:00
Andrew Webster
99f5fcda70
iTCP: use lowlevel syslog to avoid infinte recursion
...
If stdout is a socket (e.g. telnet), then the debug message will cause
more TCP data to be sent, which generates another message, and so on
2016-01-22 15:41:48 -06:00
Gregory Nutt
f348e68069
Update to use 64-bit timer when available
2016-01-21 11:54:26 -06:00
Gregory Nutt
8e9f884eb7
Step 1 in /etc/resolv.conf support
2016-01-13 15:06:44 -06:00
Gregory Nutt
f87358faf9
correct some conditional compilation; update some comments
2016-01-12 07:05:50 -06:00
Gregory Nutt
1608b7c33f
Some networking logic was used helpers from apps/netutils. Not good. Quick fix is to duplicate logic
2016-01-09 15:56:08 -06:00
Gregory Nutt
795ddd7e80
OS modules: Add basic procfs support. A module registry that will eventually be used to support lsmod
2015-12-12 17:42:25 -06:00
Gregory Nutt
59b912477e
Fix some warnings: Mismatched prototypes
2015-12-05 10:36:00 -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
eb8668b0f7
net/: Add procfs support for network device status
2015-11-27 16:39:14 -06:00
Gregory Nutt
9d8462aa23
net/: Move net_procfs.c to net/procfs/. Partition logic a little better to make space to support net device procfs as well
2015-11-27 13:53:33 -06:00
Gregory Nutt
e4236941c6
net/net_procfs.c: Add basic support for networking procfs entries
2015-11-27 12:33:58 -06:00
Gregory Nutt
2a93c66948
include/nuttx/net/netdev.h and several Ethernet drivers in arch/: Most network drivers to not support statistics. Those that do only support them when DEBUG is enabled. Each driver collects an architecture specific set of statistics and there is no mechanism in place to view those statistics. Thus, the driver feature was mostly useless. This change standardizes the driver statistics and puts the definition in the common network device structure defined in netdev.h where they can be accessed by network applications. All Ethernet drivers that collect statistics have been adapted to use these common statistics.
2015-11-26 12:08:09 -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
0b12dbf95d
Fix some spacing problems
2015-10-04 15:04:00 -06:00
Gregory Nutt
cb9e27c3b0
Standardize naming used for public data and function groupings
2015-10-02 16:30:35 -06:00
Gregory Nutt
fec3d2cf62
recvfrom: Fixes for compilation with only raw, packet sockets
2015-09-14 09:06:08 -06:00
Gregory Nutt
a7e43c7fdb
Eliminate some warnings
2015-09-08 09:20:18 -06:00
Gregory Nutt
d700793077
Fix a compile error when IPv6 is enabled
2015-09-07 16:34:25 -06:00
Alan Carvalho de Assis
f10a103108
Fix tcp_send_unbuffered when NET_ETHERNET is not defined.
2015-09-07 13:31:35 -06:00
Gregory Nutt
9c66bde5b0
Fix typo in pre-processor command noted by Pierre-noel Bouteville. Also move # of pre-processior command to column 1
2015-09-05 09:10:48 -06:00
Gregory Nutt
14297afb83
Cosmetic fix to break up long line
2015-09-03 07:33:50 -06:00
Gregory Nutt
36f4d0e9fc
Fix a error in some comments
2015-09-02 20:03:28 -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
9fcad39a45
Trivial typo fix
2015-09-02 10:09:33 -06:00
Paul A. Patience
3b89eabd50
Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2.
2015-09-01 13:52:29 -04:00
Gregory Nutt
63071a563a
Costmetic changes
2015-08-27 10:38:43 -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
3bcdb218ff
Networking: Get rid of the tcp_mss macro. It is confusing and only obfuscates what is really going on
2015-08-27 08:39:17 -06:00
Gregory Nutt
007aabc46f
Fix a badly formatted comment
2015-08-26 19:18:04 -06:00
SaeHie Park
a268e0aeb9
Fix a typo from an earlier commit
2015-08-26 18:12:58 -06:00
Saehie ParK
e6dbd3d903
Networking: Fix network device name assignment logic for the case of the local loopback device. There is only one local loopback network device and it is unnumbered
2015-08-25 20:03:25 -06:00
Anton D. Kachalov
b125c36849
Field `d_sndlen' is unsigned. It is always >= 0.
...
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-08-26 00:16:52 +03:00
SaeHie Park
e983e547e1
Networking: Correct return value from psock_tcp_accept(). From SaeHie Park
2015-08-25 07:15:21 -06:00
Gregory Nutt
79aa3d40b0
Kconfig: CONFIG_NET_MULTILINK and CONFIG_NET_MULTINIC must be support if the loopback device and any real network device are selected
2015-08-25 06:51:15 -06:00
Gregory Nutt
3c5f817513
Networking: Local loopback is basically functional and is no longer EXPERIMENTAL
2015-08-24 13:58:57 -06:00
Gregory Nutt
933d74e5c1
Networking: With these changes, I can ping the local loopback device from the simulator
2015-08-24 13:49:12 -06:00
Gregory Nutt
0b012c7978
Fix some initial loop back device compilation errors; mark configuration as EXPERIMENTAL
2015-08-24 11:29:54 -06:00
Gregory Nutt
07bdff9ef7
Networking: Add NetDB support for the local loopback device
2015-08-24 10:08:26 -06:00
Gregory Nutt
e21501c699
Merge remote-tracking branch 'origin/master' into localhost
2015-08-24 08:29:36 -06:00
Gregory Nutt
569ff602ea
Networking: Remove bogus references to PPP as a link layer protocol
2015-08-24 08:29:07 -06:00
Gregory Nutt
ea2fafb024
Add definitions to support a local loopback link layer
2015-08-24 08:25:08 -06:00
Gregory Nutt
89b5ef8d35
wdogs: Fix counting of free, pre-allocated wdog timers. The could could get decremented below zero in some situations
2015-08-21 11:30:22 -06:00
Pavel Pisa
12b1c04508
recvfrom(): Correct wait for new data when NET_UDP_READAHEAD is enabled. Fix size accounting when recvfrom_udpreadahead() sets state.rf_recvlen == -1. I have not checked if data are accumulated to the right position in the buffer however.
...
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
2015-08-21 09:15:06 -06:00
Gregory Nutt
4c4868c69f
More cosmetic changes: Fix some errors in comments and some indentation problems
2015-08-11 19:23:51 -06:00
Gregory Nutt
850225223d
Costmetic fix to a comment
2015-08-11 19:21:15 -06:00
Gregory Nutt
530d229361
net/udp: Add support for send() with connected UDP sockets
2015-08-11 19:17:55 -06:00
Max Neklyudov
7d04104485
Networking: Allow receipt of empty UDP packets. From Max Neklyudov
2015-08-11 08:34:16 -06:00
Gregory Nutt
f94fe747ae
Undo part of a previous change. Move get/sethostname back from net/netdb to libc/unistd
2015-07-08 11:11:52 -06:00
Gregory Nutt
fca919f3d2
Networking: Fix some compilation issues noted with network is build with CONFIG_BUILD_KERNEL
2015-07-05 11:18:56 -06:00
Gregory Nutt
6380832ab7
Move the header of set/sethostname from libc/unisted to net/netdb. This is OS internal stuff
2015-07-05 10:43:37 -06:00
Stavros Polymenis
701509f9bd
Add implementations of uname() and gethost(). From Stavros Polymenis.
2015-07-03 07:50:27 -06:00
Gregory Nutt
09c7373f24
Fix misc. compilation error/warning detected by tools/testbuild.sh
2015-07-01 14:33:37 -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
0ad53183e1
Networking: Fix a compile problem introduced in NuttX-7.6 when CONFIG_NET_SENDFILE=y
2015-06-24 14:52:57 -06:00
Gregory Nutt
ed9c45bcef
Networking: Fix compilation error if IPv6 is enabled
2015-06-17 15:00:04 -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
edbb5d0840
networking: Correct a typo introduced with recent networking changes
2015-06-02 15:04:02 -06:00
Gregory Nutt
e22deff1ab
TCP connect. Move the location where the socket is marked as connected in order to avoid a potential race condition
2015-05-31 12:24:24 -06:00
Gregory Nutt
b493dde4cf
TCP networking: In the TCP connection operation, it was trying to setup the network monitor BEFORE the socket was successfully connected. This, of course, has ALWAYS failed because the socket is not yet connected and the TCP state is not yet correct for a connected socket. However, because of other changes net_startmonitor(0 no returns a failure condition that causes worse problems when trying to connect. The fix is to move the logic that starts the network monitor to AFTER the socket has been successfully connected.
2015-05-31 11:35:28 -06:00
Gregory Nutt
a47a0d237c
Costmetic changes to networking logic
2015-05-31 10:29:53 -06:00
Gregory Nutt
33085cb309
Networking: The network device list was protected by a re-entrant semaphore. With the recent change to support network device callback, the network stack needs to access the network device list too. Some drivers, however, run the network stack from the interrupt level -- this is bad but a fact in the current state. Of course,those drivers are unable to take the semaphore and will assert.
...
The solution here is to eliminate the device devices semaphore altogether. This eliminates netdev_semtake() and netdev_semgive() and replaces them with net_lock() and net_unlock() which have larger scope as needed for this purpose.
2015-05-31 08:34:03 -06:00
Gregory Nutt
6687e156e6
Revamp last change. IFF_UP only required when allocating callback, not freeing.
2015-05-30 21:13:58 -06:00
Gregory Nutt
28b46c7bfa
To be valid, a network device must not only exist, but be in the UP state
2015-05-30 12:54:18 -06:00
Gregory Nutt
cc340aaa92
TCP networking: Since the network monitor now allocates a callback structure, it is critical to make sure that the networking monitor is stopped when the socket is closed or any other loss of connection. What was innocuous before would now be a memory leak
2015-05-30 11:49:55 -06:00
Gregory Nutt
8b029fbbee
TCP networking: Hook the network monitor into the device event notification logic
2015-05-30 11:29:47 -06:00
Gregory Nutt
933b95ac80
Forgot to add a file in the last commit
2015-05-30 09:17:46 -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
34509a9ad5
UDP should use dev=NULL if the address in the lookup is INADDR_ANY
2015-05-29 14:56:44 -06:00
Gregory Nutt
0bdf2d5360
UDP Networking: Misc fixes to get the last changes working + cleanup
2015-05-29 14:32:56 -06:00
Gregory Nutt
fa8b7c19b7
Forgot to add a file in the last commit
2015-05-29 11:03:02 -06:00
Gregory Nutt
f10fdf7ad4
Networking: Add a test to see a device pointer is still valid
2015-05-29 11:01:03 -06:00
Gregory Nutt
2102892e7b
Fix missing file and some compilation errors from the last UDP committ
2015-05-29 10:45:41 -06:00