Commit graph

80 commits

Author SHA1 Message Date
Mark Pizzolato
9c5df04de4 PDP11, VAX: Make sure to initialize amount of data processed for incoming packets which get read into multiple buffer descriptors 2014-10-09 11:15:11 -07:00
Mark Pizzolato
01c725fcdf ETHER: Avoid compiling internal support routines for simulators which don't have ethernet devices 2014-10-04 12:44:05 -07:00
Mark Pizzolato
9a0d035e78 ETHER: Fix asynch reader thread rundown in error recovery path. 2014-07-17 08:58:50 -07:00
Mark Pizzolato
b907790cc1 ETHER: Fix to allow proper building and operation when networking support is undesired or unavailable. #143 2014-07-10 14:53:21 -07:00
Mark Pizzolato
d26bf25e97 Compiler suggested cleanups 2014-06-10 14:21:11 -07:00
Mark Pizzolato
c15c0058f4 ETHER: Made LAN connections more robust under failing network conditions.
Avoid permanent network network hangs when a network transport starts to return errors for various reasons.
These hangs also result in at least one thread in a CPU bound loop attempting to read on a pcap connection which will never be useful again.

When transmit or receive errors occur, the invoking thread sleeps for 1 second and subsequent operations proceed.  When the total of read + write errors reaches a multiple of ETH_ERROR_REOPEN_THRESHOLD the current transport connection (usually pcap) is closed and re-opened after a ETH_ERROR_REOPEN_PAUSE second delay.  If the open succeeds, we're happy.  If it fails, then the link behaves as if it were never attached until some subsequent operator intervention is performed.

Activities which are known to induce this problems include (but are not limited to) when a simulator is running in a Windows Virtual Machine on a Hyper-V host system and the Hyper-V host system performs a SAVE and a subsequent Restart of the Guest Windows Virtual Machine.  This operation can occur due to specific operator requests or merely when the Hyper-V host system reboots.
2014-06-10 10:20:02 -07:00
Mark Pizzolato
e9b312f26a PDP11, VAX: Added Ethernet packet transmission throttling support to XQ and XU devices.
Migrated the XQ help to the hierarchical help model.  This is a work in progress which will eventually merge much from 0readme_ethernet.txt into the device help.
2014-06-06 15:03:31 -07:00
Mark Pizzolato
d57e37a392 ETHER, PDP11, VAX: Added a built-in loopback agent which all ethernet devices can leverage to detect MAC address conflicts.
Some of this behavior was previously available in the pdp11_xq simulation for the DELQA device variants, but not the DEQNA.  This adds the behavior for all ethernet devices.

The helps to avoid MAC address conflicts since the Ethernet physical address is completely user settable, and starts with a static value.  Multiple simulators on the same LAN will have conflicting addresses if they don't specifically set unique values.
2014-05-29 09:42:02 -07:00
Mark Pizzolato
6ce8d99cd8 SCP: Added generic output routine sim_printf to output to stdout and sim_log (and sim_deb when enabled)
The goals here being to simplify calling code while getting consistent output delivered everywhere it may be useful.

