Commit Graph

22 Commits

Author SHA1 Message Date
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
82cc93c71b Add some comments to a Kconfig file 2015-09-24 14:53:04 -06:00
Gregory Nutt
50b64f6991 Sim target on Cygwin64: Modern Cygwin X86_64 machines follow the Microsoft ABI for parameter passing. The older,inux System 5 ABI will not work on X86_64-based Cygwin machines. With this change, the simulator agains works with the newer Cygwin64 platform 2015-09-24 14:41:57 -06:00
Gregory Nutt
569a29a327 Simulation: Newer versions of Cygwin tools do not seem to pre-pend symbol names with underscore character 2015-09-24 09:08:52 -06:00
Gregory Nutt
fb926e7283 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
c51ebf8c72 Refresh some configurations 2015-02-01 12:15:46 -06:00
Gregory Nutt
23ac4caf5a C5471: choice has a default value. It should not 2014-12-28 18:15:17 -06:00
Gregory Nutt
ca3977e91e SIM: Add an X11 mouse-based simulation of an analog joystick device 2014-12-14 10:19:07 -06:00
Gregory Nutt
639400e599 Allow building simulated framebuffer dirver is NX is not enabled 2014-12-08 08:29:48 -06:00
Gregory Nutt
31049a203c Add support for 64-bit lonjmp/setjmp in simulator platform 2014-10-03 08:23:57 -06:00
Gregory Nutt
371347b144 Fix missing closing quotation mark 2014-09-19 13:00:42 -06:00
Gregory Nutt
400d469956 Emulated SPI FLASH driver for the sim target from Ken Pettit 2014-09-19 10:27:18 -06:00
Gregory Nutt
29406c0d20 Add option to select 64-bit build platform 2014-08-22 18:21:32 -06:00
Gregory Nutt
8c4e03bba9 Various Kconfig files still have references to CONFIG_ variables. Some in harmless comments, some in config definionts which is not harmless. All removed 2013-04-25 15:52:00 -06:00
patacongo
b94547ff97 configs/sim/nxwm now uses kconfig-frontends
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5449 42af7a65-404d-4744-a932-0658087f49c3
2012-12-21 21:30:33 +00:00
patacongo
4f469e6316 Reconfigured Shenzhou to use JTAG. Misc Kconfig changes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5118 42af7a65-404d-4744-a932-0658087f49c3
2012-09-09 15:43:18 +00:00
patacongo
65609b13b3 more Kconfig stuff
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4626 42af7a65-404d-4744-a932-0658087f49c3
2012-04-17 21:53:05 +00:00
patacongo
8779fb2f5f More Kconfig
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4625 42af7a65-404d-4744-a932-0658087f49c3
2012-04-17 21:23:10 +00:00
patacongo
09eb66c89d Kconfig update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4599 42af7a65-404d-4744-a932-0658087f49c3
2012-04-13 14:27:44 +00:00
patacongo
fbaeb32b0f More configuration files
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4588 42af7a65-404d-4744-a932-0658087f49c3
2012-04-11 02:04:59 +00:00
patacongo
7221f3b1ed Updated Kconfig files from Lzyy
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4569 42af7a65-404d-4744-a932-0658087f49c3
2012-04-07 14:50:57 +00:00
patacongo
6708183e27 Beginning of a NuttX configuration tool
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4560 42af7a65-404d-4744-a932-0658087f49c3
2012-04-05 17:44:04 +00:00