ETHLOAD user's guide 40 ETHLOAD 1.04 USER'S GUIDE A simple free Ethernet load/problems analyzer and events tracer E. Vyncke vyncke@csl.sni.be 16 January 1994 1. Introduction. ETHLOAD is a free software running on any MS-DOS PC with an Ethernet controller. Currently, ETHLOAD supports the following drivers (for Ethernet and Token Ring): - Digital Equipment Corp. DLL specification; - Microsoft 3Com NDIS (Network Driver Interface Specification); - packet driver as issued from PC/TCP, Clarkson University or from the Crynwr collection; - Novell ODI (Open Datalink Interface) if the driver supports promiscuous mode; - ASCII file containing Ethernet frames; - loopback driver (mainly for debugging purposes). The purposes of ETHLOAD are twofold: - display very simply non accurate numbers about the Ethernet load (number of frames/sec, bits/sec, ...); - display important parameters, events and loads for the TCP/IP, DECnet, OSI, XNS, NetWare and Netbeui protocols. ETHLOAD allows you to: - check simply the load of your Ethernet (with error rate, inter frame gap,...); - check which host is sending most of frames; - see which host is sending to which host; - see what kind of protocols are in use in your Ethernet; - ... In a TCP/IP network, ETHLOAD allows you to: - see ARP table contents; - see which host is sending (un)resolved ARP probes; - see the IP host which is sending most of the IP, UDP or TCP packets; - see what kind of protocols are in used (either TCP or UDP); - see which is the mostly used telnet/rlogin server (or client); - see the boot sequence with important BOOTP and TFTP events; - see some characteristics of IP hosts (fragments size, MTU, IP retransmission, options used -- including source routing, ...); - see main RFC 1001/1002 NetBIOS events and names; - see the working of DNS; - see important TCP events: start/stop of connections,... In a DECnet network, ETHLOAD allows you to: - see which node are sending/receiving most of DECnet packets; - see all Connect Initiate packets (including object number, ...) ; - see returned packets; - ... In an OSI network, ETHLOAD allows you to: - see the top transmitter/receiver NSAP; - see what happens with TUBA (TCP & UDP with Big Addresses); - see the exchange of information between ES and IS and between IS; - see important events for the transport layer: connection/disconnection, TSAP are displayed in hexadecimal, ASCII and EBCDIC. In a Microsoft NetBEUI network, ETHLOAD allows you to: - see the main naming events; - see the connections and the datagrams. In a Novell NetWare network, ETHLOAD allows you to: - see the routers; - see the different XNS/IPX networks; - see the advertised services ; - see who is connected to who. * * * * * * 2. Miscellaneous and acknowledgements. 2.1. Original copyright. This software is based on the very first version of ETHLOAD I have developed while I was working in a company called Network Research Belgium. This version was already free and in the public domain thanks to the management of this company. Here follows the copyright included in the source files of about 0,1% of the current version of ETHLOAD. /* This software and documentation can be copied, used, modified freely as long as: - the source contains this text - this software, documentation is provided free of charge (but for the cost of media: paper, CD-ROM, ...). Network Research Belgium and the individuals who have written this software DO NOT ASSUME any responsibilities in respect to the use, (un)expected side -effects of this program. The software and documentation is provided as it is. No maintenance will be given. Anyway, we would be pleased to hear of any use of these softwares by email, fax: bert@nrb.be fax: +32.41.48.11.70 Suggestions, modifications are always welcome. These softwares have been developed by a special team called BERT in a company called Network Research Belgium located in Herstal, Belgium, Europe . This team includes: Eric Vyncke, vyncke@nrb.be now vyncke@csl.sni.be Frederic Blondiau, blondiau@nrb.be Michel Ghys, now mghys@cisco.com Marie-Christine Timmermans, timmermans@nrb.be Jean Hotterbeex, now jhotterb@cisco.com Manu Khronis, khronis@nrb.be Vincent Keunen, keunen@manex.uucp */ 2.2. Current copyright and disclaimer. Right now, all software developments are made home and tested after working hours in my current company: Siemens Nixdorf Informationsystems, SNI. So, here follows the usual disclaimer: Siemens Nixdorf and NRB are by no means responsible for any good or bad effects of this program. And by the way, the quality of ETHLOAD does not reflect the usual quality of NRB or SNI software. NRB, Siemens Nixdorf and the author do not support this software and are, in no case, responsible for any bad use or any bad effect or any false result or anything caused by any version of ETHLOAD. 2.3. Support. If you have problems to run ETHLOAD, please read carefully this manual and also check the common pitfalls in appendix A.4. The UseNet comp.protocols.tcp-ip.ibmpc newsgroup is the right place to state your problems, to comment on ETHLOAD, ... I'm reading this newsgroup every day (together with comp.sys.novell and the BITNET mailing list about NOVELL and PATHWORKS). This if the preferred way to get some 'support'. Anyway, you can get some support from the author since he wants to promote this software... You can reach the author through email: vyncke@csl.sni.be1, X.400: /c=be/admd=rtt/prmd=sni/o=siemens nixdorf/ou1=liege/ou2=L1/ ou3=D1/ou4=csl/g=eric/s=vyncke/ or by post mail: Eric Vyncke Rue Nolden, 25 B-4432 Alleur Belgium (Europe). If you are happy with ETHLOAD, my little son, Pierre, would appreciate to receive any postcard (he is still very young and still lives with us :-)! Due to the large 'success' of ETHLOAD, I'm no more able to reply to all questions or comments addressed to my email address... So, you are strongly urged to try the comp.protocols.tcp-ip.ibmpc newsgroup. In no case, shall I answer to phone calls at my office (except for those of you who are working for a company of the Siemens group)... Don't forget that I am paid by Siemens Nixdorf and that I have a lot of work to do at the office :-) 2.4. Distribution channel. I have no access to internet, so I cannot place ETHLOAD on anonymous FTP server, if you run such a server I will appreciate that you reserved some place for ETHLOAD on your BBS or anon FTP server... If you do so, please warn me by email in order to keep a list of distribution channels. Normally, ETHLOAD is available as package called ETHLDvrr.ZIP (where vrr are version and release numbers) from the Simtel repository (aka oak.oakland.edu) in /pub/msdos/lan and also in ub4b.eunet.be:/pub/ub4b/network/msdos. A companion program called ETHDUMP is generally available from the same locations under the name ETHDPvrr.ZIP. These servers can be accessed by email via TRICKLE servers on BITNET for the Simtel repository or via mail- server@ub4b.eunet.be (commands: help, reply
and get ethld104.zip). 2.5. Thanks to testers. I would like to thank anyone of you about his/her comments. I thank especially my beta-testers: Ralf Buettemeyer, buettemeyer@hagenuk.netuse.de Michel Dalle, michel@d92.cb.sni.be Niels Kr. Jensen, msterlje@vm.uni-c.dk Hans-Joachim Koch, koch@lifra.lif.de Hans-Michael Pronk, hpronk@fac.fbk.eur.nl A.A.L. Reijnierse, A.A.L.Reijnierse@research.ptt.nl Frank Van Uffelen, frankvu@bix.com, fvo@te6.siemens.be I thank also for comments, suggestions, ...: Joe Doupnik, jrd@cc.usu.edu Knut Eckstein, eckstein@isd.uni-stuttgart.de Thomas Gasser, thomasg@staff.tc.umn.edu Derek Johnston, ugcsjj9697@mtvms2.mtech.edu Ross Lazarus, rossl@westmead.health.su.oz.au Ted Llellewyn, tsl@panix.com Jos Minnema, jos.minnema@pagv.agro.nl Craig Morgan, cmrcm@staffs.ac.uk Russ Nelson, nelson@crynwr.com Hugo Philips, zigo@uc.sni.be Oliver Rehmann, orehmann@itr.ch Lars Scheffmann, scheffmann@dou.dk Russell Thamm, rmt@gwd.erl.dsto.gov.au And, all of you who have send a postcard :-) 2.6. Changes. 1.01: - support for packet driver, ODI and NDIS - support for TCP/IP - no more load graphics - dictionaries - bug correction in the length display - porting from large model in Borland C to small model in Borland C++ 1.02: - bug correction in DLL support - documentation about copyright on packet drivers - dropped packets percentage in MAC screen - MAC flow screen - SMTP, TFTP and BOOTP support - Telnet/rlogin monitoring - options in command line - OSI support - improved DLL, ODI, NDIS and packet driver routines 1.03: - use a local stack for all interrupt time routines; - add file driver; - support DNS, RFCNBIOS in TCP/IP; - add NetBEUI and XNS/NetWare supports; - improved display routines; - NumLock key for switching between numeric and symbolic display; - improved memory management; - port to large model C; - slight changes in DECnet presentation. 1.04: - consider socket instead of packet types for Novell; - addition of TUBA - better OSI support (active network layers) - slight modifications in packet driver - add the -b option to specify LAN bandwidth - add the -f option to allow very trivial filtering - add the -m option to specify more buffers - add the -o option to allow partial work of ETHLOAD even if promiscuous mode is not supported - remove the old -s (stack) option - replace the old -f (fast) option by a -s (slow) option, the default is now fast mode - some IEEE 802.5 support (MAC frames, ring status, ...) - decode MSS option in TCP - decode IP options - add a dictionary for DNA objects - ETHDUMP (the companion) can record short frames ( < 14 bytes) and can be put in quiet mode - the key '%' change top display percentage - length in recorded file now includes all headers and FCS - -l command line option to get panic messages 2.7. Trademarks. As usual, all trademarks (Ethernet, DEC, NetWare, ...) are properties of their respective owners. 2.8. Source code. After being flamed on some mailing lists for having put a sniffer source code in the public domain and as I understand their fears (even if a large bunch of other Ethernet sniffers are available everywhere), I have decided that the source code is not made available. If you do need some parts of code, please refer first to public domain sniffers before asking me for parts of the code. What can be disclosed to you, is some parts of ETHLOAD, please email me for this. 2.9. Licensing. All version of ETHLOAD (1.01 to 1.04) are copyrighted by NRB and Eric Vyncke. Version 1.01, 1.02, 1.03 and 1.04 are free, you may use it, copy it (on any support), distribute it as long as you don't earn money from it (of course you may get paid a little for the media/transmission cost). This right is given for an unlimited period of time :-) I would appreciate if my little son received a postcard from you (see 2.3). As ETHLOAD is now more than 65,000 lines of C code (roughly about 60 evenings ;-)), next version of ETHLOAD (2.0) will be shareware: i.e. you will be allowed to copy it and distribute it as before but you will be allowed only a 90 days test period before having to be registered. The registration fee (probably about $199 or ECU 199) will allow you the right to use it for an unlimited period of time on any PC within your organization. Moreover, you will receive a 'registration key' that will allow you to get print-outs of ETHLOAD, an Excel compatible file for the load of the day, a larger number of internal buffers (so less dropped frames), a fully configurable of table size (in order to avoid the 'Filled since ...' message), and also a special electronic mail address for a support. Version 2.0 will have a completely different screen layout and a on-line help. The code will be completely different from the code of the NRB version and the copyright of NRB will be deleted. Now, enough about these stuffs, let's have fun and start ETHLOAD ! 2.10. Security. ETHLOAD should never be a major security leak on your LAN. ETHLOAD just may disclose the addresses used in your LAN and also the usernames of people. If for some reason, you HAVE to monitor some telnet/rlogin sessions, ETHLOAD will be able to do this. To be allowed to monitor these sessions or to check the contents of connect initiate of DECnet, you need a special software key linked to the Ethernet ROM address of your PC. This key will be delivered only after I have received an OFFICIAL paper letter from a very high level manager of your company (e.g. for University the rector or for a commercial organisation the head of EDP department or of a CEO). This letter should bear the name of the PC operator, his/her email address and the physical address of the PC. Even with this paper letter, the author may not give you the authorization for any reason. * * * * * * 3. Configuration files. In order to run in basic mode (i.e. without translation of addresses into names,...) ETHLOAD does not require any configuration file. The configurations are required only if you want to achieve good printings: host name instead of addresses, ... It is possible to suppress the messages about loading these files, by using the -q option when starting ETHLOAD. All configuration files are in the same format: - plain ASCII files, i.e. lines ended by CR/LF; - any line beginning with a ';' or a '#' is considered as a comment; - empty lines are ignored; - other lines must begin with a token generally numeric, called the key, then a series of space or TAB characters, followed by another token, called the value. The value token is ended by the CR/LF end of line. Most of these files are the MS-DOS image of the well known TCP/IP files for UNIX: /etc/hosts, /etc/ethers, /etc/protocols, ... The simplest way to use them is to FTP them from your UNIX box. If you are using TCP/IP you should FTP /etc/hosts of a UNIX host and perhaps add some MAC addresses to the ETHERS file. If you are using DECnet, you probably don't need to modify any of these files. If you are using another protocol, you will probably need to modify ETHERS file together with TYPES and/or SAPS. All these optional files must be located in the current directory of the current drive or in the directory specified by the MS-DOS environment variable ETHLOAD. ETHERS This file contains the mapping between MAC Ethernet addresses into host names. The key token is the Ethernet MAC address in the format HH- HH-HH-HH-HH-HH where HH is a pair of hexadecimal digits. The value token is any character string representing the name of this host. Part of ETHERS file: AB-00-03-00-00-00 DEC: Local Area Transport -LAT- FF-FF-FF-FF-FF-FF Broadcast CF-00-00-01-00-00 Loopback Assistance 00-00-00-00-00-00 Null Address Remark: ETHLOAD is smart enough to recognize a DECnet node and display the DECnet address of any MAC address. If you want to display DECnet address by node name, you may use the MKNODE.EXE program documented in annex A.3. Remark 2: ETHLOAD is also listening for ARP requests and replies, so it can display the IP address of any MAC address. Remark 3: ETHLOAD as it is (i.e. without ETHERS) cannot even display correctly well known address as the null address or even the broadcast address. Remark 4: you should add your own MAC addresses only if you are not using DECnet or TCP/IP, moreover, you should add these addresses at the end of ETHERS file and keep the original contents of ETHERS. HOSTS This file contains the mapping between IP address and host names. The key token is an IP address in the format ddd.ddd.ddd.ddd where ddd is up to three decimal digits. The value token is any character string representing the name of this host. Part of HOSTS file: 139.21.20.18 d012s509.mch.sni.de d012s509 139.21.18.140 d012s322.mch.sni.de d012s322 139.21.22.206 d012s712 rm400ap 139.21.24.1 cisco.ap.mch.sni.de 139.24.16.44 baumann The best way to initiate this file is to get a /etc/hosts from a UNIX machine (or the stdout of the ypcat hosts.byaddr if you are running NIS2). NETWORKS This file contains the mapping between IP address and network names. It is used to display the IP addresses when no information can be found in the host file. The key token is an IP address in the format ddd.ddd.ddd.ddd where ddd is up to three decimal digits. The value token is any character string representing the name of this network. Part of NETWORKS file: 150.144.0.0 UCCLE 150.148.0.0 CSL The best way to initiate this file is to get a /etc/networks from a UNIX machine (or the stdout of the ypcat networks.byaddr if you are running NIS3). PROTOCOL This file contains the mapping between IP protocols and protocol names. The key token is a decimal number up to 255. The value token is any character string representing the name of the protocol. One again, the best way to initiate this file is to get /etc/protocols from a Unix machine or using the PROTOCOL file you may have receive with ETHLOAD. The first solution is probably not useful since /etc/protocols are always nearly the same. The shipped PROTOCOL file contains: 0 ip 1 icmp 3 ggp, gateway-gateway protocol 6 tcp 8 egp, exterior gateway protocol 12 pup 17 udp 20 hmp, host monitoring protocol 22 xns-idp 27 rdp, reliable datagram protocol SAPS This file contains the mapping between IEEE 802.2 LLC SAP and SAP names. The key token is two hexadecimal digits. The value token is the name representing the Service Access Point. Part of a sample SAPS file: 80 3Com XNS 8E Proway-LAN AA TCP/IP SNAP (Ethernet type in LLC) BC Banyan VINES E0 Novell NetWare F0 IBM NetBIOS Remark: ETHLOAD has a built-in knowledge of SNAP. WKS.TCP (resp. WKS.UDP) This file contains the mapping of TCP (resp. UDP) well- known services ports. The key token is a decimal number up to 65535 which is the port number assigned to the service. Part of a sample WKS.TCP file: 79 finger 21 ftp 101 hostnames 2156 informix 1524 ingreslock This file together with WKS.UDP contains all the information of the usual /etc/services UNIX file but in a slightly different format. Since the file /etc/services is always the same on all Unix machine, you may probably use the files provided with ETHLOAD. TYPES This file contains the mapping of the DIX Ethernet packet type into names. The key token is 4 hexadecimal digits. Part of a sample TYPES file: 0600 XNS 0601 XNS Address Translation 0800 DOD IP 0801 X.75 internet VENDORS This file contains the mapping between the IEEE vendor codes and the vendor names. The IEEE vendor code is representing the most significant three bytes of the MAC address of any adapter built by this manufacturer. The key token is 3 bytes represented each by two hexadecimal digits, each byte is separated by a dash. Part of a sample VENDORS file: 00-00-0C cisco 00-00-0F NeXT 00-00-10 Sytek 00-00-1D Cabletron OBJECTS.DNA This file contains the mapping between the DECnet object number and the object name. The key token is a decimal number between 1 and 255. The file shipped should be enough for all sites. Here follow some lines of the file: 25 MIRROR 26 EVL 27 MAIL 29 PHONE 42 CTERM NETWORKS.XNS This file contains the mapping between the XNS (or IPX) network numbers and their names. This file is used when you are displaying XNS/Novell screens else it can be safely deleted. The key token is the network number in the format XX-XX-XX- XX where each X is an hexadecimal digit. The shipped NETWORK.XNS file contains: 00-00-00-00 Local FF-FF-FF-FF Broadcast ; ; The rest has to be customized ; 00-00-00-03 Net3 Of course this file will have to be heavily customized for each site. TYPES.XNS This file contains the mapping between the XNS (or IPX) protocol types and their names. This file is used when you are displaying XNS/Novell screens else it can be safely deleted. The key token is the type number in the format XX where each X is an hexadecimal digit. The file TYPES.XNS contains: 00 Unknown 01 RIP (Routing Information Protocol) 02 Echo 03 Error 04 PEP (Packet Exchange, datagram) 05 SPP/SPX (Sequence Packet Protocol) 11 Netware Core Protocol This file should be correct for most networks. WKS.XNS This file contains the mapping between the XNS (or IPX) socket numbers and their names. This file is used when you are displaying XNS/Novell screens else it can be safely deleted. The key token is the socket number in the format XX-XX-XX- XX where each X is an hexadecimal digit. The file WKS.XNS contains: 0001 RIP (Routing Information) 0002 Echo 0003 Error Handler 0451 Novell File Service 0452 Novell Service Advertising 0453 Novell Routing Information 0455 Novell NetBIOS 0456 Novell diagnostic 0457 Novell Copy Protection This file should be correct for most sites. NLIDS.OSI This file contains the mapping between the first byte of the network PDU for the OSI stack. Currently, the file contains only: 00 ISO 8473: inactive network layer 81 ISO 8473: ES-ES This should be correct for most sites. SELECTOR.OSI This file contains the mapping between the NSAP selector (last byte of a NSAP) and its name. The key token format is two hexadecimal digits. Here follow a few lines from the file: 00 Network Layer Identifier 06 TCP & UDP with Bigger Addresses (TUBA): TCP 11 TCP & UDP with Bigger Addresses (TUBA): UDP 1E CLNP short term ping request 1F CLNP short term ping reply 20 DECnet/OSI: NSP transport 21 DECnet/OSI: OSI transport This file may be customized for your network but should be correct. NSAPS.OSI This file contains the mapping between a NSAP and its name. The format of the key token is HH-HH....-HH where HH is a hexadecimal digit. There can be up to 20 bytes in the NSAP. The file may contain NSAP of different length. Here follow a possible line for the NSAPS.OSI file: 39-52-8F-11-00-00-09-10-00-00-00-00-40-BB-BB-AA-AA-00-10-00 tuba10 This file should be customized for your site, the shipped file is just an example. AFI.OSI This file contains the mapping between the Authority and Format Identifier (first byte of a NSAP) and its name. The key token format is HH where h is an hexadecimal digit. Here follows some lines from the shipped AFI.OSI: 36 X.121: decimal coded: non-zero first IDI digit 37 X.121: binary coded: non-zero first IDI digit 38 DCC (Data Country Code): decimal coded 39 DCC (Data Country Code): binary coded The file should be correct as shipped. ICD.OSI This file contains the mapping between an ISO IDI with the format Internal Code Designator and the name of the organization. The key token format is HH-HH. Here follow a few line from the shipped ICD.OSI: 0057 Saint Gobian 0058 Siemens Corporate Network 0059 DANZNET 0060 Data Universal Numbering System The file should be correct as shipped. DCC.OSI This file contains the mapping between an ISO IDI with the format Data Country Code and the name of the country. The key token format is HH-HH. Here follow a few lines from the shipped file: 052 BARBADOS 112 BELARUS 056 BELGIUM 084 BELIZE The file should be correct4 as shipped. * * * * * * 4. Set-up of datalink drivers. ETHLOAD as already said is currently running as it is on the top of four different datalink drivers. ETHLOAD automatically configures itself to use the first driver found. It tries in the following order: - Novell ODI; - Microsoft 3Com NDIS version 2.0.1 or higher5; - Digital Equipment DLL; - PC/TCP packet driver; - ASCII file driver. If you use another driver and you have a specification of its API (or even some C routines in the public domain), please email me because I would like that ETHLOAD runs on nearly all datalink drivers... ;-) Sun PC-NFS drivers are NOT supported by ETHLOAD, mainly because the specification is not freely available and also because Sun seems to prefer to use NDIS now. If this order does not work for you, you will have to use the -d option in the command line for starting ETHLOAD (see section 5). Some of these datalink drivers allow for simultaneous execution of ETHLOAD and of you usual protocol stack: NDIS and ODI. All other drivers prevent the execution of your usual protocol stack, it means that you will abort all current connections to any servers. Some of these datalink drivers do not require a PC reboot after running them: DLL, NDIS version 2.0 or higher, packet driver and ODI. Finally, only one kind of drivers namely ODI allows for the identification of faulty frame by their source or destination addresses. In conclusion, if your Ethernet hardware has a ODI driver with promiscuous mode support, it is better to use ODI. ETHLOAD despite its name can probably work on all IEEE LAN (with 48 bits addresses and IEEE 802.2 LLC sub-layer). Starlan has been analyzed through ETHLOAD. The single point to keep in mind is that the MAC screen (see further) is computed for a bandwidth of 10 Mbps (or you may elect to use the -b option to specify the LAN bandwidth). Another important point is that most Token Ring adapters do not support promiscuous mode (notably IBM adapters). So, when starting ETHLOAD a warning message will be displayed and only broadcast/multicast packets will be analyzed showing a very lightly loaded token ring! The only way to escape this problem is to get a promiscuous mode adapter and driver (IBM has a trace adapter, Olicom supports promiscuous mode). The ODI driver for Madge adapters is supported by ETHLOAD. A final remark, packet driver does not differentiate between the various kind of errors in its statistics. So, you should use any other driver if possible. 4.1. Novell ODI. The first thing to note is that only very few ODI drivers supports the promiscuous mode which is needed for ETHLOAD. Novell has a list of those drivers since the promiscuous mode is also needed by Novell LANanalyzer product. You should also check that your NET.CFG has enough buffers and mempool allocation (see also the annex about common pitfalls). To use ETHLOAD, you just have to load the ODI driver (preceded as usual by loading LSL.COM) and having a correct NET.CFG. If you can run any other ODI application (Novell LAN Workplace for DOS, Siemens Nixdorf LAN 1, ...), you should be able to run ETHLOAD as it is. Nevertheless, it seems that IPXODI and NETX cannot be loaded before ETHLOAD. The use of ETHLOAD is not disruptive to your other network application which will continue to run at very bad efficiency... ETHLOAD does not support IEEE 802.2 type 2 frames, so if your NET.CFG contains several frame types, you may have to use the -do2 option to select the second frame type, or the -do3, ... To start ETHLOAD, just issue the ETHLOAD command to the MS- DOS prompt. 4.2. Microsoft 3Com NDIS v 1.0.1. Before running ETHLOAD for the first time, you must modify your PROTOCOL.INI (usually located as C:\LANMAN\PROTOCOL.INI see your C:\CONFIG.SYS file and the DEVICE=..PROTMAN... /I:). You must add the following lines in your PROTOCOL.INI (anywhere in the file but after a section): [ETHLOAD] drivername = ETHLOAD$ bindings = MYMAC where MYMAC is the name of the MAC module you want to use. These modifications do not modify the usual behaviour of your PC, so you may leave these lines in your PROTOCOL.INI file even if you don't use ETHLOAD. After you have made these changes, you must reboot your PC. After this reboot, when you want to use ETHLOAD you must issue the ETHLOAD command to the MS-DOS prompt. By the way, the Protocol Manager directory (containing NETBIND.EXE, ...) should be in the PATH of MS-DOS. Remark 1: in PROTOCOL.INI the case of the left part of '=' does not matter, but uppercase characters must be used on the right part as indicated in the examples above. Remark 2: as you are using a version of Protocol Manager older than version 2.0.1 6, ETHLOAD will display some warnings and you have to pay special attention to the following points: don't run NETBIND.EXE before ETHLOAD (so look out in your AUTOEXEC.BAT for an automatic run of NETBIND.EXE)7 reboot your PC after running ETHLOAD since Protocol Manager cannot be reset in a correct state some statistics are missing. 4.3. Microsoft 3Com NDIS v2.0.1 or higher. Before running ETHLOAD for the first time, you must modify your PROTOCOL.INI (usually located as C:\LANMAN\PROTOCOL.INI see your C:\CONFIG.SYS file and the DEVICE=..PROTMAN... /I:). You must add the following lines in your PROTOCOL.INI (anywhere, after a section): [ETHLOAD] drivername = ETHLOAD$ bindings = MYMAC where MYMAC is the name of the MAC module you want to use. The MAC module name is what is between [] in PROTOCOL.INI which is followed by a drivername= line with the name of the device driver loaded in CONFIG.SYS (the name of a MAC module often ends with _NIF). You also have to modify the [PROTOCOL MANAGER] entry to add a dynamic line. But first try without this modification before modifying further your PROTOCOL.INI file. [PROTOCOL MANAGER] devicename = PROTMAN$ dynamic = YES bindstatus = YES priority = ETHLOAD These modifications do not modify the usual behaviour of your PC, so you may leave these lines in your PROTOCOL.INI file even if you don't use ETHLOAD8. After you have made these changes, you must reboot your PC. After this reboot, when you want to use ETHLOAD you must issue the ETHLOAD command to the MS-DOS prompt. By the way, the Protocol Manager directory (containing NETBIND, ...) should be in the PATH of MS-DOS. Remark 1: in PROTOCOL.INI the case of the left part of '=' does not matter, but uppercase characters must be used on the right part as indicated in the examples above. Remark 2: the use of ETHLOAD should not be disruptive for your favourite protocol stacks, so you should not have to reboot your PC. Remark 3: you may have to run READPRO before loading ETHLOAD if the image copy of PROTOCOL.INI is corrupted (i.e. ETHLOAD displays an error message like 'PROTOCOL.INI corrupted'). 4.4. Digital Equipment DLL. If DLL.EXE (or DLLDEPCA.EXE) is already loaded, you have nothing to do before starting ETHLOAD by the ETHLOAD command. Note: in order to go promiscuous, DLL requires that ETHLOAD shutdown ALL connections: LAT, DECnet, ... After using ETHLOAD you probably will have to reset the whole DECnet protocol stack (so reboot your PC). Note 2: it seems that at least for version 4.1 of DLL, it is impossible to run ETHLOAD in a DOS box within MS-Windows 3.1. 4.5. Packet driver. Packet drivers exist for nearly all known Ethernet adapters. There even exists 'packet driver shim' that transform some other datalink drivers into a packet driver. You have to use a software interrupt between 0x60 and 0x7F in order to let ETHLOAD run. ETHLOAD will use the first packet driver found while checking from interrupt 0x60 up to 0x7F. The use of ETHLOAD is not disruptive to your other network application which will continue to run at very bad efficiency... To start ETHLOAD, just issue the ETHLOAD command to the MS- DOS prompt. Remark: nearly all packet drivers can be found in numerous anonymous FTP server including the Simtel repository. For BITNET users, they can also be fetched through TRICKLE server. The Crynwr Packet Driver Collection is copyrighted using the GNU General Public License. Remark 2: for the 3Com 3C509 you should use version 11.* of the Crynwr packet driver. Remark 3: for some packet drivers, you may have to run PKTRCV with the mode 3 before running ETHLOAD, you may even have to unload all programs using the packet driver... 4.6. Loopback driver. This driver allows to test ETHLOAD mainly for debugging purposes. It can be used also to check the start-up of ETHLOAD, ... To use this driver, you must use options on the command line. 4.7. File driver. This driver reads frames from an ASCII file. By default the file ETHLOAD.IN is used but other files can be specified by using parameters on the command line. Of course, the input file format is compatible with the output file format of ETHLOAD used in recorder mode and with ETHDUMP9. The format of the file is simple: - empty lines or lines beginning with a ';' are ignored; - else line consists of 2 decimal tokens followed by the frame. The decimal tokens are: 1) a time-stamp when the frame was received expressed in MS-DOS ticks10 from the start of the recording; 2) the length of the received frame including the FCS, this length may be different from the length of the frame in the file. The frame itself starts with the first byte of the destination address (excluding the preamble) and goes through all fields: source address, Ethernet type or IEEE 802.3 length, data bytes, ... For Token Ring, FA and AC are also copied. Each byte is represented by two contiguous hexadecimal digits. Bytes can be separated by spaces, tabs and '-'. An example of input file is: 0000000087 0060 000E20009127 0000E80109FC 0020 FF-FF-00-20- 01-00-00-00-00-03-00-0E-20-00-91-27-40-05-00-B0-BB-1E-00-00- 00-00-00-01 ; 0000000125 0060 00AA001E1FE4 000080CAC901 0020 FF-FF-00-20- 01-00-00-00-00-03-00-AA-00-1E-1F-E4-40-05-00-00-02-01-00-00- 00-00-00-01 ; 0000000141 0110 FFFFFFFFFFFF 00AA001E1FE4 0060 FF-FF-00-60- 00-04-00-00-00-00-FF-FF-FF-FF-FF-FF-04-52-00-00-00-03-00-AA- 00-1E-1F-E4 * * * * * * 5. Command line options. In nearly all configurations, ETHLOAD can be started without specifying command line options. In some case, you may need to use these command lines options: special datalink drivers configuration, few memory left, ... Command line option can be specified in either the UNIX shell format: ETHLOAD -do1 -i65 -t or in the MS-DOS format: ETHLOAD /D:O1 /I:65 /T Case does not matter. 5.1. Datalink driver: -d ETHLOAD can be forced to use a special datalink driver instead of trying to find automatically the best one. To use Novell ODI, specify: -do or /D:O To use Novell ODI with the MLID board 3, specify: -do3 or /D:O3 To use Microsoft/3Com NDIS, specify: -dn or /D:N (you may specify the MAC module to which ETHLOAD must bind) To use Digital Equipment DLL, specify: -dd or /D:D To use Packet driver at first interrupt found between 0x60 and 0x80, specify: -dp or /D:P To use Packet driver at interrupt 0xHH, specify: -dphh or /D:PHH To use Loopback driver, specify: -dl or /D:L To use the file driver (default filename is ETHLOAD.IN), specify: -dffilename or /D:Ffilename 5.2. Protocols to be analyzed: -p ETHLOAD by default analyzes all protocols. This requires both more memory and more processing than analyzing a single protocol. By using the -p option, you can restrict the protocols to be analyzed by ETHLOAD. To analyze DECnet, specify d after the -p. To analyze the TCP/IP protocol suite, specify i after the - p. To analyze the OSI protocol suite, specify o after the -p. To analyze the TUBA protocol suite, specify t after the -p. To analyze the XNS/NetWare protocol suite, specify n after the -p. To analyze the IEEE 802.2 LLC sublayer, specify l after the -p. To analyze the Netbeui protocol suite, specify b after the -p. By specifying a digit after the -p, you specify the highest layer to be analyzed. E.g. -p3 will analyze frames up to layer 3 (e.g. no DECnet NSP, no TCP or UDP, ...). This option may be useful if you need more memory (as ETHLOAD will allocate fewer tables for its operation) or if you need more CPU power or time accuracy. 5.3. Real time frame trace: -t ETHLOAD can display the very first bytes of all received frames in real time on the bottom line of the display. This behaviour is set by using the -t option on the command line. Remark: in version 1.01, ETHLOAD always displayed the first bytes of the packet. 5.4. Slow/secure mode: -s ETHLOAD works by default in fast mode with packet driver and ODI. The unsecured (the default) is defined as enabling IRQ while a frame is analyzed. The disadvantage is that the datalink driver may be overloaded, but, the big advantage is that a lot of frames are neither dropped nor ignored. If you want stability instead of accuracy, you may elect to use the -s option. By using this option, ETHLOAD can see much more packets but may sometimes runs into problems... So, this option should be set ONLY if you encounter no problems with ETHLOAD (PC that hangs, inconsistent display, ...) and you have a high percentage of lost packets. The meaning of this option is different for the file driver, if used with the file driver, ETHLOAD will ignore the timestamps in the file and receives all frames as fast as it can process them (so no frame will be dropped and this will go fast). 5.5. Measure interval: -i ETHLOAD measures the load of the LAN at regular interval, the screen is also automatically refreshed at the same rate. By default, this interval is 5 seconds. You may select another measure/screen refresh interval by using the -i option followed by the number of seconds. 5.6. Quiet Mode: -q ETHLOAD normally wait for a key to be pressed before actually analyzing frames so you can read the startup information. If you want to automatically start the analysis you may specify the -q option in the command line. This option could be useful in batch files, ... The -q option will also suppress the line displayed when loading dictionaries. 5.7. Recorder mode: -r ETHLOAD can also record all received frames into an ASCII file instead of analyzing them. Of course, this file is compatible with the file format used by the file driver (-df). By default, the output file is ETHLOAD.OUT but any other valid name can be specified directly after the -r option. Please note that only the first part of the frames are recorded. 5.8. LAN bandwidth: -b ETHLOAD needs the LAN bandwidth to compute and display the load. Generally, ETHLOAD can ask the datalink driver for the LAN bandwidth. But, for packet drivers and DLL drivers this is impossible and ETHLOAD defaults to 10 Mbps (i.e. Ethernet). The -b option allows to specify the LAN bandwidth expressed in bit/s. E.g. -b1000000 or -b1.0E+6 will set the bandwidth for Starlan 1 Mbps LAN. 5.9. Promiscuous override: -o. ETHLOAD requires promiscuous mode to correctly analyze all frames of the LAN. Not all LAN adapters and not all datalink drivers support this mode. By default, if the promiscuous mode is not supported, ETHLOAD does not start and exits immediately. Anyway, you might want to start ETHLOAD and analyze the very small fraction of the LAN traffic which is broadcast or multicast. If you want this, you have to use the -o option when starting ETHLOAD. Note: if your LAN adapter and datalink driver support promiscuous mode, you should not use this option. 5.10. Filter: -f. By default, ETHLOAD analyzes (or records) all received frames. If you want to analyze (or record) only specific frames, you must use the filter11 option to specify: - the IEEE 802.2 LLC SAP to analyze: -fhh where hh are two hexadecimal digits specifying the SAP value for both the DSAP and SSAP (see file SAPS for more details); - the Ethernet type or DoD SNAP type to analyze: -fhhhh where hhhh are four hexadecimal digits specifying a type (see file TYPES for more details); - the MAC source or destination addresses to analyze: - fhh-hh-hh-hh-hh-hh where hh are hexadecimal digits of the MAC address. 5.11. Buffers in memory: -m. For some datalink drivers (ODI, NDIS, packet driver), the datalink driver can benefit of having several buffers to put frames in at hardware interrupt time and allowing ETHLOAD to analyse them after. With the current version of ETHLOAD, the default is to use a single buffer. The maximum number of buffers to be allocated is 5. Please note, that the use of several buffers may lead to a problem: ETHLOAD in some case may analyse frames out of order. So, events histories can be disordered and timestamps can be slightly false. After quitting ETHLOAD, the number of buffer misses is displayed, this is the number of times that a frame had not been analysed because no buffer was available. The allocated queue size is also displayed together with its maximum size. As a rule of the thumb, you should increase the number of buffer until having no buffer miss. Remark: with ODI if a protocol stack is used while ETHLOAD is running, these buffers are not used and there can be only one frame received at a time. * * * * * * 6. The different screens of ETHLOAD 6.1. Introduction 6.1.1. Screen layout The different screens displayed by ETHLOAD have all the same design: - the top line is just a copyright notice + version identification + percentage of dropped frames due to internal buffer shortage (either in ETHLOAD or in data link driver or even in Ethernet controller); - in the top right corner a character is flipping from '+' to '-' as frames are received; - the character on the left of the '+/-' flip-flop is displayed as a 'P' when ETHLOAD is processing a frame else it is a space; - the second line is a summary of all commands available for this screen; - if the real time trace option was specified in the command line, the bottom line displays the first bytes of the last received frame12: * six bytes of MAC destination address ; * six bytes of MAC source address ; * two byte(s) for either DIX packet type or for IEEE 802.3 frame length; * a few bytes of data. - on a Token Ring, the ring status is displayed in RED on the top line when the ring is beaconing or being purged. All screens are automatically refreshed every measure interval (5 seconds by default) to reflect the current statistics or table contents. You may also press the SPACE key to refresh the screen. 6.1.2. Commands. You can enter a single character command. The case of the character is ignored. Two commands are always recognized: - 'Z' or '0': for resetting all statistics of ETHLOAD to zero and clearing all tables. Note that all statistics are cleared and not only the ones currently displayed; - 'X' or : for leaving the current screen and getting back to the previous menu. On some screens a large table is displayed: ARP table, ... As these tables are larger than the 23 lines of display available, you have to use the PgUp (or F8) and PgDn (or F7) key to scroll between the different pages; the keys Home and End will display the first and the last pages. The NumLock key is used to switch between numeric address format (when NumLock is lit) and symbolic name (when NumLock is not lit). 6.1.3. Data display. Three common display are often used: - top of sorted table display; - raw table display; - history of events display. The 'top display' consists of a title beginning with 'Top of...' and displays the contents of an internal table sorted from the highest frequency down to the lowest frequency. An example of such a display is the display of MAC Transmitter. The percentage displayed before each line is relative to: - the number of frames relevant for this screen; - the number of frames analyzed by ETHLOAD ; - the estimated13 bandwidth used relative to the raw LAN bandwidth (10 Mbps for Ethernet). For instance, if during 10 seconds on a 10 Mbps Ethernet there were 1000 DECnet packets and 1000 IP packets and within these 1000 IP packets there were 100 UDP packets, the IP protocol screen will display for the UDP protocol (assuming a mean packet length of 1000 bits): - 10 % (i.e. 10% of IP packets are UDP datagrams); - 5% (i.e. 5% of frames are UDP datagrams); - 0,1% (i.e. 0,1%14 of the Ethernet bandwidth is used by UDP datagrams). A reference is also displayed by indicating how many frames represents 100%. The user can switch from one display to another by pressing the '%' key. As all counters are 32 bits, they are limited to about 4E+9 frames. Once they reach this upper bound they are stopped and the whole table is kept unchanged. The time of this table overflow is then displayed in red. As the size of the table is limited in size, when the table is filled, this is displayed by a yellow message on the top of the screen. Each line of a 'top display' consists of: - percentage (e.g. the percentage of Ethernet frames transmitted by the displayed Ethernet node in respect to the total number of Ethernet frames); - display of the node (e.g. Ethernet MAC address with perhaps the corresponding host name of DECnet address); - a bar graph for visual representation (resolution 2.5%). The 'raw table display' is just the display of a non sorted internal table. An example is the display of the ARP table. Each line of a 'raw table display' consists of two values (e.g. the Ethernet MAC address associated with an IP address). The 'event history' is used to display a chronological log of events (e.g. the list of ICMP requests). Each line of an 'event history' consists of: - a time stamp in the form hh:mm:ss.hh; - a description of the event. 6.1.4. Accuracy A final remark must be done on the accuracy of the figures: - some packets are lost15, so the load is always higher than indicated if you are using a slow Ethernet controller or a non efficient driver; - ETHLOAD relies on the MS-DOS timer which has a resolution of about 50 msec, moreover if the network load is high and you have a powerless CPU some timer ticks can be missed; - if you are running with IRQ disabled (i.e. without the -f option), some datalink drivers can miss frames without further notification, so the drop percentage is always higher than the one displayed by ETHLOAD. To summarize, ETHLOAD give reliable figure on a medium loaded Ethernet (10% ?) and on a correct CPU 80386dx 25 MHz. In all other case, ETHLOAD can only indicate that your Ethernet is probably heavily loaded and you will have to buy an expensive LAN analyzer! Moreover, all tables have a maximum size, so it may occurs that on a medium or large LAN some tables are filled. This is indicated on the screen. E.g. the MAC flow table will probably be more or less useless on a LAN with more than 50 stations. Version 2.0 of ETHLOAD will: - drop less frames due to an ordered multi-buffered scheme (only for NDIS and ODI); - use a finer timer. 6.2. MAC Level screen The MAC level screen can be divided into two parts: - three statistics summaries: last five16 seconds, busiest five seconds, cumulative; - VU-meter of the peak and current load. 6.2.1. MAC Summary Important figures are displayed for three important samples: - the last five seconds; - the busiest five seconds, i.e. the five seconds period when the Ethernet load was the highest ; - the cumulative since the start of ETHLOAD or the last reset. For all these samples, the following figures are displayed: - total number of Ethernet frames: the mean interframe gap is also displayed if available; - total number of bytes of data: i.e. MAC header + MAC data (the FCS and preamble is not taken into account) and the load17 of Ethernet in % of the 10 Mbps bandwidth of Ethernet; - the number of frames containing errors + rate of error per second. As the internal counters are 32 bits, counters are bounded to about 4E+9 frames/bytes. Once the counters reach this count; they are stopped and displayed as ******. If the datalink driver supports error differentiation (namely all but packet driver), the kind of error is also indicated: - CRC error (cabling problem ?); - too long packet (babbling transceiver or controller); - too short packet (garbage of collision). If you are using the ODI datalink driver, by using the 'E' command you have access to the MAC source address of faulty Ethernet frames (by the way don't be amazed by unknown MAC addresses because even the source address can be faulty in faulty frames... specially for runt frames). 6.2.2. MAC VU-meter The VU-meter is at the bottom of the screen and is graduated in Mbps. The '>' is the peak marker, i.e. the highest load on five seconds since ETHLOAD has been started or reset. The bar is the last five seconds marker. The color of the peak marker and of the bar is changing in respect to the load: - green under 1 Mbps; - yellow under 5 Mbps; - red over 5 Mbps. 6.2.3. MAC Commands The MAC level screen has two main commands: - 'Q' to quit ETHLOAD and get back to MS-DOS (a confirmation is requested); - 'P' to go to the Protocol screen (to choose between IP, XNS, OSI, DECnet, Netbeui). 6.3. TCP/IP screens In very short, you can display: - ARP: table of the mapping between IP addresses and MAC addresses (can be used to detect two hosts sharing the same IP address), the last ARP packet, the ARP senders, the requested IP addresses; - the IP fragmenters and the size of fragments, i.e. the IP host that transmit fragmented datagram (should be empty !); - important information about IP hosts: largest MTU (Maximum Transmit Unit) seen, missing IP datagrams (should be zero if host is on the same LAN and has only one interface), repeated IP datagrams (could indicate faulty transceiver or SQE test enabled were it shouldn't), minimum and maximum TTL (Time To Live) seen from this host; - ICMP: the last ICMP datagrams, the senders of ICMP datagrams; - mostly used protocols: UDP, TCP, ... - TCP: events (connection request, end of connection), connections, most used services (ports), important events for SMTP and POP, monitoring Telnet connections, ... - UDP: associations, most used services (ports), important events for BOOTP and TFTP,... 6.4. DECnet screens In very short, you can display: - Connect Initiate (with nearly all fields including objects,...) history; - Disconnect Initiate history; - Returned frames by a router because the end-node is no more reachable; - Top nodes (classified by transmitters and receivers): not to be confused with the MAC layer transmitters/receivers. On the MAC screens, DECnet routers usually represent a very high percentage but on the DECnet network layer screen, DECnet routers usually represent nothing and you can see remote DECnet address (i.e. some DECnet nodes on remote LAN). 6.5. OSI screens In very short, you can display: - the Active network layer hosts (not tested, if it runs please email me ;-) - the Inactive network layer hosts; - the most important Transport layer events: connection, disconnection, error. NSAP are displayed in hexadecimal and TSAP are displayed in hexadecimal, ASCII and EBCDIC. Important parameters are decoded and displayed. 6.6. Summary of all screens. This chapter explains in very few words all important screens of ETHLOAD. In version 2.0, you will receive more information once you are registrated. Each screen is described under the name of the access path, i.e., the letters to be typed in from the first screen to reach it. (E)rror: MAC level errors Display the top nodes that transmit bad frames, error type is not indicated only the source address of the frame. Of course, the source address is often corrupted and displayed as FF's or AA's or whatever. Displayed only with an ODI driver. (F)low: MAC level traffic matrix It displays the top traffic flows: from source to destination. (M)AC: MAC level statistics This screen was already described previously. (L)ength: MAC level frame length. This screen displays the length distribution of all received frames (including addresses and FCS but not the preamble). Check for too long frames or too short frames! (R)eceiver: MAC receivers. Display the top destination addresses (including multicast addresses flagged by a M after the address). (T)xr: MAC transmitters. Display the top source addresses. (P)rotocol (T)ype/SAP: LLC SAP and Ethernet types. Display the top used IEEE 802.2 LLC SAP, Ethernet 2.0 types, SNAP encapsulated frames and Novell raw Ethernet. Caution: Ethload and no other protocol analyzers can distinguish between Novell raw Ethernet and SAP FF (and even in some case SAP FE). (P)rotocol (I)P (A)RP (C)ache: mapping IP address to MAC address Displays the mapping between IP address and MAC address. The display looks like: IP address, MAC address. Some routers (namely cisco) use what is called proxy-arp routing: they hide non local IP addresses behind their own MAC address. This scheme should be used only with very dumb IP machines (that don't allow subnetting, or...) and is indicated by a comment 'proxy router?'. This should not be considered as an error but rather as a trick. (P)rotocol (I)P (A)RP (H)istory: last ARP events Display the very last ARP events by showing the target protocol (IP) and hardware (MAC) address and the source protocol and hardware addresses. To indicate whether this is a request or a reply the event is flagged with either a '?' (request) or '!' (reply). The display is only correct if the protocol is IP and the hardware is IEEE 48 bits address. (P)rotocol (I)P (A)RP (I)nvertedCache: mapping MAC address -> IP address Display the IP addresses owned by MAC addresses. The display looks like: MAC address, IP address. If the same IP address is available through more than one MAC address this is flagged as an error and displayed in yellow. This is a severe configuration error that should be corrected as soon as possible. The vendor name of the Ethernet controller is indicated so you could more easily find the faulty machines. (P)rotocol (I)P (A)RP (M)iscellaneous: miscellaneous informations. Display the last ARP packet received together with the rate of ARP requests and replies per second. (P)rotocol (I)P (A)RP (S)enders: top senders. Display the top IP address which send ARP requests. In some case, this display may indicate a host which expire or reset its ARP cache too often. (P)rotocol (I)P (A)RP (T)argets: top targets. Display the top requested targets. I.e. the IP addresses which other hosts try to map to MAC address. If a target cannot be found and ETHLOAD hasn't seen any reply for this IP address, ETHLOAD will display in yellow the comments 'unresolved'. This may either indicate: - a host which is temporary down (usually a X-term contacted by a X-Windows client and the X-term is switched off); - a badly configured IP host which tries to contact a non existent IP address... (bad subnetting, ...). * * * * * * A. Annexes A.1. Data Link layer references Digital Equipment, 'PCSA Data Link Programer's Reference Manual', April 1989, EK-PCDLL-PR-001 FTP Software, 'PC/TCP Packet Driver Specification', Revision 1.09, September 1989 [from anonymous FTP server vax.ftp.com] 3Com/Microsoft, 'LAN Manager Network Driver Interface Specification', Version 2.0.1, October 1990 [from anonymous FTP servers ftp.microsoft.com] Novell, 'Open Data-Link Interface - Developer's Guide for DOS Workstation Protocol Stacks', Version 1.10, March 1992 [from anonymous FTP server sjf-lwp.novell.com] A.2. Tested data links Here follows a very short and not restrictive list of tested datalinks: - Protocol Manager 2.01 + Cogent LP486E NDIS driver; - SMC 8003, packet driver 8003PKDR V2.03; - SMC 8003, ODI promiscuous mode SMC8000 V3.03 (920925) and LSL 1.0 (900530); - EXOS205 V 10.1.2, packet driver; - NE2000 Crynwr packet driver; - XIRCOM Ethernet adapter II with DLL 3.0.5; - DEPCA, DE202 and DE100 with version 4.1 of DLLDEPCA; - Crynwr packet driver for 3Com 503 version 4.1; - Madge Smart AT Ringnode with MADGEODI 1.28 (921015) and LSL 2.01; - Madge MADGEFMP ODI driver; If you can run ETHLOAD on other drivers or even on IEEE 802.5 or 802.6 LAN, please email me in order to increase the size of tested datalink drivers. It seems impossible to run ETHLOAD with the Crynwr packet driver for NI5210 because promiscuous seems not to be supported. It also seems that 3Com 3C509 adapter with 2 KB of memory cannot run ETHLOAD. A.3. Adding DECnet node names to display. A utility program provided with ETHLOAD, MKNODE, allows to display DECnet node names after DECnet address. MKNODE simply converts DECnet addresses in the form of area.node (e.g. 1.1) into Ethernet address in the form of AA-00-04-00-xx-yy (e.g. AA-00-04-00-01-04). MKNODE is a MS-DOS filter program, i.e. it takes input from the stdin and its output is stdout. The usual way of using MKNODE is: 1) get the list of DECnet node addresses and names (e.g. by running $ NCP SHOW KNOWN NODES TO nodes on a VAX/VMS) in a MS-DOS called NODES. The format of this file is: area.node name 2) on MS-DOS, issue the command: MKNODE < NODES >> ETHERS 3) that's done ! Here is an example for the file NODES: ; ; List of DECnet nodes ; ; 1.1 RM 1.76 MDCPC 2.3 DSRV03 2.4 DSRV04 And here is the added lines in ETHERS: # # The next Ethernet addresses are built with MKNODE.EXE # # (c) vyncke@csl.sni.be # Can be copied and used freely # # Input is stdin and consists of line in the format # area.node nodename # # Output is stdout and should be appended to ETHERS # # Run of Sun Jul 11 10:18:32 1993 # # # 1.1 RM AA-00-04-00-01-04 RM # 1.76 MDCPC AA-00-04-00-4C-04 MDCPC # 2.3 DSRV03 AA-00-04-00-03-08 DSRV03 # 2.4 DSRV04 AA-00-04-00-04-08 DSRV04 Remark: I'm not really satisfied with this two-steps procedure. If you have written any VMS/DCL procedure that has the same result and you wish to put this procedure into the public domain, I would be pleased to include it in the distribution kit of ETHLOAD. A.4. Common pitfalls. Here follows a list of common pitfalls. From: Drew Letcher . Ethload always fails if in your CONFIG.SYS there is a STACKS=0,0 line. Ethload is memory hungry (especially during interrupt processing), so you should have at least STACKS=9,512 From: Klaus Troja . When running Ethload with an ODI driver, the file NET.CFG should contains: Link Support Buffer 4 1600 MemPool 4096 Moreover, it seems that Novell LAN Workplace can run while Ethload is running but IPXODI and NETX cannot be loaded when Ethload is running. So, IPXODI and NETX must be unloaded before starting Ethload. From: Wey Jing Ho