Modified most places which explicitly used sim_log or merely called printf to now avoid doing that and merely call sim_printf().
2014-03-28 08:20:05 -07:00
Mark Pizzolato
d81825cdba ETHER: Updated documentation for building with network support on Mac OS/X. Fix #112 2014-02-24 08:51:47 -08:00
Mark Pizzolato
5d82b9a960 ETHER: Fix support on OSX so that builds will succeed when building network capable simulators and libpcap development components are not available but TUN/TAP components are available. 2014-02-14 06:43:40 -08:00
Mark Pizzolato
55822918a5 ETHER: Fix support on OSX so that builds will succeed when building network capable simulators and libpcap development components are not available. 2014-02-13 16:03:38 -08:00
Mark Pizzolato
9ab6c4d1c1 SOCKET: Extended TMXR packet capabilities to disable the Nagle algorithm when TCP packets transports are used. 2014-01-23 09:31:05 -08:00
Mark Pizzolato
0e753b7c45 Compiler indicated cleanups 2014-01-06 13:14:16 -08:00
Mark Pizzolato
fdcbef3954 ETHER: Added support to build with more older versions of libpcap on some platforms. Removed support to use tcpdump.org's libpcap on Linux platforms. 2014-01-02 13:30:49 -08:00
Mark Pizzolato
1666cef8e3 ETHER: Fix mixed line endings which crept in while adding network support without any pcap components. 2013-12-30 09:19:55 -08:00
Mark Pizzolato
7b3e508627 ETHER: Added capability to build working networking support without pcap packet transport (i.e. only using one of the other available packet transports: VDE, TAP, UDP, etc.) 2013-12-19 09:45:51 -08:00
Mark Pizzolato
e34babdc7e ETHER,VAX,PDP11: Fixed regression in pcap ethernet link behavior introduced by the addition of the udp link type. This fixes issue #92 2013-12-17 05:44:27 -08:00
Mark Pizzolato
834e986eaf ETHER,VAX,PDP11: Added UDP as a link type for Ethernet packet connectivity.
This will allow a single simulator to directly connect to HECnet systems without needing an external bridge program.
2013-12-05 11:58:58 -08:00
Mark Pizzolato
2e85e74699 SCP: Various cleanups.
- Avoid assignments of void * values.  Cast all memory allocation return values to appropriate types.
- Add output to sim_log where missing in various places.
- Fixed issue with lost file positions after a restore for devices which leverage the UNIT_SEQ flag.
2013-11-20 09:13:27 -08:00
Mark Pizzolato
949aa30bef ETHER: Fix bpf filter generation to not generate an invalid filter if only multicast addresses were provided 2013-11-14 10:39:17 -08:00
Mark Pizzolato
651780c481 Remove stray tab characters which crept in over time 2013-06-03 06:29:01 -07:00
Mark Pizzolato
b755a71a60 Added sim_ether dynamic libpcap load support for platforms which need to use pcap_setnonblock. 2013-05-23 08:17:29 -07:00
Mark Pizzolato
4bd72e666c Compiler and static analyzer fixes from Peter Schorn. 2013-04-13 16:59:54 -07:00
Mark Pizzolato
249f40e4bc Compiler indicated cleanup (FreeBSD on PPC) 2013-03-23 15:55:13 -07:00
Mark Pizzolato
7217f60a5f Added OSX on PowerPC support 2013-03-22 16:50:36 -07:00
Mark Pizzolato
e2bb312dd8 Fixed redundant output in SHOW ETHERNET when ethernet devices are open and added device send/receive stats 2013-03-22 14:30:48 -07:00
Mark Pizzolato
933a23e742 Added support to find dlopen in either libdl or libdld since some platforms package it there. 2013-03-22 10:03:19 -07:00
Mark Pizzolato
eb101e3881 HP-UX port supplied by Mikulas Patocka 2013-03-05 13:29:38 -08:00
Mark Pizzolato
4ff56d6c15 Changed all internal #ifdef's which were conditional on __linux to be conditional on either __linux or __linux__. Some platforms (PPC) don't define __linux when gcc is invoked with -std=c99. 2013-02-20 21:57:02 -08:00
Mark Pizzolato
6eb3804620 Standardized scp command formatting in help output 2013-01-15 06:21:32 -08:00
Mark Pizzolato
784ae24324 - Fixed asynchronous i/o hangs introduced when asynchronous cancel support was added
- Added event debug support to scp and the vax simulator
- Moved external declarations into include files related to modules which define them and removed random externs from modules which referenced them
- Fixed typos in sim_ether
- Fixed sim_disk and sim_tape to properly manage asynchronous threads on an i/o flush
2013-01-09 17:02:58 -08:00
Mark Pizzolato
51459eb456 Added ethernet help and cleaned up generic help output 2013-01-09 11:13:06 -08:00
Mark Pizzolato
d291a6e838 Fix compiler identified array bounds issues 2012-12-21 12:55:57 -08:00
Mark Pizzolato
50cf91d441 Merge branch 'SerialMux' and compiler suggested cleanup 2012-12-18 09:52:14 -08:00
Mark Pizzolato
c87c747ed7 Compiler warning cleanup 2012-12-16 06:24:36 -08:00
Mark Pizzolato
0450a9b430 Compiler suggested cleanup 2012-12-15 07:56:42 -08:00
Mark Pizzolato
b466bdc9c6 Compiler warning cleanup 2012-12-13 13:41:57 -08:00
Mark Pizzolato
c6c66487ac Compiler suggested cleanups 2012-11-30 13:22:15 -08:00
Mark Pizzolato
f1e3216d99 Added MicroVAX I network boot support
pdp11_xq.c, pdp11_xq.h
	- Added emulation and visibility to the LEDs which were on the physical DEQNA/DELQA network boards.  "show xq: will now display the LED state in addition to the other useful things.
	- Added debugging of loopback packet data
	- Avoided padding on short loopback packets
	- Added support for extended length loopback packets (up to 1600 bytes) which is described in the DEQNA manual and used by the MicroVAX I boot ROM.  Recieve such packets with the LONG error indicator.
	- Returned 'reserved' status bits as 1's in received packet status word 1.
	- Added debug display of transmit and receive Buffer Descriptor List contents.

sim_ether.c, sim_ether.h
	- Added support for extended/oversized packets.
2012-11-05 15:12:36 -08:00
Mark Pizzolato
24696892fd Merge branch 'DMC11' into SerialMux
Conflicts:
	scp.c
	sim_ether.c
	sim_ether.h
	sim_tmxr.c
2012-10-16 15:50:38 -07:00
Mark Pizzolato
30ce7fdbaa Revised the socket library sim_sock(.c & .h) to support both IPv4 and IPv6 leveraging the RFC3493 APIs.
All dependent code has been updated to use the revised interfaces.
2012-09-28 15:34:55 -07:00
Mark Pizzolato
ffa52ab3fd Changed the display of the contents of the error message buffer to only do so if no devices were returned at all 2012-07-10 16:14:30 -07:00
Mark Pizzolato
938450bbf5 Added display of warning produced by pcap_findalldevs() where a warning message is provided when no devices are available (OSX). - Sergey Oboguev 2012-07-10 13:32:41 -07:00
Mark Pizzolato
f77a38c3c5 Cleaned up a few compile complaints 2012-04-27 12:11:12 -07:00
Mark Pizzolato
8989b111c1 Fixed declaration of unused parameter to quiet a gcc warning 2012-04-27 10:08:27 -07:00
Mark Pizzolato
c77bdb20f1 Added scp SHOW SERIAL command
Fixed Ethernet formatting of open device names
Fixed serial generic naming to accomodate for the fact that an OS list of serial devices might not include devices which are already opened.
2012-04-25 17:04:48 -07:00
Mark Pizzolato
7929c11792 Merge branch 'master' into SerialMux 2012-04-25 12:19:11 -07:00
Mark Pizzolato
83172116e8 Added SHOW ETHERNET command and extended eth_show to track and display open ethernet devices 2012-04-25 05:29:50 -07:00
Mark Pizzolato
5f505ccadf Fixing many compiler identified nits. 2012-04-18 09:48:04 -07:00