next up previous contents
Next: Directory PCTCP Up: ZY Boot Diskette Archive Previous: Layout of the Archive   Contents


Directory NDIS

This directory contains the software and configuration files that allow the PC/TCP kernel to communicate with the network adapter hardware. The communication lines between the network adapter hardware and the PC/TCP kernel are as shown in figure A.2.

Figure A.2: Interface between PC/TCP Kernel and network adapter hardware.
\begin{figure}
\setlength{\unitlength}{1in}
\begin{center}
\begin{picture}...
...put(3.1, 1.95){\vector(1, 1){0.3}}
\end{picture}
\end{center}
\end{figure}

Most network adapters are supported by an NDIS driver. NDIS stands for Network Driver Interface Specification and was developed jointly by 3Com Corporation and Microsoft Corporation to provide a common and shareable driver interface for LAN Manager. This approach allows other network software packages to co-exist with LAN Manager and use the same network adapter. PC/TCP, however, is designed to use a packet driver adhering to the FTP Software Packet Driver Specification. To allow PC/TCP to work with any network adapter cards, FTP Software provides an NDIS to Packet converter. This allows the PC/TCP kernel to communicate with any NDIS supported network adapter card. A directory listing of the NDIS subdirectory of the diskimage directory looks like this:
  Z:>dir \\FREYA\LaserComputerSystems\zy\zy102\diskimage\ndis
   Volume in drive \\FREYA\LaserComputerSystems is Freya Users
   Volume Serial Number is B00B-383E

   Directory of \\FREYA\LaserComputerSystems\zy\zy102\diskimage\ndis

  05/29/97  16:21         <DIR>          .
  05/29/97  16:21         <DIR>          ..
  09/13/94  09:58                  7,257 at1700.dos
  05/29/97  14:21                  5,973 dis_pkt.gup
  07/19/96  14:34                 23,564 elnk3.dos
  08/07/95  09:29                 10,150 elnkii.dos
  08/07/95  09:30                 15,639 netbind.exe
  08/07/95  09:30                 10,657 protman.dos
  05/29/97  14:28                    313 protocol.ini
                 9 File(s)         73,553 bytes
                              429,725,696 bytes free
The files AT1700.DOS, ELNKII.DOS, and ELNK3.DOS are the NDIS drivers for the Allied Telesys AT1700, 3Com EtherLink II, and the 3Com EtherLink III interface cards, respectively. All of these files are provided on the ZY boot diskette to allow the network adapters to be easily interchanged. The file DIS_PKT.GUP is the NDIS/packet converter shown in figure A.2. To the PC/TCP kernel, it looks like a packet driver. To the NDIS driver, it looks like an NDIS client. Because the NDIS driver supports multiple protocol stacks, a protocol manager must be included among the loaded drivers. This driver serves to route packets to and from the proper protocol stacks. For example, if the computer has both a TCP/IP stack and a NetWare stack loaded, the protocol manager sorts the packets according to the protocol and sends them to the correct stack. The ZY, however, only runs one stack, the PC/TCP TCP/IP stack. The protocol manager is included because it must be present for this arrangement to work, and because it also sets up the NDIS driver to correctly use the network adapter card through the PROTOCOL.INI file. The PROTOCOL.INI file for ZY102 is typical:
  [AT1700]
  DRIVERNAME = AT1700$
  IOADDRESS = 0x320

  [EtherLinkII]
  DRIVERNAME = ELNKII$
  INTERRUPT = 5
  TRANSCEIVER = External
  IOADDRESS = 0x310

  [EtherLinkIII]
  DRIVERNAME = ELNK3$

  [PROTMAN]
  DRIVERNAME = PROTMAN

  [PKTDRV]
  DRIVERNAME = PKTDRV$
  BINDINGS = EtherLinkIII
  INTVEC = 0x62
  CHAINVEC = 0x63
The headers [AT1700], [EtherLinkII] and [EtherLinkIII] specify information specific to the particular NDIS driver in use, its name, any I/O port or IRQ information that may be needed, the type of cable connected to the network adapter etc. The amount of information stored under each header depends heavily on the kind of network adapter used. For example, since the 3Com 3C509 EtherLink III stores most of its setup information on board on non-volatile RAM, the driver can get this information from the board, and does not need much from PROTOCOL.INI. The 3Com 3C503 EtherLink II, on the other hand, does not provide such facilities, therefore this information is provided in the PROTOCOL.INI file. The [PROTMAN] entry declares the name of the protocol manager, and should always be as shown. Finally, the entry [PKTDRV] configures the link between the NDIS driver, the packet driver, and the PC/TCP kernel. The entries perform the following functions:
DRIVERNAME: Specifies the name of the packet driver. This item should remain as show above.
BINDINGS: Specifies which of the NDIS/hardware specific entries to use when configuring the system. For example, if the system includes an EtherLink III board and loads the ELNK3.DOS NDIS driver, the [EtherLinkIII] entry header should be specified. There is nothing magical about this name, except that the right side of the BINDINGS = statement must match the name of the header that specifies the configuration for the desired NDIS driver. In other words, if the configuration information for the EtherLink III is specified as follows:
     [AnotherName]
     DRIVERNAME = ELNK3$
then this should appear in the [PKTDRV] section:
     BINDINGS = AnotherName
if the EtherLink III board is being used.
INTVEC: Specifies the x86 software interrupt that will be used for communications between the packet driver and the kernel.
CHAINVEC: Normally, when PC/TCP is notified of an incoming packet, the notification occurs before all of the packet is received. Therefore, the PC/TCP kernel waits for the next clock tick (55mS later) to process the incoming packet. Setting up another software x86 interrupt here allows the PC/TCP kernel to process the received packet on End Of Interrupt (EOI), which occurs after the entire packet is received, instead of at the next clock tick. This has the potential to increase response times.

next up previous contents
Next: Directory PCTCP Up: ZY Boot Diskette Archive Previous: Layout of the Archive   Contents
Ramon E. Creager 2002-03-11