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.
 |
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: Directory PCTCP
Up: ZY Boot Diskette Archive
Previous: Layout of the Archive
  Contents
Ramon E. Creager
2002-03-11