Net.ether509 QNX 4.23 Release Notes ------------ ---------------------- The following are helpful hints to help you get started using your 3com 509 EtherLink III ethernet cards with QNX 4.23. Before you read this, make sure you have read the following: Installation And Administration Guide Chapter 7 Utilities Reference: Net.ether509 (very important) Utilities Reference: netmap (very helpful utility) Utilities Reference: netinfo (very helpful utility) Getting an ethernet network running consists of two steps: (1) install & configure the hardware (2) install & configure the software (1) Install & Configure The Hardware ------------------------------------ Net.ether509 is the driver which knows how to talk to the 3com Etherlink III 509-series of ethernet cards. Long-time QNX users will be aware that this card is not my favorite. It has problems. If you're looking for a 16-bit ISA ethernet card, look at an ne2000 clone first. They are a lot less expensive, too. However, free will is often not involved in hardware choices. Dilbert managers abound. As of 15 july 96, the following 509 cards had been tested: 3C509B-TPO 16 bit ISA 10BASET no rom socket I have not tested the driver with the original 509 [no "B"] with the smaller fifos, but it should work, except that the rx fifo overrun problem will almost certainly be worse than with the B model. There is no support for either PS/2 or EISA version of the 509. Only ISA is supported. As of 15 july 96, I have not coded up support for multiple 509 cards installed in one machine. I need to take more LSD or something first. If you experience any difficulty getting Net.ether509 to work, specify the "-v" option to get more information on startup about the hardware configuration. Also, specifying "-v" to Net can be very helpful as well, especially for diagnosing problems with network workstations, as Net will display all network runtime errors on the screen in verbose mode. But first, you must install & configure your 509 card. There are no jumpers. You must boot dos, run 3Com's configuration program, assign the card a range of I/O ports and an IRQ, and disable plug'n'play. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Don't forget: DISABLE PLUG'N'PLAY * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * The 509 uses no shared memory, except for the boot rom. QNX does not have a boot rom for the 509. See below for boot rom tricks. The 509 uses no dma channels. Apart from choosing a free I/O port range, a free IRQ, and disabling plug'n'play, that's about it. There is an intruiging option, "optimize driver performance" which I suspect partitions the on-board ram differently for the tx and rx fifos, which you could fiddle with if you have a terrible problem with rx fifo overruns and poor performance caused by lost packets. While you're booted up in DOS, you could also run 3Com's diagnostic test programs. I personally never have, but if you're having problems with your 509, this would seem like a logical thing to do. Read the documentation that came with your 509 card. Now, connect the machines together with the ethernet media of your choice. Most people use category 5 UTP these days. So, now that you've got the hardware installed, let's move onto the software. (2) Install & Configure The Software ------------------------------------ How you configure your software depends on whether or not you are running a single network, or multiple networks. Be sure to read the QNX manuals if you need information on the more complex configurations involving multiple networks. To get you started, lets look at the simple case of a a single ethernet network. First, you have to decide how you're going to boot your QNX 4 machines for use with a single (ethernet) network. You have two ways of booting your QNX 4 ethernet computer in this situation: (a) Boot from hard disk or floppy disk, and start Net and Net.ether509 in the sysinit file. For example, your QNX 4 server probably boots from its hard disk. You could also boot a hard-diskless workstation from a floppy, but that's a little weird. (b) Boot across the network from a server, using one of the boot rom substitute tricks below. Let's talk about option (a). If you boot from disk, just add the following to your sysinit: nettrap start which actually does this: Net & Net.ether509 & netmap -f You should also specify an appropriate logical node number to Proc in your build file, using the "-l" option. The "-f" option to netmap tells netmap to load logical->physical node ID mappings from the default file: /etc/config/netmap. If you are going to have multiple machines booting from disk, you will need to create an /etc/config/netmap file as the manuals describe & copy it to each machine's disk. Now for option (b). Since QNX does not have a boot rom for the 509, you could use a generic bootp rom for the 509, with TCP/IP and bootpd running on your server Or, if the machine has a floppy, you can make a neat "boot rom" floppy as follows: On your server "cd /boot/build" and "cp ws.ether509 ws.ether509.5" if node 5 was the diskless workstation. Then, in ws.ether509.5, replace the macros with hard-coded values. eg: $(lnode) -> 5 $(netmap) -> "1 1 0000c0 12345" $(bnode) -> 1 assuming that your server is node 1. Be sure to fill in node 1's real ethernet address above, rather than my example value. Don't forget the quotes around the mapping! Also in the build file, add the following option to Net: -n 64 or however many nodes you wish to eventually be licensed for. Then "cd /boot" and "make b=ws.ether509.5" and then after formatting and diniting a floppy, "cp /boot/images/ws.ether509.5 /fd/.boot" assuming you have mounted the floppy on your server as "/fd". This floppy will then boot node 5 as if node 5 had a boot rom. The disadvantage to this method is that every node needs a different floppy, and upgrading to a new Proc/Slib/Net is painful. But, it works, because the usual motherboard bios floppy boot code loads the os into memory, just as if it had been loaded there by a boot rom. /etc/config/sysinit.5 will be fetched from the server, and will execute commands from the server, just like a boot rom would. The method above is quite different from a "normal" floppy disk boot where the sysinit on the floppy is executed, using commands on the floppy. Note that if you do have problems, Net.ether509 may terminate with a fatal initialization error, whose numeric code will be displayed on the screen. For a text description of all driver initialization (and runtime) errors, run netinfo with the "-a" option. Note that you should have a "netmap -f" in all of your sysinit files so that each node has its mappings loaded from the disk file into Net's memory when it boots. To display what Net's current in-memory node mapping is, use the netmap utility with no options (or just the -nX option to see another node's). The netmap utility will also display the last time you had a transmit failure on a network to a node. Netmap also has some really neat capabilities, allowing you to mask, unmask & delete node mappings. See the netmap utility doc for more information & examples. Network Diagnosis ----------------- Another handy utility is netinfo. Netinfo will display all sorts of really detailed information about what's happening to that node on the network. With no options (or just the -nX option) netinfo simply displays the contents of Net's in-memory event log. For a summary of network information, use netinfo's -l option. The 509 driver has reserved the network runtime error codes in the range 1900 -> 1999 inclusive. Performance, And Some Arcane Details ------------------------------------ For your information, send/reply tests, between a 100 Mhz pentium and a 486 computer with the 3C509 card have resulted in an application-level throughput of barely 1 million bytes per second, with one pair of client/server processes. This is somewhat slower than some other cards, but this could be due to the 509 not being in a pentium. See the Net.ether8003 release note for detailed information about QNX's ethernet protocol, and packet format. 15 July 96 Andrew C Boyd