[Image] Packet Driver Support for PCs March 1995 University of California at Berkeley MIC 2.2.20 --------------------------------------------------------------------------- Abstract: Network driver software is used to adapt network software packages to work with a particular network adapter board and to allow simultaneous use of the network adapter board by multiple programs. This document describes the Packet Driver Support and utilities as distributed by the Workstation Software Support Group. Included in this release are the Crynwr Packet Drivers and utilities, version 11. Other related drivers included are: the DIS_PKT shim to run packet driver software over an NDIS driver, the ODIPKT shim to run packet driver software over an ODI driver, the PDETHER shim to run ODI software over a packet driver, WINPKT to use packet drivers with Windows, and PKTMUX for simultaneous use of packet driver TCP/IP programs. Contents: Network Adapter Board Packet Drivers and Utilities Provided 2 Introduction to Packet Drivers 4 Network Adapter Board Interface 4 Network Protocol Multiplexing/Demultiplexing 4 Packet Driver Load Command 4 Packet Driver "Shim" over NDIS/ODI Drivers 5 Windows Enhanced Mode 6 Non-Ethernet Drivers (SLIP, etc.) 6 TCP/IP Sub-protocol Multiplexing/Demultiplexing (PKTMUX) 7 Installation Instructions 8 Basic Installation 8 Testing the Installation 9 Novell NetWare Installation 10 Memory Managers, Loading High, Adapter Shared Memory 10 Windows for Workgroups 3.11 Installation 11 Packet Driver Load Command 12 NDIS Driver Installation, PROTOCOL.INI Format/Settings 14 Other Packet Driver Installation Details 16 Standard Utility Commands 17 Other Utility Commands 20 Appendix A - Software Interrupts, Bibliography 22 Appendix B - Simultaneous TCP/IP Programs (PKTMUX) 23 Network Adapter Board Packet Drivers and Utilities Provided The following are the packet drivers provided in this collection. Many vendors not listed here provide their own packet drivers, usually free. If your adapter is not listed here, it may be compatible with a driver listed here, particularly for the Novell, the 3COM, and SMC/WD drivers. That a particular driver is provided does not imply a recommendation for that network adapter board. See \README.TXT on multiple diskette sets. Driver Version Network Adapter Board(s) 3C501 11.2 3COM Ethernet adapter board (and 3C500) 3C503 11.6.3 3COM Ethernet adapter board (and Etherlink II/16) 3C505 11.1 3COM Ethernet adapter board 3C507 11.1.3 3COM Ethernet adapter board 3C509 11.2 3COM Ethernet adapter board (Etherlink III for ISA bus) 3C523 11.1.3 3COM Ethernet adapter board AQUILA 11.1 ADI's Aquila Ethernet adapter boards AR450 11.0 Telesystems SLW ARLAN 450 Radio LAN adapter board ARCETHER 11.1 ARCNET that simulates IP/Ethernet with Novell 3.11+ ARCNET 11.0 ARCNET (Datapoint RIM?) AT&T 11.1.3 AT&T Ethernet adapter board (StarLAN1, 10 NAU, EN100, Fiber NAU) AT&T_LP 11.1.2 AT&T LanPACER/StarStation Ethernet adapter board AT1500 11.3.1 Allied-Telesis 1500T and 1500BT Ethernet adapter board AT1700 11.1 Allied-Telesis 1700T and 1700BT Ethernet adapter board CTRONDNI 11.1.3 Cabletron DNI Exxxx Ethernet adapter board DAVIDSYS 11.5.1 David Systems Ether-T Ethernet adapter board DE600 11.1 D-Link Pocket LAN Ethernet adapter for the PC parallel port DEPCA 11.3 Digital Equipment EtherWORKS Ethernet adapter (and DEC 433w) DK86960 11.4 Fujitsu's NICE demo Ethernet adapter board DK86965 11.1 Fujitsu's EtherCoupler demo Ethernet adapter board EN301 11.2 Multitech EN-301 Ethernet adapter board ES3210 11.0.3 Racal-Datacomm ES 3210 Ethernet adapter board ETHERSL 11.7 Serial Line IP (SLIP) Ethernet emulation on PC async serial port ETHIIE 11.0.3 ICL EtherTeam16 Ethernet adapter board (formerly Nikia Data IIe) EXP16 11.5 Intel EtherExpress Ethernet adapter board EXPRESS 11.4 Mitel Express Integrated Services Digital Network (ISDN) adapter HPPCLAN 11.1.3 HP EtherTwist/Starlan10/ThinLan Ethernet adapter board HPPCLANP 11.2.3 HP EtherTwist, HP27242B and HP27250A Ethernet adapter boards IBMTOKEN 11.22 IBM Token Ring Adapter ISOLAN 11.2 BICC Isolan 4110-0 Ethernet adapter board ISOLINK 11.3 BICC Isolan 4110-2/3 Ethernet adapter board KODIAK16 11.0 Kodiak Technology's Kodiak~16 10BT Ethernet adapter board KODIAK8 11.0 Kodiak Technology's Kodiak~8 10BT Ethernet adapter board KODIAKK 11.2 Kodiak Technology's Kombo Ethernet adapter board LAN595 11.0 Intel LAN 595 Ethernet adapter board LOCALTLK 11.3 Apple LocalTalk PC or TOPS Flashcard adapter board MYLEX 11.0.3 Mylex's LNE-890B Ethernet adapter board NCRET105 11.0.3 NCR ET-105 Ethernet adapter board NE1000 11.5.3 Novell Ethernet adapter board (and NE1000 compatibles) NE2 11.5 Novell Ethernet adapter board (and NE2 compatibles) NE2000 11.4.3 Novell Ethernet adapter board (and NE2000 compatibles) NE2100 11.3.1 Novell/Eagle Technologies Ethernet adapter board NI5010 11.2 Racal-Interlan Ethernet adapter board (formerly Interlan) NI5210 11.2.3 Racal-Interlan Ethernet adapter board (formerly Micom-Interlan) NI6510 11.3.1 Racal-Interlan Ethernet adapter board NI9210 11.0.3 Racal-Interlan Ethernet adapter board (formerly Micom-Interlan) NTI16 11.0 NTI 1002/DP-16 Ethernet adapter board PLIP 11.0 Parallel port to Parallel port IP. SLIP8250 11.7 Serial Line IP (SLIP) on PC async serial port SMC_WD 11.8.3 Western Digital WD-80?3*, SMC Elite, IBM Adapter/A Ethernet adapters TCENET 11.0 Thomas-Conrad's TC5045 Ethernet adapter board TIARA 11.4 Tiara LANcard/E Ethernet adapter board UBNICPC 11.1 Ungermann-Bass PC/NIC Ethernet adapter board UBNICPS2 11.1.3 Ungermann-Bass NIC-PS/2 Ethernet adapter board UBPCNIU 2.01 Ungermann-Bass PC/NIU Ethernet adapter (uses DIS_PKT with NDIS) UBNIUPS2 2.01 Ungermann-Bass NIU PS/2 Ethernet adapter (uses DIS_PKT with NDIS) VAXMATE 11.0 DEC's Vaxmate Ethernet adapter board WD8003E For Western Digital use SMC_WD ZNOTE 11.5 Zenith Data Systems' Z-Note Ethernet adapter and IBM ThinkPad 300 Driver "Shims" A driver "shim" is software that runs on top of one type of driver to provide an interface equivalent to another type. This allows application software requiring either type to run. DIS_PKT 1.11 Packet driver services using an NDIS driver IPXPKT 11.3 Packet driver IP using Novell IPX driver ODIPKT 2.0 Packet driver services using a Novell ODI driver PDETHER 1.03 ODI services using a packet driver PKTMUX 12I TCP/IP multiplexing using a packet driver Supported Packet Driver Utilities Standard Utilities Normally Installed: PKTCHK 11.1 Check if packet driver installed PKTSTAT 11.1 Display packet driver statistics PKTTEST 11.1 Test the packet driver and network adapter WINPKT 11.2 Windows enhanced mode packet driver service multiplexor Other Utilities not Normally Needed: COMBIOS.BAT Display COM port i/o addresses using DOS DEBUG. PING WATTCOM Ping utility for packet drivers PKT.BAT Execute packet driver commands in c:\network\packet. PKTADDR 11.1 Display/set the packet driver Ethernet address PKTDUMP Display data collected by PKTTRACE PKTMODE 11.2 Display/Set the packet driver receive mode PKTMULTI 11.1 Display/set the packet driver multicast address list PKTTERM 11.1 Unload the packet driver (use driver -u option instead) PKTTRACE 11.1 Trace packet driver calls for debugging Introduction to Packet Drivers Network Adapter Board Interface A packet driver is a low-level, network access program for a particular network adapter board. It provides a simple, standard program interface with generic functions to access the network but executes those functions in the specific, idiosyncratic manner necessary for that network adapter board. The packet driver hides the details of the particular network adapter board and allows higher-level network programs to use many different network adapter boards. The packet driver also allows more than one program to share the network adapter board. [Image] Network Protocol Multiplexing/Demultiplexing Network programs register with the packet driver to receive packets for a particular network protocol such as TCP/IP or IPX. Each program can send any packet type (multiplexing), however only one program may receive packets for each registered protocol type (demultiplexing). This ability is based on the Ethernet packet type field as shown in the diagram to the left. Programs using different protocols can work at the same time. In the diagram above, Clarkson CUTCP, MINUET, and FTP Software use the TCP/IP protocols and Novell NetWare uses the IPX protocols. Consequently, CUTCP, MINUET, and FTP Software cannot run at the same time but any of them can run with Novell NetWare. Note that FTP Software can run different programs at the same time because only the FTP kernel is registered with the packet driver; the separate FTP Software programs work with the kernel not directly with the packet driver. Packet Driver Load Command A packet driver is a terminate and stay resident DOS program (TSR). The driver command loads into DOS memory, sets up, and then returns control to DOS. Calls to the packet driver software interrupt number (packet_int_no) provide registration, status, and send and receive services. Details about the network adapter board will have to be specified on the packet driver load command line (see Packet Driver Load Command on page 12). The packet driver can be unloaded with the driver -u option. Packet Driver "Shim" over NDIS/ODI Drivers A Packet, NDIS, or ODI driver are low-level, network access programs for a particular network adapter board. However, programs written to use one type of driver cannot directly use another type driver. A driver "shim" is software that runs on top of one type of driver to provide an interface equivalent to another type. This generally allows application software requiring either type to run. NDIS (Microsoft Network Driver Interface Specification) and ODI (Novell Open Datalink Interface) drivers are the main network adapter board driver interface specifications in use on PCs. The DIS_PKT shim program provides a packet driver program interface for use by packet driver programs, but itself uses an NDIS driver to access the network adapter board. This allows packet driver software and NDIS driver software to share a single network adapter board. NDIS driver programs can operate at the same time as packet driver programs. NDIS drivers are DOS drivers and are loaded from CONFIG.SYS or by NET START with Windows for Workgroups 3.11. [Image] Similarly, the ODIPKT shim supports packet driver software over an ODI driver, and the PDETHER shim supports ODI over a packet driver. [Image] --------------------------------------------------------------------------- Windows Enhanced Mode Packet driver based network application programs can be run in Windows Enhanced mode on a 386/486/586 PC using the packet driver -W option, the WINPKT interface, or the PKTMUX interface. --------------------------------------------------------------------------- Note that Windows users should be using more modern networking software than packet driver network applications, such as Microsoft TCPIP-32 for Windows for Workgroups 3.11, Novell LAN Workplace, etc.. The Workstation Software Support Group supports packet drivers primarily for older DOS workstations. --------------------------------------------------------------------------- Under Windows Enhanced mode, each program runs in a separate memory image, and may be active, be in the background, or be paged out to disk. The packet driver itself is loaded before Windows and its memory image is shared with all programs. When a packet arrives for one of the registered programs, the packet driver must decide how to reach the right program. DOS has only one memory image, consequently all programs that fit in memory are always available to receive packets. WINPKT is an interface between Windows Enhanced mode programs and the DOS TSR packet driver. WINPKT makes sure that the correct program is loaded and running before delivering a received packet. This improves the performance of network programs and prevents connection time out while running in the background. See page 19 for more detail on WINPKT. The -W option on the packet driver load command simply throws away any packet for a program that is not loaded and running (see Packet Driver Load Command on page 12). WINPKT is clearly the preferred solution over -W. We recommend using WINPKT in addition to -W. Non-Ethernet Drivers Most network drivers are for Ethernet adapter boards, which is the primary connection type for the Campus Network. However, there are also serial async drivers for Serial Line IP (SLIP) and Point-to-Point Protocol (PPP), Integrated Service Digital Network (ISDN), PC-to-PC-Parallel-Port, etc. The SLIP8250 and ETHERSL packet drivers use Serial Line IP (SLIP) and operate over the PC async serial port. SLIP connections are available through the Data Communication and Network Services (DCNS) Home IP service. They may also be available through your departmental UNIX system or workstation. Some DOS programs can use SLIP directly: Clarkson CUTCP and FTP Software do support SLIP8250 directly. Other TCP/IP Ethernet .programs can use the ETHERSL driver which emulates TCP/IP within Ethernet over a SLIP connection. TCP/IP Sub-protocol Multiplexing/Demultiplexing (PKTMUX/PKTDRV) Multiple packet driver TCP/IP programs can run at the same time under DOS or in Windows Enhanced mode. The additional multiplexing and demultiplexing is provided by the PKTMUX utility. Its companion, PKTDRV, provides the multiple, pseudo packet driver interfaces. PKTMUX also provides Windows Enhanced mode support so that WINPKT does not need to be used with PKTMUX. A packet driver by itself allows programs using different protocols to share the same network interface. This allows a single TCP/IP program to run alongside Novell NetWare IPX or Windows for Workgroups NETBEUI. This ability is based on the Ethernet packet type field which allows the packet driver to direct each received packet to the program that has registered to receive that type. The packet driver, however, cannot distinguish between particular connections or sub-types within an Ethernet packet type. PKTMUX removes this limitation by demultiplexing within the IP protocols on the sub-types TCP, UDP, and ICMP, and within TCP and UDP on the connection port number. It is therefore possible to run more than one IP protocol packet driver program at the same time. In the diagram to the left, a full four channel PKTMUX allows four TCP/IP programs to run at the same time. CUTCP Telnet, MINUET, etc., and FTP Software each need their own PKTDRV pseudo packet driver. FTP Software can share its PKTDRV with Novell NetWare because they use different protocols, TCP/IP and IPX. As for a plain packet driver, FTP Software can run multiple programs through a single packet driver because its kernel provides the TCP/UDP/port demultiplexing. For more detail or different discussion, see Appendix B on page 23, or DOC/PKTMUX.TXT (in FILES.ZIP). Installation Instructions Basic Installation --------------------------------------------------------------------------- These instructions apply to standard IBM PC/XT/AT, PS/2s, and 100% compatibles with standard display, printer, and serial options, and running PC-DOS or MS-DOS 3.1/3.2/3.3/4.0/5.x/6.x. --------------------------------------------------------------------------- The provided installation procedure is designed for an initial installation, for updating to this release, or for recovering from a failed installation. The installation cleans up obsolete files from prior releases. To do the installation, you will need to know the name of the packet driver to use with your network adapter board. See the list of adapters on page 2 or check the README.TXT file on the diskette. To add packet driver support for an existing NDIS driver installation, use the keyword ndis. To add packet driver support using only an NDIS driver to be installed separately, use the keyword netbind. To add packet driver support for Windows for Workgroups 3.11, use the keyword wfw311 and see Windows for Workgroups 3.11 Installation below on page 11. Insert the packet driver diskette in drive A: and enter the DOS command --------------------------------------------------------------------------- a:\install a: c: driver_name --------------------------------------------------------------------------- where driver_name is the driver name or keyword you have chosen, a: is the diskette drive with the installation diskette, and c: is the target drive. First some information will be displayed about the installation, including the name of the driver selected and a description of the corresponding network adapter board. Then you are asked if you wish to proceeed with the installation. If so answer Y , otherwise answer N. As the installation proceeds you will be advised of each activity and notified if any problems arise. When the installation is complete, you will be advised of the packet driver load command used. For example: C:\NETWORK\PACKET\SMC_WD -W 0X60 2 0X280 0XD000 C:\NETWORK\PACKET\WINPKT 0X60 If your network adapter board hardware is set differently than displayed, you will have to edit that command in your \AUTOEXEC.BAT before the packet driver can be used. See your network adapter board installation manual for hardware instructions and details (also see Packet Driver Load Command on page 12). If you chose one of the two NDIS driver options, see NDIS Driver Installation on page 14. If you chose the wfw311 installation see Windows for Workgroups 3.11 Installation below on page 11. Testing the Installation To test the network adapter board and packet driver setup, reboot your PC and check that the packet driver reports a normal load and initialization. The packet driver will announce itself and its settings when it is started. For example, UBNICPS2 may say: --------------------------------------------------------------------------- Packet driver for the ubnicps2, version 11.1.3 Packet driver skeleton copyright 1988-93, Crynwr Software. This program is freely copyable; source must be available; NO WARRANTY. See file COPYING.TXT for details; send FAX to +1-315-268-9201 for copy. UCB WSSG 11b 12/31/94 15:48:12 32K memory found. System: {345]86 processor, Microchannel bus, Two 8259s Packet driver software interrupt is 0x60 (96) --------------------------------------------------------------------------- --------------------------------------------------------------------------- Interrupt number 0x3 (3) I/O port 0x1550 (5456) Memory address 0xD000 (53248) My Ethernet address is 00:DD:01:01:BF:82 --------------------------------------------------------------------------- If any error is detected by the packet driver it will pause for you to read the messages. Any suspicious results such as display of a setting that is different than given on the load command should cause review of the installation and network adapter board setup. An Ethernet address of FF:FF:FF:FF:FF:FF or 00:00:00:00:00:00 generally means that the packet driver could not find the adapter - check the i/o port number. On a PC/AT or AT clone, interrupt 2 may be reported as interrupt 9. The AT's second interrupt controller uses interrupt 2, so bus interrupt line 2 is mapped to interrupt 9. Change to the \NETWORK\PACKET DIRECTORY and run PKTSTAT. The packets received counts should be non-zero indicating that the driver is seeing network packets. The packet driver will only receive packets sent directly to the PC or broadcast to every host on the local Ethernet segment so there may not be many packets reported on a quiet network. Since no program is getting packets yet, all received packets will show as "dropped". See PKTSTAT on page 17 for more detail. --------------------------------------------------------------------------- C:\NETWORK\PACKET > PKTSTAT int driver pkt_in pkt_out byt_in byt_out err_in err_out pk_drop 0x60 UB NIC-PS2 321 0 23514 0 0 0 321 --------------------------------------------------------------------------- Next use the PKTTEST command (for example "PKTTEST 0x60", see page 18). The program will display a letter for any Ethernet frames received. Press the space bar a few times to send test packets. A Period should display for each packet send. A Colon or error message indicates that PKTTEST had a problem sending the test packet. --------------------------------------------------------------------------- C:\NETWORK\PACKET > PKTTEST 0X60 Sent and received packets are reported as letters: A= arp E= ieee I= ip N= novell O= other P= ping T= test *= packets lost (lowercase = Ethernet uppercase = broadcast address) .= test packet sent := send failed Press space to send packet(s). Any other key exits. AAIN.IIIA.IAA. --------------------------------------------------------------------------- --------------------------------------------------------------------------- C:\NETWORK\PACKET > PKTSTAT int driver pkt_in pkt_out byt_in byt_out err_in err_out pk_drop 0x60 UB NIC-PS2 332 3 24614 4542 0 0 321 --------------------------------------------------------------------------- If these tests indicate problems, recheck the load command, adapter board settings, be sure the adapter is plugged into the network, and that the network connection is active (i.e. actually connected to the campus network!). If you see a lot of asterisks ("*) then either your network segment is very busy or your PC and andapter are very slow. Novell NetWare Installation For Novell NetWare clients, the IPX driver must be configured to use the packet driver. You can get the packet driver IPX and NETX from Consulting in 264 Evans. A typical Novell NetWare client installation in AUTOEXEC.BAT will look like: C:\NETWORK\PACKET\SMC_WD -W 0X60 2 0X280 0XD000 C:\NETWORK\PACKET\WINPKT 0X60 C:\NETWORK\NOVELL\IPX C:\NETWORK\NOVELL\NETX If you need the packet driver to convert 802.3 packets use the -N option on the packet driver load command (page 13), or for NDIS installations with DIS_PKT use the equivalent PROTOCOL.INI option "NOVELL=YES (see PROTOCOL.INI Format and Settings below on page 15 for details). Also see other sections for Novell NetWare integration with other modes. Memory Managers, Loading High, Adapter Shared Memory Under Windows or with memory managers such as DOS EMM386, explicitly exclude both the network adapter's ROM and RAM usage. For example, \CONFIG.SYS: DEVICE=\DOS\EMM386.EXE X=CC00-CFFF X=D000-D7FF NOEMS \WINDOWS\SYSTEM.INI: [386Enh] EMMEXCLUDE=D000-D7FF EMMEXCLUDE=CC00-CFFF Note that NOEMS is used so that EMM386 does not try to emulate the old Expanded Memory Specification which would use 64k of precious DOS upper memory (UMA). Some packet drivers will not work if loaded high into DOS upper memory. For example, the AT1500, and NI6510 packet drivers. Windows for Workgroups 3.11 Installation --------------------------------------------------------------------------- Note that Windows users should be using more modern networking software than packet driver network applications, such as Microsoft TCPIP-32 for Windows for Workgroups 3.11, Novell LAN Workplace, etc.. The Workstation Software Support Group supports packet drivers primarily for older DOS workstations. --------------------------------------------------------------------------- Windows for Workgroups 3.11 loads its network drivers with a "NET START" command in the \AUTOEXEC.BAT file, and uses the \WINDOWS\SYSTEM.INI and \WINDOWS\PROTOCOL.INI files to control and configure the network. All configuration is done with the Network Setup application. This is completely different (and a lot nicer) than it's predecessors, Windows for Workgroups 3.1 and Windows 3.1. First setup the Windows for Workgroups NDIS driver using the Network Setup application in the Program Manager according to Microsoft's instructions. When the NDIS driver and Windows for Workgroups networking is working, then proceed with the packet driver support addition. To use packet driver applications with Windows for Workgroups, use the keyword "wfw311" on the installation command instead of a driver name. For example: a:\install a: c: wfw311 This will load the standard packet driver utilities and the DIS_PKT.DOS shim file for use with the Windows for Workgroups NDIS driver. Then start up Network Setup again to add DIS_PKT to Windows. Click the Drivers... button, then the Add Protocol... button. Under Add Network Protocols select "Unlisted or Updated Protocol" and click OK. When asked for the driver disk enter "c:\network\packet " and click on OK. When the "Packet Driver Support for NDIS 2.0 (WSSG 11b)" protocol line is displayed click OK. Exit each window by selecting the Close or OK buttons as appropriate until Network Setup is complete. Caution: Network Setup may take some time to complete the setup after its dialog window closes - wait for the system files updated message. Network Setup will update your SYSTEM.INI and PROTOCOL.INI in your \WINDOWS directory. DIS_PKT will be loaded by the NET START" command in \AUTOEXEC.BAT. The "WINPKT 0x60" command will be added after the NET START. Packet Driver Load Command This section discusses command details that are common to all packet driver load commands. Giving a packet driver command with no specifications on the command line will display a usage message. More usage details are given for some drivers in a DRIVER .TXT file installed in the \NETWORK\PACKET directory. A typical packet driver command description is: --------------------------------------------------------------------------- Packet driver for 3COM 3C505, version 11.1 Portions copyright 1989, Krishnan Gopalan & Gregg Stefancik. Clemson University Engineering Comp Ops. Packet driver skeleton copyright 1988-93, Crynwr Software. This program is freely copyable; source must be available; NO WARRANTY. See the file COPYING.TXT for details; send FAX to +1-315-268-9201 for a copy. UCB WSSG 11b 12/31/94 15:48:12 usage: 3C505 [options] < io_addr> defaults: 3C505 [options] 2 0X300 0XD000 example: 3C505 -W 2 0X300 0XD000 -d Delayed initialization option for diskless booting -n NetWare conversion (802.3 packets into 8137 packets) -w Windows support option (OK but use WINPKT also) -u Uninstall the specified packet driver (or scan 0x7f to 0x60) Software interrupt number 0x60 to 0x7f hex Adapter board hardware interrupt number (2-15) Adapter board hardware i/o port number (0x200 to 0xff8) Adapter board shared RAM base address (0xc000 to 0xdf00) --------------------------------------------------------------------------- The "usage:" line shows the order and meaning of each parameter in the command line. If a parameter can be recognized and is optional, it will be shown in square brackets as for "[options]" above. The network adapter board hardware parameters are optional if a default is shown for that parameter. If is shown as the default then the driver can determine its value by asking the adapter board, however if is shown then the parameter must be given. Since the parameters are known by their position in the command line, to give a later parameter you must give all of the preceding parameters. You can use "?" in place of an explicit parameter value to use the default and specify a subsequent parameter. Despite the convenience of the defaults and use of "?", in practice it is best to give all of the parameters anyway. Numeric parameters are expressed in decimal as in 29, hexadecimal as in 0x1D and octal as in 035. Examples are given for each driver command to clarify usage. It is generally best to use the number format shown in the defaults: or example: lines. The packet service interrupt number, packet_int_no, must always be given and is normally 0x60. Occasionally that interrupt is used by other software, so another interrupt must be chosen in the range 0x60 through 0x7F. See Appendix A on page 22 for commonly used interrupts. The -w option is used for Windows Enhanced mode on 386/486/586 based PCs. -W discards packets received for a program that is not currently running. Most network programs recover from this loss using their normal packet retransmission features, but they may run more slowly or erratically due to the missed packets, or they time out and be shutdown by the remote end of their connections. -W works by checking the first eight bytes after the receive call which may cause problems if two identical programs are running. WINPKT is clearly the preferred solution over -W. We recommend using the WINPKT utility in addition to the -W option (see WINPKT page 19). The -n option may be necessary in some Novell NetWare installations. It converts IPX packets between the Ethernet II type 8137 frames used by BYU's PDSHELL IPX interface code and the Ethernet 802.3-style frames used by some NetWare servers, shells, and boot PROMs. It will also convert incoming type 8137 packets to type 8138 so that NetWare doesn't get confused. The -d option is used to delay the initialization of the Ethernet card until the packet driver is used for the first time. See DOC/PROMBOOT.TXT in FILES.ZIP for how to use -d and -n in a PROM boot environment. Note that even the PKTSTAT utility command is considered a first use. -D may also be necessary for Serial Line IP under Windows to delay serial and hardware interrupt initialization until after Windows starts. The -u option unloads the packet driver TSR at the service interrupt, packet_int_no, or searches for the first packet driver encountered from 0x60 to 0x7F. In the PC architecture, adapter boards may be accessed using a hardware interrupt number (hardware_irq) and a byte input and output port number (io_addr), and may use a shared memory window address (base_addr). The adapter must be set up to avoid conflict with other adapters and PC functions. Usually the manufacturer's original settings or defaults are designed to avoid conflicts, but you should always check the settings in the network adapter board manual. These details may be set on the network adapter board with hardware jumpers or software switches or jumpers, or in Microchannel machines with the Reference Diskette configuration software (see the adapter's installation instructions). Refer to the manuals for other adapters in your PC for information on avoiding conflicts. The packet driver command prepended to \AUTOEXEC.BAT by the installation gives the default settings for the selected driver. If these are different from the settings of the actual network adapter board, the command must be edited as necessary. The packet driver load command will pause before exiting on an error to give the user a change to read the error messages. On exiting after an error the DOS errorlevel will be set to something non-zero. NDIS Driver Installation All of the Crynwr packet utilities, WINPKT, PKTMUX, and Novell NetWare can use this DIS_PKT/NDIS setup exactly as they would an actual packet driver. The setup in AUTOEXEC.BAT or CONFIG.SYS plus the configuration details in PROTOCOL.INI are the equivalent of the single packet driver load command. If you selected ndis, then the installation assumed that you have an existing NDIS driver setup, perhaps to run LAN Manager, Windows for Workgroups 3.1, or 3PlusShare. To complete the packet driver support, append the contents of the file \NETWORK\PACKET\PROTOCOL.ADD, or the equivalent text, to your PROTOCOL.INI and change "BINDINGS = generic" in the [PKTDRV] section so that "generic" is the name of your NDIS driver section. The active PROTOCOL.INI file will be in the directory named on the CONFIG.SYS command "DEVICE=C:\...\PROTMAN.DOS /I:C:\directory". If you selected netbind, then installation assumed that you would provide an NDIS driver file. The \AUTOEXEC.BAT is modified by prepending the NETBIND command which links the NDIS driver and DIS_PKT shim as specified in the PROTOCOL.INI file. c:\NETWORK\PACKET\NETBIND.EXE The \CONFIG.SYS is modified to load the NDIS protocol manager, the NDIS driver, and the DIS_PKT shim. Copy your NDIS driver file to \NETWORK\PACKET and change "GENERIC.DOS" in \CONFIG.SYS to the name of your NDIS driver file. DEVICE=c:\NETWORK\PACKET\PROTMAN.SYS /I:c:\NETWORK\PACKET DEVICE=c:\NETWORK\PACKET\GENERIC.DOS DEVICE=c:\NETWORK\PACKET\DIS_PKT.DOS Then edit \NETWORK\PACKET\PROTOCOL.INI replacing the [generic] section with that of your NDIS driver, and change the section to correspond to your adapter settings. Also change "BINDINGS = generic" in the [PKTDRV] section so that "generic" is the name of your NDIS driver section. See PROTOCOL.INI Format and Settings below on page 15 and the documentation for your NDIS driver and adapter for details. If you need to change the packet driver interrupt number or Novell options, see PROTOCOL.INI Format and Settings on page 15 below. Notice: Operation with Clarkson CUTCP requires a change to the CONFIG.TEL configuration file. The NOARPME option must be set to YES ("NOARPME=YES"). Notice: Versions of PC Gopher below 1.05r3 will not work with this DIS_PKT/NDIS combination. PC Gopher will report it is unable to connect to the server. If you have this problem, get the latest PC Gopher from Consulting in 264 Evans. NDIS PROTOCOL.INI Format and Settings The following is the generic PROTOCOL.INI file provided by the installation. Your NDIS driver parameter section will replace the section labeled [generic]. Your NDIS driver adapter settings may be different or have additional parameters and settings. See your NDIS driver and adapter documentation for more detail. Generic should be replaced by the name of your NDIS driver. [protocol manager] DRIVERNAME = PROTMAN$ [PKTDRV] DRIVERNAME = PKTDRV BINDINGS = generic INTVEC = 0X60 CHAINVEC = 0X66 NOVELL = NO [generic] DriverName = name$ MemoryWindow = 0xD0000 IO_Port = 0x360 IRQ_Level = 2 --------------------------------------------------------------------------- [pktdrv] Name of this driver entry. drivername = pktdrv$ Formal driver name. bindings = generic Name of the NDIS driver. intvec = 0x60 Packet driver service interrupt, 60h to 7Fh. chainvec = 0x66 Post-EOI processing interrupt. novell = no If yes then convert between old Novell 802.3 packets on the wire and Type 8137. This is the same as the -N option on the packet driver load command. --------------------------------------------------------------------------- --------------------------------------------------------------------------- [generic] Name of this driver entry. drivername = name$ Formal driver name. MemoryWindow = 0xD0000 base address of the RAM memory window, must agree with the jumpered configuration of the adapter. IO_Port = 0x360 base address in the PC I/O address space. IRQ_Level = 2 IRQ level that will be used by the adapter. --------------------------------------------------------------------------- Other Packet Driver Installation Details The selected packet driver and the basic packet driver utilities are installed in the \NETWORK\PACKET directory on the target disk. The DOS path is not set up to point to the \NETWORK\PACKET directory because the packet driver is usually loaded using its full path name and the other utilities are not used frequently. Consequently the environment space and additional search time are not justified. The utilities can be used by simply changing to the packet driver directory. The \AUTOEXEC.BAT is modified by prepending the default packet driver load and WINPKT commands. If the installation is done several times, the commands are prepended only once even if changes have been made to the specified parameters. However if installations for different drivers have been done, then multiple commands will have been prepended. Edit \AUTOEXEC.BAT to remove the extra commands. For any driver, the command parameters can be displayed by executing the driver load command but with no parameters given, for example "smc_wd". For some drivers, a file DRIVER.TXT gives the command format, defaults, detailed information, and problem reports for the installed packet driver named DRIVER. See Packet Driver Load Command on page 12. There are various additional files and documents in the archive FILES.ZIP, see README.TXT. To expand any of the files use the UNZIP command. For example, to expand the file DOC/PACKET.TXT you can use: --------------------------------------------------------------------------- C: CD \NETWORK\PACKET A:\UNZIP -J A:\FILES DOC/PACKET.TXT --------------------------------------------------------------------------- DOS wildcards can be used to expand multiple files, for all of the documentation files: --------------------------------------------------------------------------- C: CD \NETWORK\PACKET A:\UNZIP -J A:\FILES DOC/*.* --------------------------------------------------------------------------- The files for ODIPKT, PDETHER, PKTMUX, or the extra utilities (UTILSX) are not normally installed. To install them use the UNZIP command as shown above: If the installation diskette is copied, either DISKCOPY or XCOPY must be used: DISKCOPY A: B: XCOPY A:\*.* B: /S /E /V Standard Utility Commands PKTCHK packet_int_no [ packet_int_no ] Tests if a packet driver is loaded. Sets DOS error level 0 if the specified interrupt number has a packet driver. If the second interrupt is given, all interrupts in the range are checked. If no packet driver is found at all, error level 1 is set. example: PKTCHK 0X60 example: PKTCHK 0X60 0X80 The returned errorlevel is for use in a batch file. Note that the DOS errorlevel test is true if the errorlevel is greater than or equal to the given number, hence, "not errorlevel 1" must be used to test for 0. :: Install packet driver if there isn't one already PKTCHK 0x60 IF NOT ERRORLEVEL 1 GOTO SKIPLOAD NI5210 0x60 ... :SKIPLOAD PKTSTAT [ first_int_no [ last_int_no ] ] Displays the statistics for all packet drivers, a specific packet driver, or a range of packet drivers. The default is the entire range 0x60 through 0x7F. example: PKTSTAT example: PKTSTAT 0X60 example: PKTSTAT 0X60 0X80 --------------------------------------------------------------------------- Packet statistics version 11.1 copyright 1990, Russell Nelson. This program is free software; see the file COPYING for details. NO WARRANTY; see the file COPYING for details. UCB WSSG 11b 12/31/94 16:33:07 int driver pkt_in pkt_out byt_in byt_out err_in err_out pk_drop 0x60 UB NIC-PS2 321 5 23514 7570 0 0 2560 --------------------------------------------------------------------------- int the service interrupt of the packet driver driver the name of the driver (up to 10 characters) pkt_in is the number of packets ever received by this driver pkt_out is the number of packets ever transmitted by this driver byt_in is the number of bytes ever received by this driver byt_out is the number of bytes ever transmitted by this driver err_in Dependent upon the packet driver err_out Dependent upon the packet driver pk_drop Packets dropped because there was no handler for that type PKTSTAT will show no packet drivers after PKTMUX is loaded but before any PKTDRVs are loaded, and a packet driver for each free PKTDRV that is loaded. PKTTEST packet_int_no [ -r ] [ -d delay ] [-l length ] Listens for and sends packets using the specified packet driver. Reports received packets as displayed letters: "A" for ARP packets, "E" for IEEE 802.3 packets, "I" for IP packets, "N" for Novell 8137 packets, "P" for ICMP Echo ("ping") packets, and "T" for type 9000 test packets. Shows "*" when incoming packets are lost. If you see a lot of asterisks ("*) then either your network segment is very busy or your PC and andapter are very slow. Packets are sent whenever the Space bar is pressed. The packet send is reported as a displayed Period. If the packet cannot be sent a Colon is displayed. The built-in packet is a maximum sized Ethernet frame of type 0x9000 (test). It is sent with an Ethernet broadcast destination so that another PKTTEST running on another PC will see it as a "T" packet. The length can be shortened to as small as 60 using -l length . The -r option automatically repeats the packet send based on a delay count. The actual delay depends on how much time the BIOS int 16 (ah=1) function takes. On an 8 MHz 286 with a normal BIOS with 25 instructions, the default delay count of 15000 takes about 500 milliseconds. With DOS 5 or higher, or Windows, or a more complicated BIOS, the delay may be much longer. Use -d to adjust the delay or just press the Space bar. The length is given as -l length, from 60 bytes to 1500 bytes. Using PKTTEST followed by PKTSTAT gives a quick test of adapter board and packet driver function. There should be data sent and received and no errors. --------------------------------------------------------------------------- C:\NETWORK\PACKET > PKTTEST 0x60 -R Sent and received packets are reported as letters: A= arp E= ieee I= ip N= novell O= other P= ping T= test *= packets lost (lowercase = Ethernet uppercase = broadcast address) .= test packet sent := send failed Press space to send packet(s). Any other key exits. AAIN.IIIA.IAA. C:\NETWORK\PACKET > --------------------------------------------------------------------------- example: PKTTEST 0X60 example: PKTTEST 0X60 -L 60 example: PKTTEST 0X60 -R example: PKTTEST 0X60 -R -D 10000 Also see Testing the Installation on page 9. WINPKT packet_int_no WINPKT is an interface between Windows Enhanced mode programs and a packet driver (see Windows Enhanced Mode page 6). WINPKT does not allow multiple TCP/IP programs to run at the same time even under Windows Enhanced Mode (see PKTMUX on page 25). Packet_int_no is the packet service interrupt that will be used by programs (usually 0x60). WINPKT should be installed after loading the packet driver and before loading Windows. WINPKT will hide the actual packet driver service interrupt and then offer the service interrupt itself. For example: C:\NETWORK\PACKET\3C505 0X60 2 0X30 0XD000 C:\NETWORK\PACKET\WINPKT 0X60 C:\WINDOWS\WIN If WINPKT is terminated with the driver -u option or PKTTERM, the underlying packet driver is also terminated. While WINPKT is loaded, PKTSTAT will still show the underlying packet drivers name and statistics. WINPKT is not necessary if PKTMUX is used. Other Utility Commands PKTADDR [-c] packet_int_no [Ethernet_addr] Displays the Ethernet address of the packet driver. If -c and an Ethernet_addr is given, the Ethernet address of the packet driver is checked. If the given address matches the actual address, the DOS error level is set to 0, otherwise it is set to 1. If Ethernet_addr is given without -c, the Ethernet address of the packet driver is set. (This is not generally a good idea! The unique Ethernet address is built in to the adapter.). example: PKTADDR 0X60 example: PKTADDR -C 0X60 00:A0:01:BC:32:06 PKTDUMP Interprets the contents of the PKTTRACE.OUT file written by PKTTRACE and displays it on the standard output. The output can be redirected to a file. example: PKTDUMP example: PKTDUMP > PKTTRACE.TXT PKTMODE packet_int_no [ receive_mode_number ] Displays the receive modes of the specified packet driver. Unimplemented modes or modes in use by another program are marked with "no", available modes are marked with "yes", and the current mode is marked with "current". If the second argument is given, the receive mode of the given packet driver is set (normally packet driver applications set whatever mode they need themselves). example: PKTMODE 0X60 example: PKTMODE 0X60 6 --------------------------------------------------------------------------- C:\NETWORK\PACKET > PKTMODE 0x60 no 1) Turn off receiver yes 2) Receive only packets sent to this interface current 3) Mode 2 plus broadcast yes 4) Mode 3 plus limited multicast no 5) Mode 3 plus all multicast no 6) All packets --------------------------------------------------------------------------- PKTMULTI packet_int_no [ -f filename | Ethernet_Multicast_addr ... ] Displays the current list of multicast addressees, if any. If addresses are given, they are set as multicast addresses. The addresses may either be specified on the command line, or in a file using the -f option. When a file is used, any spaces or tabs are ignored. Not all Ethernet adapters support multicast. example: PKTMULTI 0X60 example: PKTMULTI 0X60 00:A0:01:BC:32:06 PKTTERM [-s] packet_int_no The specified packet driver is terminated, and its memory recovered. --------------------------------------------------------------------------- Note that each packet driver now has a -u option to terminate and unload, so PKTTERM is only necessary if the -s option feature is required. --------------------------------------------------------------------------- example: PKTTERM 0X60 example: PKTTERM -S 0X60 The -s option is used to prepare for termination. The in-use flags for all handles are cleared. This prevents upcalls to handlers that are to be removed and also makes it possible to later terminate the packet driver even though handles are not released. Doing PKTTERM -s after PROM boot is like cutting the branch you are sitting on. If WINPKT is terminated with PKTTERM, the underlying packet driver is also terminated. Example for removing packet driver and the FTP Software kernel: \network\packet\pktterm -s 0x60 ; stop the driver \network\ftp\inet unload ; unload the kernel \network\packet\PKTTERM 0x60 ; Safe to terminate PKTTRACE packet_int_no [ buffer_size ] PKTTRACE is useful for debugging packet driver troubles. It logs all transactions between a user program and the packet driver. The transactions are stored in a memory buffer of size buffer_size . The default size is 10,000 bytes. example: PKTTRACE 0X60 PKTTRACE sets itself up and then spawns COMMAND.COM so that you can run a network program that uses the packet driver. After the network test, issue an EXIT command at the DOS prompt. This returns to PKTTRACE, which writes the transaction log buffer to the file PKTTRACE.OUT. PKTDUMP interprets PKTTRACE.OUT. Appendix A - Software Interrupts Known interrupt usage in the packet driver range 0x60 through 0x7F, from Ralf Brown. Other software interrupts may be used by other programs. 60 - Packet Driver Specification normal 60 - 10-NET 61 - FTP Software PC/TCP kernel services 64 - Used by Novell? 67 - Virtual Control Program Interface - INSTALL CHECK 68 - APPC/PC 6C - system resume vector (CONVERTIBLE) 6C - DOS 3.2 Real-time Clock update 6D - VGA - internal 6F - Novell NetWare - PCOX API (3270 PC terminal) 6F - 10-NET - LOGIN 70 - IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK 71 - IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1 72 - IRQ10 - AT/XT286/PS50+ - RESERVED 73 - IRQ11 - AT/XT286/PS50+ - RESERVED 74 - IRQ12 - PS50+ - MOUSE INTERRUPT 75 - IRQ13 - AT/XT286/PS50+ - 80287 ERROR 76 - IRQ14 - AT/XT286/PS50+ - FIXED DISK 77 - IRQ15 - AT/XT286/PS50+ - RESERVED 7A - Novell NetWare - LOW-LEVEL API 7A - AutoCAD Device Interface 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE 7F - HLLAPI (High-Level Language API) Packet Driver Bibliography "Packet Drivers". "Under the Hood" feature, John Romkey and Sharon Fisher, BYTE Magazine, May 1991, pages 297 to 306. "Installing Network Interface Cards for MS-DOS PCs on the UC Berkeley Campus Network", Workstation Support Services, MIC 2.2.25, August 1992. "Packet Driver Specification Version 1.09", FTP Software Inc., file DOC/PACKET_D.TXT in FILES.ZIP. "Microsoft/3COM LAN Manager Network Driver Interface Specification", version 2.0.1, 12 February 1990. Appendix B -Simultaneous TCP/IP Programs (PKTMUX) Simultaneous TCP/IP Programs Under DOS (PKTMUX) Simultaneous use of TCP/IP programs is restricted under DOS due to memory limitations and lack of memory-smart programs (particularly Telnets). Most of the usual TCP/IP network applications are now combined in an integrated application such as MINUET. MINUET includes Telnet, FTP, email, gopher, network news, finger, ping. This greatly reduces the need for PKTMUX (which explains why this section is an appendix now instead of a main section of this document). Under DOS, a program can terminate and stay resident (TSR), or load and execute another program while remaining resident itself. Usually a second command processor or "shell" is loaded to give a DOS prompt, then the second program can be started from the DOS command line. The second program must be terminated to return to the first program. All programs reside in memory at the same time. Usually the first program keeps all of its memory, hence limiting the size of the second program. ). Simultaneous TCP/IP requires the PKTMUX utility (see TCP/IP Sub-protocol Multiplexing/ Demultiplexing on page 7 and PKTMUX and PKTDRV below on page 25). --------------------------------------------------------------------------- Program Memory Required PKTMUX/PKTDRV 2 channels=20k, 4 channels=26k CUTCP Telnet 276k + 20k per connection CUTCP FTP 191k FTP Software kernel + 288k = 77K + 211k TN NUPop 450k (7k when swapped to disk/EMS) --------------------------------------------------------------------------- The following is an example \AUTOEXEC.BAT for a two TCP/IP channel DOS setup with PKTMUX. The commands in bold are necessary only for Novell NetWare. Note that NetWare can share the first PKTDRV pseudo packet driver with a subsequent TCP/IP program so PKTDRV is marked free with the "PKTDRV /f" command. C:\NETWORK\PACKET\SMC_WD -W 0X60 2 0X280 0XD000 C:\NETWORK\PACKET\PKTMUX 2 C:\NETWORK\PACKET\PKTDRV C:\NETWORK\NOVELL\IPX C:\NETWORK\NOVELL\NETX C:\NETWORK\PACKET\PKTDRV /f C:\NETWORK\PACKET\PKTDRV Simultaneous TCP/IP Programs under Windows (PKTDRV) --------------------------------------------------------------------------- Note that Windows users should be using more modern networking software than packet driver network applications, such as Microsoft TCPIP-32 for Windows for Workgroups 3.11, Novell LAN Workplace, etc.. The Workstation Software Support Group supports packet drivers primarily for older DOS workstations. --------------------------------------------------------------------------- Under Windows, PKTMUX is required if multiple packet driver TCP/IP programs are to be run at the same time. A copy of PKTDRV is loaded in each DOS window to provide packet driver services to subsequent DOS TCP/IP programs. The basic \AUTOEXEC.BAT configuration to run four TCP/IP is: C:\NETWORK\PACKET\driver -W 0x60 ....... C:\NETWORK\PACKET\PKTMUX 4 Each TCP/IP program must have its own PKTDRV pseudo packet driver (up to four). For DOS programs such as CUTCP, MINUET, and NUPop to run in a DOS window, PKTDRV should be loaded in that window. PKTDRV can be loaded manually from the DOS window command line, or Program Manager icons or PIF files can load it (see PKTDRVW on page 28). For Windows programs and DOS programs that are loaded before Windows is started, PKTDRV should be loaded in AUTOEXEC.BAT. For Novell NetWare alone, note that NetWare cannot share its PKTDRV with a Windows loaded DOS TCP/IP program, so "PKTDRV /f" is not used: C:\NETWORK\PACKET\driver -W 0x60 ....... C:\NETWORK\PACKET\PKTMUX 4 C:\NETWORK\PACKET\PKTDRV C:\NETWORK\NOVELL\IPX For Novell NetWare plus the FTP Software kernel, NetWare can share its PKTDRV, so PKTDRV is marked free with the "PKTDRV /f" command: C:\NETWORK\PACKET\driver -W 0x60 ....... C:\NETWORK\PACKET\PKTMUX 4 C:\NETWORK\PACKET\PKTDRV C:\NETWORK\NOVELL\IPX C:\NETWORK\NOVELL\NETX C:\NETWORK\PACKET\PKTDRV /f CALL C:\NETWORK\FTP\K.BAT load For the FTP Software kernel alone, PKTDRV is still necessary: C:\NETWORK\PACKET\driver -W 0x60 ....... C:\NETWORK\PACKET\PKTMUX 4 C:\NETWORK\PACKET\PKTDRV CALL C:\NETWORK\FTP\K.BAT load Note in "PKTDRV /f" and "K.BAT load" above, that "/f" and "load" must be lower case. PKTMUX Commands --------------------------------------------------------------------------- The PKTMUX files are not loaded with the basic installation. To add the PKTMUX files run the command "a:\install a; c: pktmux *.*". --------------------------------------------------------------------------- PKTMUX [ chan_cnt [ packet_int_no [ chan_time_out [ /options ... ] ] ] ] PKTMUX provides multiple IP protocol channels in conjunction with the pseudo packet driver PKTDRV (see TCP/IP Sub-protocol Multiplexing/Demultiplexing on page 7 and PKTDRV below on page 28). PKTMUX installs the multiplexor on the first packet driver it finds unless packet_int_no is specified in hex (for example "62" but not "0x62"). PKTMUX takes over the interrupt and hides it so that it cannot be found by any other program. A PKTDRV must then be loaded to provide the packet driver interfaces, each with its own packet_int_no. Chan_cnt is the number of channels to be supported (1 to 4, default is 2). A copy of PKTDRV must then be loaded for each channel to be used. Each PKTDRV acts as if it were a packet driver with its own Ethernet card albeit each with the same Ethernet address as the original packet driver. PKTMUX memory usage ranges from 13k bytes for one channel to 20k bytes for four channels. This section covers the normal use of PKTMUX. For chan_time_out and other options not covered here, see DOC/PKTMUX12.TXT in FILES.ZIP for complete details or run the command "pktmux /h" for a command summary. The following /options apply while loading PKTMUX: Display additional information on loading. /a /p Pause if error found during loading. Examples: PKTMUX Normal use - 2 channels. PKTMUX 4 Install to multiplex four channels. PKTMUX 4 /p Install to multiplex four channels, and pause if errors loading. PKTMUX 4 /a Install to multiplex four channels, display additional load info. PKTMUX 2 62 Install on packet driver at Interrupt 62 hex (note not 0x62). The following /options act on an already loaded PKTMUX: /h Display help information. /r Reset timed out channels (see chan_time_out above); /rr resets internal flags as well and should be used with care (may hang PKTMUX). /t Terminate PKTMUX and packet driver. /u but also sends a terminate request to the packet driver, which will also unload if it supports this facility. Also see PKTDRV /t option. /u Unload PKTMUX if not being used by a PKTDRV (see /t above). Examples: PKTMUX /u Unload PKTMUX (don't forget to unload PKTDRVs first). PKTMUX /r Reset timed out channels. PKTDRV [ packet_int_no [ mux_int_no [ all_type ... [ /options ...] ] ] ] PKTDRV provides the pseudo packet driver interface in conjunction with PKTMUX and uses a little over 1k bytes of memory Each free PKTDRV loaded under DOS or within a Windows DOS session will show as a separate packet driver with PKTSTAT. When a program registers with a PKTDRV pseudo packet driver, that driver becomes busy, changes its signature, and disappears as a packet driver. Use PKTSTATS to see the free or busy state of each PKTDRV and PKTMUX. Multiple PKTDRVs can be loaded at any time. Under DOS, it is wise to load all the PKTDRV copies that are required just after PKTMUX is loaded. This minimizes the chance of problems with interrupt chains. Under Windows, it is best to load only the PKTDRVs needed in DOS before Windows is loaded, such as for FTP Software PC/TCP or Novell NetWare, then load individual network application program PKTDRVs in each DOS window. PKTDRV installs itself as the first free interrupt after the interrupt serviced by PKTMUX but skips 61, 62, 64 and 67 (see Appendix A page 22) unless packet_int_no is specified in hex (for example "62" but not "0x62"). Under Windows, PKTDRV will find the same interrupt in each DOS window because each window has its own interrupts. PKTDRV searches for PKTMUX, or uses mux_int_no, if specified in hex. This section covers the normal use of PKTDRV. For all_type and other options not covered here, see DOC/PKTMUX12.TXT in FILES.ZIP for complete details or run the command "pktdrv /h" for a command summary. The following /options apply to PKTDRV while loading as a pseudo packet driver: /n Load only if no PKTDRV is available and free. /p Pause if an error is found during loading. Examples are: PKTDRV Normal - use to load one channel. PKTDRV /p Normal - use to load one channel and pause if any errors. PKTDRV /n Normal - use to load one channel if not already available.. PKTDRV 60 62 Multiplexor on 62, put packet driver on 60. The following /options act on an already loaded PKTDRV: Note that packet_int_no has a different default for these calls. A search is made from the last interrupt number (7F) back to the first (60) and the first PKTDRV encountered is used (generally the last one that was loaded). /f Force PKTDRV to be free. When two programs can use the same packet driver (for example, a TCP/IP program running alongside Novell NetWare, see example on page 23) loading one then freeing the PKTDRV pseudo packet driver will allow the other to connect through the same channel. Display help information. /h /r Reset a PKTDRV that is busy. When a PKTDRV has been marked busy but the program has terminated or crashed, then /r will reset the specified PKTDRV. Note that /r resets the channel whereas /f simply resets the free/busy identification. If PKTDRV was terminated at the same time as the program, such as when a Windows session is terminated, then the PKTMUX channel is busy but there is no PKTDRV to send a reset to. In this case use the PKTMUX /r option to reset any busy channel which has no PKTDRV. /t Terminate PKTDRV, PKTMUX and packet driver. /t is the same as /u but also sends a terminate request to PKTMUX which, if accepted, will also send a terminate request to the packet driver. /u Unload last loaded PKTDRV if not busy. Unload last loaded PKTDRV even if busy. If it is known that /uu program is not busy, such as when it has crashed, then /uu will force the unload. /ur Repeatedly unload last loaded PKTDRV if not busy. This may not be possible if other TSRs where loaded between PKTDRVs. Examples are: PKTDRV /t Terminate PKTDRV, PKTMUX and packet driver. PKTDRV /u Unload last PKTDRV to be loaded. PKTDRV /uu Unload last PKTDRV to be loaded even if busy. PKTDRV 63 /u Unload PKTDRV on interrupt 63. PKTDRVW [ DOS_command ] PKTDRVW.BAT is used to invoke packet driver TCP/IP commands under Windows. It loads PKTDRV and then starts the specified DOS command. This allows TCP/IP commands to be started directly from Program Manager icons defined with the File-Properties menu and similarly from PIF files. If PKTDRVW is invoked without a DOS_command, then PKTDRV is loaded and a second command processor is started. For example, from the Program Manager File Properties menu: --------------------------------------------------------------------------- Command Line: C:\NETWORK\PACKET\PKTDRVW TELNET Working Directory: C:\NETWORK\CUTCP --------------------------------------------------------------------------- Or from the PIFEDIT window: --------------------------------------------------------------------------- Program Filename: C:\NETWORK\PACKET\PKTDRVW Optional Parameters: TELNET Startup Directory: C:\NETWORK\CUTCP --------------------------------------------------------------------------- PKTSTATS [ /options ... ] Displays program details and status for PKTMUX and PKTDRV. The following /options modify the display: /a Display more information. /aa Display even more information. /h Display usage help information. Examples are: PKTSTATS Normal use. PKTSTATS /a Show further information. PKTSTATS /aa Show further, further information. The counts given by PKTSTATS are 16 bit integers and will overflow after a period of time. In output where the name before a count value is in UPPERCASE letters, then that data is being lost or discarded for some reason. For further details see the section on Problem Solving in DOC/PKTMUX12.TXT (in FILES.ZIP). --------------------------------------------------------------------------- [Home | New | Software | Documentation | Resources] [Image] [comments| PC Team | depot] Updated: 19-June-95