Generate a PDP11 emulation test-set using simh.
Find a file
Mark Pizzolato 4f6ad32395 Fixed MAC Address Conflict detection support.
VMS engineers designed the address conflict strategy when essentially all LANs were single collision domains (i.e. ALL nodes which might be affected by an address conflict were physically present on a single Ethernet cable which might have been extended by a couple of repeaters).  Since that time, essentially no networks are single collision domains.  Thick and thinwire Ethernet cables don’t exist and very few networks even have hubs.  Today, essentially all LANs are deployed using one or more layers of network switches.  In a switched LAN environment, the switches on the LAN ‘learn’ which ports on the LAN source traffic from which MAC addresses and then forward traffic destined for particular MAC address to the appropriate ports.  If a particular MAC address is already in use somewhere on the LAN, then the switches ‘know’ where it is.  The host based test using the loopback protocol is poorly designed to detect this condition.  This test is performed by the host first changing the device’s Physical MAC address to the address which is to be tested, and then sending a loopback packet FROM AND TO this MAC address with a loopback reply to be sent by a system which may be currently using the MAC address.  If no reply is received, then the MAC address is presumed to be unused.  The sending of this packet will result in its delivery to the right system since the switch port/MAC address tables know where to deliver packets destined to this MAC address, however the response it generates won’t be delivered to the system performing the test since the switches on the LAN won’t know about the local port being the right target for packets with this MAC address.  A better test design to detect these conflicts would be for the testing system to send a loopback packet FROM the current physical MAC address (BEFORE changing it) TO the MAC address being tested with the loopback response coming to the current physical MAC address of the device.  If a response is received, then the address is in use and the attempt to change the device’s MAC address should fail.  Since we can’t change the software running in these simulators to implement this better conflict detection approach, we can still ‘do the right thing’ in the sim_ether layer.  We’re already handling the loopback test packets specially since we always had to avoid receiving the packets which were being sent, but needed to allow for the incoming loopback packets to be properly dealt with.  We can extend this current special handling to change outgoing ‘loopback to self’ packets to have source AND loopback destination addresses in the packets to be the host NIC’s physical address.  The switch network will already know the correct MAC/port relationship for the host NIC’s physical address, so loopback response packets will be delivered as needed.
2012-02-28 14:10:08 -08:00
ALTAIR Cleaned up parameter declarations in all simulators to achieve clean compiles on all platforms 2011-04-15 09:04:39 -07:00
AltairZ80 Cleaned up filename cases to be consistent for cross platform builds 2011-04-19 16:02:45 -07:00
GRI Notes For V3.8 2011-04-15 08:36:09 -07:00
H316 Fixes bugs in multiply and divide introduced in 3.8-1; fixes XR and double precision bugs (from Adrian Wise) 2011-11-26 06:31:07 -08:00
HP2100 Notes For V3.8 2011-04-15 08:36:09 -07:00
I1401 Notes For V3.8 2011-04-15 08:36:09 -07:00
I1620 Compile cleanups. 2011-04-19 16:18:26 -07:00
I7094 Notes For V3.8 2011-04-15 08:36:09 -07:00
Ibm1130 ibm1130 - Compiler cleanup 2011-04-20 15:10:48 -07:00
Interdata Notes For V3.8 2011-04-15 08:36:09 -07:00
LGP Notes For V3.8 2011-04-15 08:36:09 -07:00
NOVA Merge branch 'FastAsynchIO' into simhv38-2-rc2 2011-04-15 10:47:35 -07:00
PDP1 Notes For V3.8 2011-04-15 08:36:09 -07:00
PDP8 adds link to pdp8_fpp.c 2011-10-26 13:48:15 -07:00
PDP10 Merge branch 'FastAsynchIO' into simhv38-2-rc2 2011-04-15 10:47:35 -07:00
PDP11 Fixed internal loopback packet processing. We should only respond to loopback packets addressed to the physical MAC address OR the Broadcast address OR a Multicast address we're listening to (we may receive other loopback packets if we're in promiscuous mode but we should not respond to them). 2012-02-28 12:09:05 -08:00
PDP18B Merge branch 'FastAsynchIO' into simhv38-2-rc2 2011-04-15 10:47:35 -07:00
S3 Cleaned up parameter declarations in all simulators to achieve clean compiles on all platforms 2011-04-15 09:04:39 -07:00
SDS Notes For V3.8 2011-04-15 08:36:09 -07:00
swtp Cleaned up parameter declarations in all simulators to achieve clean compiles on all platforms 2011-04-15 09:04:39 -07:00
VAX More robust detection of file transfer/conversion errors in ROM/boot code 2012-02-26 12:38:07 -08:00
Visual Studio Projects Added check for required build dependencies in the Visual Studio Projects to provide advise when needed. 2012-01-31 05:45:33 -08:00
.gitattributes simh v2.5 2011-04-15 08:33:23 -07:00
.gitignore Make sure that VAX/vmb.exe is included in the git repository 2011-06-01 09:10:13 -07:00
0readme_38.txt Notes For V3.8 2011-04-15 08:36:09 -07:00
0readme_ethernet.txt Updated Windows Network build (in makefile and Visual Studio Projects) to reference WinPcap and pthreads in a consistent parallel directory to the simulator source (i.e. ../windows-build/...). 2012-01-27 05:00:46 -08:00
0readmeAsynchIO.txt Clarified operational requirements for SIM_ASYNCH_IO on Windows 2012-02-06 10:03:09 -08:00
build_mingw.bat Updated Windows Network build (in makefile and Visual Studio Projects) to reference WinPcap and pthreads in a consistent parallel directory to the simulator source (i.e. ../windows-build/...). 2012-01-27 05:00:46 -08:00
build_mingw_ether.bat Updated Windows Network build (in makefile and Visual Studio Projects) to reference WinPcap and pthreads in a consistent parallel directory to the simulator source (i.e. ../windows-build/...). 2012-01-27 05:00:46 -08:00
build_mingw_noasync.bat makefile: Cleaned up MinGw build and provided an option to build without Asynch I/O support using MinGw. 2011-04-20 15:18:37 -07:00
descrip.mms Cleanup comments 2011-10-31 10:25:52 -07:00
makefile Change default makefile behavior to prefer OS provided libpcap components over www.tcpdump.org components and to suggest that the build should be done with the OS libpcap-dev package. 2012-02-26 10:13:20 -08:00
scp.c Fixed bug in save command. The issue is that attached units which are buffered in memory should also be flushed to storage as part of the save operation to make all the components of the save 'snapshot' consistent. 2012-02-02 07:30:40 -08:00
scp.h Cleaned up VMS builds using various versions of the Dec/Compaq/HP C compilers 2011-06-04 04:29:00 -07:00
sim_BuildROMs.c More robust detection of file transfer/conversion errors in ROM/boot code 2012-02-26 12:38:07 -08:00
sim_console.c Provided Console Control Event explanation as comments in the sim_console code. 2012-02-28 14:02:49 -08:00
sim_console.h Added sim_ttisatty to support reasonable behaviour (i.e. avoid in infinite loop) in the main command input loop when EOF is detected and input is coming from a file (or a null device: /dev/null or NUL:) This may happen when a simulator is running in a background process. 2011-12-07 10:01:07 -08:00
sim_defs.h Added SET ASYNCH and SET NOASYNCH commands to dynamically enable or disable Asynchronous I/O support 2011-09-25 08:16:40 -07:00
sim_disk.c Align VHD disk data blocks for optimal performance when a VHD resides on storage with 4K sector size. 2012-02-25 08:45:52 -08:00
sim_disk.h Added Asynch I/O and Disk Support for various Disk formats 2011-04-15 08:49:18 -07:00
sim_ether.c Fixed MAC Address Conflict detection support. 2012-02-28 14:10:08 -08:00
sim_ether.h Fixed MAC Address Conflict detection support. 2012-02-28 14:10:08 -08:00
sim_fio.c Fixed concurrent write issue (discovered by Sergey Oboguev) which may happen if SIM_ASYNC_IO is enabled 2012-02-01 19:58:55 -08:00
sim_fio.h Added Asynch I/O and Disk Support for various Disk formats 2011-04-15 08:49:18 -07:00
sim_rev.h Notes For V3.8 2011-04-15 08:36:09 -07:00
sim_sock.c Compiler cleanup for issues noticed during x64 compiles 2012-01-17 04:09:34 -08:00
sim_sock.h Compiler cleanup for issues noticed during x64 compiles 2012-01-17 04:09:34 -08:00
sim_tape.c Added support for Logical End of Tape (EOT) detection when required 2012-01-24 10:12:26 -08:00
sim_tape.h Added support for Logical End of Tape (EOT) detection when required 2012-01-24 10:12:26 -08:00
sim_timer.c Compiler warning cleanup 2011-10-31 10:26:58 -07:00
sim_timer.h Make sure that the correct struct timespec definition (which the pthreads APIs will need) is known before we define our own. 2012-01-13 15:32:51 -08:00
sim_tmxr.c Compiler cleanup for issues noticed during x64 compiles 2012-01-17 04:09:34 -08:00
sim_tmxr.h Added telnet Option Negotiation Debugging support 2011-06-02 08:57:20 -07:00