home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
bin
/
mstibm.zip
/
NETWORKS
/
SETUP.DOC
< prev
next >
Wrap
Text File
|
1995-06-08
|
66KB
|
1,469 lines
File NETWORKS\SETUP.DOC January 1995
SETTING UP YOUR PC FOR MS-DOS KERMIT NETWORKING
Applies to: MS-DOS Kermit 3.14
Authors: Joe R. Doupnik, Utah State University
Frank da Cruz, Columbia University
Last updated: Wed May 31 09:45:25 1995
ABSTRACT
Applying mainly to TCP/IP, but with some discussion of STARLAN, etc, this file
concentrates on the low-level network configuration of your PC, network board
interface standards, drivers and shims, Windows, memory management, TCP/IP
configuration, and how to get MS-DOS Kermit working on your network.
CHAPTER 0. GENERAL PRINCIPLES
Specific Network Boards:
Kermit does not support specific network boards. It speaks to network
boards only through interpreters known as drivers, and only those drivers
that present certain standard interfaces to the application (Kermit).
The Zeroth Law of Kermodynamics (pay attention):
ONLY ONE PROTOCOL STACK OF A GIVEN KIND PER NETWORK BOARD.
Corollary:
Only one TCP/IP-based application can use a LAN adapter at a time.
Some applications of this principle:
You can't run Kermit's TCP/IP stack at the same time as (for example):
. LAN Workplace for DOS (LWP) (but Kermit can run over it)
. PC/TCP (but Kermit can run over it)
. PC NFS
. Trumpet Winsock
. etc etc etc
Brief explanation: The board driver has little slots for each "protocol", such
as IP, ARP, IPX, LAT, etc, one slot for each. Each slot identifies the
application that is using the given protocol on the board. Now, the network
packets also contain protocol types. So if (say) an IP packet comes in, the
driver looks up IP in its protocol slots, sees who owns it, and gives the
packet to that application. There is only one slot per protocol.
This is good because it allows multiple protocols to be active at once,
for example IPX and TCP/IP (this is why Kermit can, say, transfer a file from
a NetWare disk to a UNIX computer via TCP/IP, when the NetWare server and the
UNIX system are both being accessed by Kermit at the same time through the
same Ethernet board).
But... if you need to run multiple TCP/IP applications, i.e. different
applications that use the *same* protocol, you'll have to unload one before
you can start the other. For example, you can't make a TCP/IP connection
with Kermit to transfer a file from an NFS-mounted disk.
If you need to run them simultaneously, then you have the following choices:
. Install a second network board (recommended) (really, they're cheap).
. Tell one, if possible, to use the other's TCP/IP stack for transport.
More about this later on.
. Look into something called PKTMUX, but please don't ask us about it.
We don't support it or recommend it. But if it works for you, fine.
(We don't denigrate it either -- it is a heroic attempt at dealing
with the limitations of the PC platform, but it is very complicated,
and a short glance at the warnings and disclaimers at the beginning
of the manual will scare away all but the most courageous.)
Note, by the way, that TCP, UDP, and ICMP are not "protocols" at this level.
The network driver software never sees them because they are encapsulated
inside IP packets.
CHAPTER 1. NETWORK DRIVERS USABLE BY KERMIT
MS-DOS Kermit 3.11 and later contains an extremely compact and fast built-in
TCP/IP protocol implementation, including TELNET protocol, designed to run
over any of the following types of network board drivers:
1. A packet driver of the ETHERNET (1) or SLIP (6) class.
2. An ODI driver.
3. The Novell SLIP_PPP driver.
4. The Telebit PPP driver.
(1.1) PACKET DRIVERS
These provide a somewhat uniform interface between a wide variety of network
boards and the application. However, the application still must be aware of
which kind of network technology is being used -- Ethernet, Token Ring,
Arcnet, SLIP, etc. Kermit knows about Ethernet and SLIP. In order to use
Kermit with a packet driver over some other kind of network board, such as
Token Ring or Arcnet, you need an "Ethernet simulation" packet driver -- i.e.
one that converts between its own networking method and Ethernet, tricking
Kermit into thinking it has an Ethernet board.
The packet driver should be loaded in conventional memory from AUTOEXEC.BAT,
or by hand when you need to use it.
The packet driver works as an extension of the application program, since they
share the same memory. To send a packet, the application puts it in a buffer,
tells the packet driver where the buffer is, and tells it to send it. The
packet driver returns some kind of completion code. When packets arrive from
the outside, the packet driver gets an interrupt from the device, takes over
the CPU, asks the application for a buffer, and copies the incoming data from
the device to the buffer, and then taps the application on the shoulder to
let it know that the packet has arrived. There are several incompatible
"classes" of packet drivers: 1 (Ethernet), 2 (ProNet), 3 (Token Ring), ...,
5 (Appletalk), 6 (Serial Line), etc. Kermit supports classes 1 and 6.
Packet drivers are usually provided with each network board by the vendor.
There are also some free packet drivers (Cyrnwr Collection being the best
known), including the one supplied on the Kermit disk for SLIP.
This discussion has neglected what happens under Microsoft Windows, which is
postponed until later. If you need to use Kermit to make TCP/IP connections
from within Windows, don't forget to read CHAPTER 3: WINDOWS.
(1.2) ODI DRIVERS
ODI is Novell's Open Datalink Inteface, providing a uniform way for the
application to talk to the network board, independent of which networking
method it uses: Ethernet, Token Ring, etc. MS-DOS Kermit supports this method
directly. That is, it talks directly to the ODI driver.
Direct use of ODI drivers permits Kermit's TCP/IP to run with several kinds of
Ethernet frames: DIX/Blue-Book/Ethernet_II, Token Ring, Arcnet, and PCLan
broadband. No extra protocol "shim" is needed, but you must have ODI drivers
from Novell or your network board vendor.
The mechanics are roughly the same as for packet drivers. The driver
configuration, however, is done differently. Rather than feeding command-line
parameters to the driver, a file called NET.CFG is created to give certain
information not only to the driver, but also to the applications that use it.
ODI drivers generally come on a diskette packaged with your network board.
Novell supplied drivers and ODI components are available from Compuserve
and across the Internet from ftp.novell.com and its official mirror sites:
BNUG FTP server, bnug.proteon.com [128.185.17.201]
University of Groningen, ftp.rug.nl [129.125.4.15]
University of Salford, ftp.salford.ac.uk [146.87.0.201]
Utah State University, netlab2.usu.edu [129.123.1.44],
netlab1.usu.edu [129.123.1.43]
Lincoln University, tui.lincoln.ac.nz [138.75.80.3]
National Research Council (Canada), novell.nrc.ca [132.246.160.4]
Example Ethernet NET.CFG file, using VLMs in this case
; File NET.CFG for NW 4.0 and for VLMs
; Don't forget to say lastdrive=z in config.sys!
Netware dos requester
PB buffers=6
true commit=off ; off=let server buffer writes
network printers=1 ; shrinks print.vlm, won't load it
average name length=24 ; shrinks connection table
load low conn=ON
load low ipxncp=ON
signature level=0 ; 0=don't load security.vlm
read only compatibility=on
first network drive=n
preferred server=edu-usu-netlab2
preferred tree=USU-TREE
name context="O=USU"
; VLM selection, order sensitive.
; For Bindery include bind and netx, omit nds.
; Also preferred server is read for Bindery only.
; For Directory Services include nds, omit bind and netx.
; Also preferred tree and name context are read for DS only.
use defaults=off ; off=use explict list of vlms which follow
vlm=conn.vlm ; Connection tables
vlm=ipxncp.vlm ; NCP over IPX
vlm=tran.vlm ; Transport services worker
vlm=security.vlm ; Security, optional
; vlm=nds.vlm ; DS, NCP Directory Services
vlm=bind.vlm ; Bindery, NCP
vlm=nwp.vlm ; Transport services worker
vlm=fio.vlm ; File i/o
vlm=general.vlm ; General support routines
vlm=redir.vlm ; Redirector
vlm=print.vlm ; Print services, optional
vlm=netx.vlm ; Bindery, shell compatibility
; vlm=rsa.vlm ; DS, RSA encryption, optional
; vlm=auto.vlm ; DS, autoreconnect/retry, optional
; vlm=nmr.vlm ; Managment responder, optional
Netx
show dots=on
;# Below this line material is the same as for NetWare 3.x and for NETX
protocol KERMIT
bind ne2000
Link Support
Buffers 6 1600
MemPool 2048
Link Driver NE2000
INT 5
PORT 360
FRAME Ethernet_II
Protocol IPX 8137 Ethernet_II
Protocol IP 0800 Ethernet_II
Protocol ARP 0806 Ethernet_II
Protocol RARP 8035 Ethernet_II
Please notice several things about this file. Items must be spelled as shown,
indented items must be indented (with a tab for SMC drivers), and flush left
items must be flush left. There is no, none, zero, creativity permitted in
this material, and that applies especially to the indented protocol lines.
IP is not IPX, so don't get them mixed up. Please type carefully.
Ethernet clients must use Ethernet_II frames for TCP/IP work (IP, ARP, and
RARP). Token Ring clients will use TOKEN-RING_SNAP for the frame kind with
IP, ARP, and RARP. The protocol ident values are the same as above.
LINK DRIVER TOKEN
INT 3
FRAME TOKEN-RING
FRAME TOKEN-RING_SNAP
PROTOCOL IPX E0 TOKEN-RING
Protocol IP 0800 TOKEN-RING_SNAP
Protocol ARP 0806 TOKEN-RING_SNAP
Protocol RARP 8035 TOKEN-RING_SNAP
Arcnet clients will use NOVELL_RX-NET for the frame kind, and the protocol
ident values will be D4 for IP, D5 for ARP, and D6 for RARP, rather than 0800
etc, as per RFC-1201.
LINK DRIVER SMCARCWS
INT 3
PORT 300
MEM D0000
Frame NOVELL_RX-NET
Protocol IPX FA NOVELL_RX-NET
Protocol IP D4 NOVELL_RX-NET
Protocol ARP D5 NOVELL_RX-NET
Protocol RARP D6 NOVELL_RX-NET
Which board will Kermit (or IPX or other application) use if two or more boards
are available? Although one would think the board could be selected by placing
the Protocol IP, etc, lines under the desired Link Driver section, such is not
the case; those lines tell LSL the frame kind to associate with the protocol
(say IP) but not the board. The frame lines are associated with particular
boards, however. By default, the application chooses "the first board"
offering a suitable frame, regardless of whether or not the Protocol IP, etc,
lines are present for that board. "First" refers not to the contents of NET.CFG
but to the order in which board drivers are loaded at DOS level. So the
indented protocol lines tell ODI which frame a protocol needs, and a TYPE to
use for recognizing packets, but the lines do not identify a particular board.
To target a particular board, a separate main section is used in NET.CFG. The
section starts with the word Protocol against the left margin and has Bind
indented beneath it, like this -
Protocol Kermit Identifies Kermit section of NET.CFG
bind SMCPLUS Bind to SMCPLUS board driver
When a board name is used more than once then the alternative form is to use
a board number in place of the name:
Protocol Kermit
bind #2 bind to the board loaded second
Kermit considers the text in these sections to be case-insensitive. The
#<digit> construction must not have a separation between the number sign (#)
and the digit. The #<digit> case is normally used when two or more boards share
the same driver and thus are not distinguishable by name alone. Note that
IPXODI now can use only the #number form.
A sample STARTNET.BAT file might look like this:
@echo off run quietly
c:\lsl >nul LSL is always loaded before boards
c:\smcplus.com >nul SMC/WD8003E board, the first
c:\exos.com >nul EXOS-205T board, the second
rem c:\odinsup Odinsup can coexist with Kermit
rem c:\odipkt 0 96 Odipkt can coexist with Kermit
c:\ipxodi >nul IPX is always loaded after boards
rem echo Starting network... may be needed to help some drivers
c:\bnetx ps=my-preferred-server > nul
rem (Packet Burst mode) NETX loads after IPX
@echo on
If both EXOS and SMCPLUS boards offer frame Ethernet_II Kermit will choose the
first loaded board, SMCPLUS, in the absence of a "bind" command. Putting the
section "Protocol Kermit, bind <board name or number>" anywhere in NET.CFG
selects a particular board for Kermit.
(1.3) THE NOVELL SLIP_PPP DRIVER
Novell provides a combined SLIP/PPP async ODI board driver and separate dialer.
The ODI configuration file NET.CFG needs sections as shown below to support
Kermit and SLIP_PPP.
Protocol KERMIT
Bind SLIP_PPP
Link Driver SLIP_PPP
DIRECT YES
BAUD 9600
OPEN ACTIVE
;; TCPIPCOMP VJ <<< Optional Van Jacobson compression
PCOMP YES
ACCOMP YES
PORT 2F8 << serial port details, COM2 here
INT 3
FRAME SLIP << choose SLIP or PPP, not both
;; FRAME PPP
Protocol IP 0800 SLIP << required for Kermit
;; Protocol PPP 0800 PPP << alternative, with PPP
Dialing the phone is separate from loading the ODI components. Once those
components are loaded the phone may be dialed with Novell's Dialer program (see
Netwire archives for LWP/DOS updates; archives include Compuserve,
ftp.novell.com, and official mirrors such as netlab2.usu.edu). Kermit itself
can be used to dial the phone, and in many cases it can do so after SLIP_PPP is
loaded (but you will need to tell Kermit the port details via "SET COM1 port
irq" because SLIP_PPP will try to hide them for safety). The remote host may
say or your notes will be needed to find out the current IP number.
Further details are given in the documentation for Lan WorkPlace for DOS and in
the NetWare 3.12 and 4.02 operating systems. The latter pair are available
across the net from the sites mentioned above, directory EPUB.
(1.4) THE TELEBIT PPP DRIVER
Telebit provides an ODI compatible PPP driver with their NetBlazer modem pool
product. That driver needs a section of ODI configuration file NET.CFG as
shown below in the ODIPPP section. The driver has a feature of reporting back
the IP number to be used in a PPP session and writing it into an application
part of NET.CFG. Kermit's part is shown below, and the MYIP line is ready to
receive the IP number. The IPCP line tells the PPP driver the syntax to be
used when locating Kermit's MYIP line, and the constuction must be as shown
below in the IPCP line.
Kermit can be told to look at the MYIP line for its IP address by command SET
TCP ADDRESS Telebit-PPP. Notice also that the driver name to bind to is
"telebit", not ODIPPP unfortunately (a Telebit design "feature").
Protocol KERMIT
Bind telebit
MYIP <<< ODIPPP fills in IP number here
Link Driver ODIPPP
Frame PPP
Protocol IP 0800 PPP
Protocol IPX 0000 PPP
Protocol ARP 0806 PPP
Protocol RARP 8035 PPP
IPCP DYNAMIC "PROTOCOL KERMIT: MYIP:"
An example batch file to startup this combination is shown below.
@echo off
set nwlanguage=ENGLISH
comppp pppmar94.jrd << pppmar94.jrd is a personalized Telebit config file
lsl.com << serial part is going, now start ODI material
odippp << ODI MLID (board driver), Telebit's PPP here
ipxodi /d << /d omits diagnostic part, to save memory
vlm /mX << /mX loads VLMs into extended (raw) memory
@echo on
The COMPPP driver reads configuration file PPPMAR94.JRD (or your file name) and
makes a telephone connection before exiting back to the .BAT file to load the
ODI components.
CHAPTER 2. SHIMS.
Some interface standards are not supported directly by Kermit. In such cases,
we insert what is known as a "shim" (a term familiar to carpenters) between the
board driver and Kermit, which fools Kermit into thinking it is one of the
driver types that it knows about.
An example is NDIS (Network Driver Interface Specification) from Microsoft and
3COM. You probably have NDIS drivers installed if you are using Banyan Vines,
LAN Manager, DEC PATHWORKS, AT&T STARGROUP, some cases of Windows for
Workgroups, etc. Like ODI, NDIS gives a uniform interface to the application,
independent of the networking method, but a different one from ODI.
To use Kermit over NDIS, we insert the shim called DIS_PKT9. It talks NDIS on
one side and packet-driver on the other. Expect Packet Driver applications to
work properly with this shim only if the board is Ethernet; there is no
general frame-conversion facility.
Here is a section of NDIS configuration file PROTOCOL.INI. Several important
points about this need to be noticed:
. Spelling must be correct.
. The names in [square brackets] must be those specified by the various
vendors, including the [pktdrv] one for DIS_PKT9.
. The right side of the "DRIVERNAME=" clause must be as given by the vendor
(pktdrv$ for dis_pkt9); it is not a filename. The drivername string is
written into the code of the driver; no user choices.
. The right side of the "BINDINGS=" clause is a name which appears elsewhere
in square brackets, and for DIS_PKT9 it is the square bracket name for a
board driver.
; Packet Driver protocol users tie in here, dis_pkt9 section
[pktdrv]
drivername = pktdrv$
bindings = wd8003
intvec = 0x60
; chainvec = 0x66 ; chaining to another Packet Driver is unused
; AT&T StarGROUP protocol stack ties in here via name ATTISO$
[attiso]
drivername = ATTISO$
bindings = wd8003
nsess = 5
ncmds = 14
use_emm = n
;Western Digital EtherCard PLUS Family Adapter, WD8003E in this case
[wd8003]
drivername = MACWD$
irq = 7
ramaddress = 0xCA00
iobase = 0x280
receivebufsize = 1536
Lengthier examples are presented in text file DIS_PKT9.DOC.
Similarly, there is a shim called ODIPKT, which makes an ODI driver look like a
packet driver. This is not normally needed by Kermit except when running in
Windows (explained in Chapter 3).
Please note that the introduction of Windows For Workgroups (WFW) 3.11 has
changed the way networking drivers are loaded and which kind of drivers, NDIS
v2 real mode or NDIS v3 protected mode. This is explained more fully in
Chapter 8, below.
CHAPTER 3. WINDOWS.
Windows complicates matters for us by moving Kermit around in memory and/or
swapping it in and out, and also by disguising the address of its network
buffers (in technical terms, providing a virtual address space when the the
packet driver must be given actual physical addresses). The latter case occurs
under Windows in Enhanced Mode, when Windows loads Kermit in "high memory".
If you paid attention to Chapter 1, you can see why this might be a problem.
The board driver has been given a buffer address to use for incoming packets,
but Kermit's buffer isn't really there -- Kermit has been moved, or it is in
high memory, or it is swapped out. When the driver writes the data to the
address, it is writing it over something else -- another application, a disk
buffer, it could be almost anything, with results ranging from bad to worse.
There are two ways around this. First, you can tell Windows to "Lock
Application Memory" for Kermit -- that is, once having loaded Kermit into
memory, leave it there and don't move it or swap it out. This is a .PIF file
option, good for Kermit but bad for your other applications, which have less
memory available to them (not only because Kermit is hanging on to its own
piece, but because the remaining memory might therefore be fragmented).
The second method is to put the shim WINPKT on top of the Packet Driver.
WINPKT knows about Windows, traps the packet delivery, asks Windows to activate
our application (putting it back where it was at buffer handout time), and then
copies the packet safely to the application's buffer. WINPKT is sort of a way
to "lock in memory but only when needed."
The setup of a packet driver depends on the particular driver, but in general
one feeds it parameters on the command line:
c:\wd8003e 0x60 7 0x280 0xd000
c:\winpkt 0x60
The first line loads a Packet Driver for a WD8003E Ethernet board, using
software interrupt 60 hexadecimal, with the board using hardware IRQ 7, port
280 hex, and shared memory starting at segment D000 hex. The second line loads
WINPKT, telling it to form a new Packet Driver interface at the same interrupt,
hiding the real packet driver from the application (see NETWORKS\WINPKT.DOC for
details). Now you see why we call it a shim.
WINPKT only works over packet drivers, not ODI drivers or NDIS drivers. Thus,
if you have an ODI or NDIS driver, you must run the appropriate packet-driver
simulation shim over it, and then run WINPKT over that.
Please note that there are two WINPKT programs: the two-argument one (included
on the Kermit diskette as WINPKT9.COM) and the one-argument one described
above (WINPKT.COM). The one-arg WINPKT is newer, and works with Winsock (in
fact, it comes from the Winsock distribution) but, reportedly, is less stable.
If you have trouble with it when using Kermit, try the two-arg version:
c:\wd8003e 0x61 7 0x280 0xd000
c:\winpkt 0x60 0x61
Also note that the introduction of Windows For Workgroups (WFW) 3.11 has
changed the way networking drivers are loaded and which kind of drivers, NDIS
v2 real mode or NDIS v3 protected mode. See Chapter 8.
CHAPTER 4. SETTING UP KERMIT'S TCP/IP CONFIGURATION
This chapter discusses TCP/IP setup *after* you have successfully coped with
the driver issues, and assumes some knowledge of TCP/IP. See "Using MS-DOS
Kermit", Chapter 16, for additional explanatory material, or Douglas Comer's
book(s) "Internetworking with TCP/IP" (Prentice-Hall), or show this material to
your network manager. Also consult the networks section of MSKERM.BWR
(KERMIT.BWR) for additional detail.
Before Kermit can use the TCP/IP network, you must use SET TCP/IP commands to
supply Kermit with the necessary details about it. Check with your network
manager to find out the correct values for these commands, and then put them
in your MSCUSTOM.INI file. Don't make them up! Automatic downloading of your
TCP/IP network configuration via BOOTP is recommended.
You can view your TCP/IP settings with the SHOW COMMUNICATIONS command.
Here are the commands for configuring Kermit for TCP/IP connections:
SET TCP/IP ADDRESS {<IP-address>, BOOTP, RARP, TELEBIT-PPP}
Tell Kermit your PC's IP address (required). If your local network has a
BOOTP or RARP server, you can SET TCP/IP ADDRESS BOOTP or RARP to have the
server download your IP address automatically. Examples:
SET TCP/IP ADDRESS 128.59.77.23 ; My IP address, fully specified
SET TCP/IP ADDRESS BOOTP ; Get my address from a BOOTP server
SET TCP/IP ADDRESS RARP ; Get my address from a RARP server
SET TCP/IP SUBNETMASK <IP-address-mask>
Tell Kermit which portion of an IP address corresponds to your physical
network. The default is 255.255.255.0. A correct value is essential; it is
used by Kermit to tell whether an IP address is on your physical network
or must be accessed through a gateway. Incorrect values prevent successful
communication. The subnetmask can be downloaded by BOOTP.
SET TCP/IP BROADCAST <IP-broadcast-address>
Tell Kermit the IP address to use when sending IP broadcast messages, for
example to the BOOTP server, and to recognize incoming ones. The default is
255.255.255.255, meaning "my own physical network". Change this parameter
if your BOOTP server is on a different subnet of your local network, or if
your local network uses the old 4.2 Berkeley UNIX convention of 0's rather
than 1's for IP broadcast addresses. An incorrect value can prevent
successful communication, or worse. This parameter can NOT be downloaded
from a BOOTP server -- you can't reach the BOOTP server in the first place
unless you already have the correct broadcast address.
SET TCP/IP PRIMARY-NAMESERVER <IP-address>
The IP address of your network's primary nameserver, which translates
hostnames into IP addresses. Required if you want to use host names rather
than numeric IP addresses in your SET PORT TCP/IP commands. Example:
SET TCP/IP PRIMARY-NAMESERVER 128.59.77.1
Can also be downloaded automatically by BOOTP.
SET TCP/IP SECONDARY-NAMESERVER <IP-address>
The IP address of your network's secondary nameserver, used by Kermit if the
primary nameserver is unavailable. If no nameserver is reachable, use IP
host numbers rather than names in your SET PORT TCP/IP commands. Nameserver
addresses can also be downloaded automatically by BOOTP.
SET TCP/IP GATEWAY <IP-address>
The IP address of the gateway between your local area network and the rest of
the Internet. Required if you want to communicate outside of your immediate
local network. Can also be downloaded automatically by BOOTP.
SET TCP/IP HOST {<IP-address>, <IP-hostname>}
The default host for SET PORT TCP/IP commands. SET PORT TCP/IP <host> sets
this too, so the next SET PORT TCP/IP command remembers it if you omit the
host. This allows you to switch back and forth between serial and TCP/IP
connections.
SET TCP/IP DOMAIN <domain-name>
IP domain name for your organization or department, for example columbia.edu
for Columbia University, cc.columbia.edu for the Computer Center at Columbia
University. This lets you refer to hosts on your local network with
nicknames, for example watsun rather than watsun.cc.columbia.edu. When a
hostname given in your SET PORT TCP/IP command can't be found, Kermit appends
the domain and tries again. If it still can't be found, Kermit trims the
leftmost field from the domain and tries again, and so on until the host is
found or the domain name is used up:
SET TCP/IP DOMAIN cc.columbia.edu
SET PORT TCP/IP oofa.cs
Kermit tries (in this order): oofa.cs, oofa.cs.cc.columbia.edu,
oofa.cs.columbia.edu, oofa.cs.edu. Version 3.13 of MS-DOS Kermit can get
the domain name from a BOOTP server that has been upgraded to RFC1395 level.
SET TCP/IP PACKET-DRIVER-INTERRUPT {<number>, ODI}
MS-DOS Kermit normally searches for the packet driver beginning at interrupt
\x60 and going up the \x80. You can use this command to disable MS-DOS
Kermit's automatic search and specify a particular interrupt number, for
example, SET TCP PACKET-DRIVER \x63. If you specify "ODI" instead of an
interrupt number, Kermit uses ODI rather than packet-driver conventions for
communicating with the network board driver.
SET TCP/IP MSS <number> (version 3.14)
Maximum TCP Segment Size, to override built-in defaults of 1046 bytes
local and 536 bytes if routed (plus 40 bytes TCP and IP headers). This
may be considered MTU (maximum transmission unit) but smarter because
TCP informs the other side. Maximum size is 1460 bytes (1500 byte pkt).
SET TELNET TERM-TYPE <name>
Normally MS-DOS Kermit sends the name of terminal it is currently emulating,
for example, "VT320", in response to a terminal-type request from the remote
TELNET server. Use this command to supply any terminal-type name you want.
SET TELNET NEWLINE-MODE {OFF, ON}
During terminal emulation on a TCP/IP connection, MS-DOS Kermit follows the
TELNET specification and transmits carriage and line feed (CRLF) whenever
you type carriage return (the Enter key). If the remote TELNET server is
confused by this (i.e. it does not follow the TELNET specification), use SET
TCP/IP NEWLINE-MODE OFF to make Kermit omit the line feed.
SET TELNET MODE {NVT-ASCII, BINARY}
NVT-ASCII is the normal TELNET mode; you may also select BINARY if needed.
Mode selection is effective only when starting a connection.
SET TELNET DEBUG-OPTIONS {ON, OFF}
Whether to display TELNET options negotiation on the screen. Default is
OFF, don't display them. When ON, you can view the negotiations on the
screen, and you can capture them in screen dump or session log files, or
print them, just like any other CONNECT-mode screen text.
Sample TCP-related commands for MSCUSTOM.INI (substitute your own correct
values for the ones shown here!):
SET TCP/IP ADDRESS 128.59.77.23 ; Your PC's IP address
SET TCP/IP SUBNETMASK 255.255.255.0 ; Your local net's subnet mask
SET TCP/IP GATEWAY 128.59.77.1 ; The gateway on your local net
SET TCP/IP PRIMARY-NAMESERVER 128.59.77.19 ; Nameserver on your local net
SET TCP/IP SECONDARY-NAMESERVER 128.59.78.12 ; Fallback nameserver
SET TCP/IP DOMAIN bar.baz.edu ; Your local IP domain name
Then, to make a TCP/IP connection:
SET PORT TCP/IP foo ; Connect to foo.bar.baz.edu
CONNECT
The TCP/IP connection is not actually established until the CONNECT (or INPUT,
OUTPUT, PAUSE, or similar) command is given, at which time some progress
messages are displayed on your screen. If connection is immediate, you won't
see these messages, but if the connection fails, they will remain visible so
you'll know why it failed.
Logging out from the remote host will normally terminate your session and
pop you back to the MS-Kermit> prompt. The HANGUP command, or Ctrl-]H during
terminal emulation, should do the same thing.
If your network has a BOOTP server, Kermit can learn its own IP address, as
well as the nameserver addresses, gateway address, subnet mask, and other
information from the server if the BOOTP server's database has an entry for
your PC that contains these items. The BOOTP server knows it's your PC making
the request because it has your network interface board's hardware address in
its database, and BOOTP requests contain the network board's hardware address.
To enter your PC in the BOOTP database, use the PKTADDR program (supplied on
your Kermit diskette) to find out the hardware address, for example:
C:\KERMIT\NETWORKS\PKTADDR 0x60
My Ethernet address is 00:00:1E:0C:AA:1F
Give this address to your network administrator, along with the adapter type
(Ethernet, Token Ring, etc), your PC's IP host name and address (if you know
it, or ask your network administrator to assign these to you -- DON'T MAKE THEM
UP!). Then, the only commands you need to set up your TCP connection are:
SET TCP/IP SUBNETMASK 255.255.254.0 ; Only needed if different from default
SET TCP/IP BROADCAST 0.0.0.0 ; Only needed if different from default
SET TCP/IP DOMAIN bar.baz.edu ; (3.12 and earlier, or pre-RFC1395)
SET TCP/IP ADDRESS BOOTP ; Get my TCP/IP configuration from BOOTP
SET PORT TCP/IP <name-or-number> ; Establish a connection
CONNECT
Notes:
. The SET TCP/IP BROADCAST command is not needed unless you have a nonstandard
network that uses all-zeroes for IP broadcasts, rather than all ones.
. The SET TCP/IP SUBNETMASK command is necessary only if your subnetwork uses
a different mask than Kermit's default, which is 255.255.255.0. These
commands should go in your MSCUSTOM.INI file.
. The SET TCP/IP DOMAIN command is not needed if you have MS-DOS Kermit 3.13,
the BOOTP server is at RFC1395 level (January 1993), and its BOOTP database
contains your PC's domain name.
Thus, in many cases, your TCP/IP setup can be as simple as this:
SET TCP/IP ADDRESS BOOTP
Kermit sends an IP broadcast message to find the BOOTP server. If you also have
given SET TCP/IP ADDRESS, SUBNETMASK, PRIMARY-NAMESERVER, SECONDARY-NAMESERVER,
and GATEWAY commands, their values will be superseded by any values sent by the
BOOTP server.
BOOTP service has the great advantage that PC network configurations need be
maintained in only one central file, rather than on many individual PCs. If
the BOOTP server is unavailable, users can still enter the required information
with SET TCP/IP commands.
If your network has a RARP server, Kermit can learn its own IP address from the
server, if the RARP server's database contains an entry for your PC. The RARP
server can't tell you the subnetmask, nameserver addresses, or gateway address,
so you will still need these items in your MSCUSTOM.INI file. However,
everybody on the same physical network can use the same TCP/IP network
parameters in their MSCUSTOM.INI files because the SET TCP/IP parameters other
than ADDRESS are all the same.
HINT: To avoid typing long SET PORT TCP/IP commands, define a macro for each
host you commonly connect to:
DEFINE OOFA SET PORT TCP/IP OOFA.XYZ.COM, PAUSE 0, IF SUCCESS CONNECT
Put these definitions in your MSCUSTOM.INI file. Then just type "OOFA" to
connect to TCP/IP host OOFA.XYZ.COM. The standard sample MSCUSTOM.INI file
already defines a TELNET macro for you:
; TELNET macro, and macros for telnetting to particular hosts
; using appropriate terminal type.
; \%1 = IP host name or address
; \%2 = TCP port (optional, default is 23)
; \%3 = terminal type (optional)
;
define telnet -
set port tcp \%1 \%2,-
set flow none,-
if def \%3 set term type \%3,-
pause 0, if fail end 1, connect
You can use this to easily make a connection to a particular host:
TELNET FOO
and you can optionally specify a nonstandard (i.e. other than 23) TCP port:
TELNET FOO 2000
and you can also (optionally) specify a terminal type to use:
TELNET FOO 23 HEATH-19
For information about multiple sessions, see KERMIT.UPD.
MAKING SLIP CONNECTIONS
To make a SLIP (Serial Line IP) connection, follow these steps:
1. SET PORT 1
(or whichever serial port you will be using for the SLIP connection).
2. SET SPEED 19200
(or whatever speed you will be using)
3. SET FLOW RTS/CTS (or NONE)
Don't use Xon/Xoff flow control on a SLIP connection! SLIP and Xon/Xoff
are incompatible with each other.
4. Establish a connection to the terminal server or other device that will be
providing SLIP service. Determine the IP address and other information
(e.g. gateway address) that it has assigned to you. Normally, these are
displayed on your screen before the terminal server enters SLIP mode.
5. Escape back to the MS-Kermit prompt and EXIT from MS-DOS Kermit. The
connection is left open.
6. Start the SLIP8250 driver, telling it to use the same port (hex address and
IRQ number must be supplied) and speed (decimal) used in (1) and (2) above,
and to use hardware flow control (-h), for example:
slip8250 0x60 -h slip 4 0x3f8 19200
7. Start MS-DOS Kermit again. Do NOT give it a SET PORT command for the
serial port where SLIP is running. Instead, give the SET TCP ADDRESS,
SET TCP GATEWAY, and other necessary SET TCP commands. Then, to make
a connection, use SET PORT TCP <address>, where <address> is the IP
hostname or address of the IP host you want to connect to.
Note: Even though you might think it's silly to exit from Kermit and then start
it again, when you could simply start the SLIP driver from the Kermit prompt,
there is a reason: starting a driver from inside an application results in
memory fragmentation.
Note 2: In version 3.13 and later, it is also possible to obtain BOOTP service
on a SLIP connection if your SLIP server is configured to provide it (for
example, Cisco terminal servers can do this). Also, MS-DOS Kermit's SHOW
COMMUNICATIONS command will display the IP address of the BOOTP server.
CHAPTER 5. ACCESSING EXTERNAL TCP/IP PROTOCOL STACKS
MS-DOS Kermit can also work with TCP/IP protocol stacks from other vendors, but
it cannot be built with support for stacks which require a proprietary library.
Kermit is a DOS program, Windows-aware, but not a pure Windows program. Thus
it cannot use the various Winsock Windows TCP/IP implementations.
(4.1) FTP Software Inc. PC/TCP.
Use the FTP Telnet interface TNGLASS and run Kermit from it.
tnglass host.domain <optional port> -c0 -e kermit.exe
This example uses communication port 1 (-c0) so tell Kermit SET PORT BIOS1,
for example:
tnglass host.domain <optional port> -c0 -e kermit.exe set port bios1, stay
The TNGLASS interface causes the Enter key to send <CR><LF> pairs, as
specified in the Telnet protocol specification. This may cause some problems
in connecting to UNIX machines. Using "stty igncr" might help, along with
"set key \284 \10" to re-map the Enter key to send a newline.
(4.2) Novell Lan WorkPlace for DOS with TELAPI
start LWP/DOS and run the TCPIP.EXE program, and also run TELAPI.EXE:
kermit
set port telapi host.domain <optional port>
connect
This uses Kermit macro named "telapi" which is defined as:
def telapi run tsu -o \%1 -p \%2 k1,run tsu -a k1 1,set port novell
TSU is a LWP/DOS transitor helper program doing resolution of IP names to IP
numbers, -o is open to host in first Kermit argument \%1, -p using port in
second Kermit argument \%2 (defaults to 23, Telnet), and assign TSU label k1 to
the connection. Then run TSU again to -a attach connection k1 to serial port
simulator for Bios com1 (1). Finally tell Kermit to use fast transmission
method SET PORT NOVELL. Other choices are SET PORT 3COM and SET PORT BIOS1
(slowest). If other serial ports are used then tell Kermit SET PORT BIOSn.
Kermit needs ODIPKT only if running in Windows enhanced mode, and it needs
WINPKT then too. Otherwise it runs fastest straight over ODI (force use of ODI
over an available Packet Driver by SET TCP PACKET ODI). If Kermit is run over
LWP then it can do so in Windows too.
If you want to use Kermit's built-in TCP/IP stack instead of Telapi, you can
also unload the LWP/DOS TCP/IP stack and then run Kermit. It unloads smoothly
and can be reloaded as smoothly.
(4.3) Beame and Whiteside TCP/IP
Kermit uses the loaded B&W TCP/IP drivers to communicate. The command SET PORT
BWTCP Host Port defines the connection. Host is an IP number, not a name, and
port is an optional TCP port number (defaults to 23, Telnet). Here is a section
of config.sys which loads the B&W resident drivers
DEVICE=C:\BWTCP\ETHDEV.SYS
DEVICE=C:\QEMM\LOADHI.SYS C:\BWTCP\TCPIP.SYS 1514
CHAPTER 6. OTHER NETWORKS
(5.1) Meridian Technology SuperLAT
Load the SuperLAT driver according to the Meridian instruction manual. Kermit
can talk to the driver directly via command SET PORT SUPERLAT host. Host is
the name of a LAT host, or "*" to see a list of available hosts. An Interrupt
14h simulator is also available from Meridian, which Kermit can use via SET
PORT BIOS1.
When using SuperLAT over ODI drivers please add the following indented Protocol
LAT line to your NET.CFG file, as shown in the example below. The frame kind
should be Ethernet_II.
Protocol LATDRVR
bind #1 << use these two lines only if multiple boards
Link Driver NE2000
INT 5
PORT 360
FRAME Ethernet_II
Protocol IPX 8137 Ethernet_II
Protocol LAT 6004 Ethernet_II
(5.2) Novell NASI/NACS
Load the NASI.EXE file (or equivalent) on the client PC, then run Kermit.
Command SET PORT NOVELL(NASI) chooses the comms channel. You should see a
connection menu from the NASI.EXE file when you begin Connect mode; that is a
session manager external to Kermit. Kermit supports NASI/NACS v2, but in many
cases it also works fine with v3.
(5.3) DIGITAL PATHWORKS
Kermit can use either LAT or CTERM connection facilities of Pathworks. It tries
a LAT connection first (LAT is not routeable so only local nodes are reachable
this way) and then CTERM (regular DECnet). If only LAT or CTERM support modules
are loaded with Pathworks, then that limits Kermit's choices. The command SET
PORT DECNET host (or * to see list of LAT hosts) chooses the communications
channel.
LAT tables in clients are frequently too small to hold all host names
advertized on the net, so please review the PATHWORKS documentation and enlarge
the table to match your site.
The PATHWORKS LAT module has distinct trouble if too many bytes are sent by the
PC in too short a time, and there's no feedback about what is "too many" at any
given time. To avoid the link dropping we recommend using medium-small file
transfer packets, say 256 bytes, and only two window slots.
LAT comes in at least two much different flavors in PATHWORKS, depending on
version number of PATHWORKS. Kermit tries to discover which is which and act
properly, but there might still be nuances which lead to trouble. MS-DOS
Kermit 3.14 is tested with PATHWORKS v4.2, the latest available to us.
(5.4) TES, by Interconnections, Inc.
Kermit works with older and the latest TES client programs. It accommodates
both kinds transparently to the user. Command SET PORT TES host (or * to see
all available hosts) chooses the communications channel.
(5.5) General "Int 14h" Interceptors
Many network products are issued with what as known as an Int 14h support
program. Interrupt 14h is the BIOS support for serial ports, and it is very
simple. Kermit supports this via the command SET PORT BIOSn where n is 1 to 4.
There are other variations on Int 14h, most well known of which is 3COM(BAPI).
Older TES uses Int 14h too. Kermit supports these through commands SET PORT
3COM(BAPI) and SET PORT TES.
Bios Int 14h does not provide feedback about baud rate, has no facility to send
a BREAK, does not provide information about a network link closing, has no
interrupt facility, etc. Loss of a network connection is not reported to
Kermit. It is a very simple interface. Further, it is a markedly slower path
for networking than say 3COM(BAPI).
It is important to distinguish these Int 14h drivers from real serial port
hardware. For Kermit, the real hardware is touched by commands SET PORT
COM1..COM4 and synonyms SET PORT 1..4. Int 14h drivers will not be used if
Kermit is told to use the hardware. Be sure to choose the proper kind of
connection.
UnixWare NVT offers an Int 14h interceptor which Kermit may use. Please see
your UnixWare documenation for details.
CHAPTER 7. INTERRUPTS AND MEMORY MANAGEMENT
Network communication problems are often really systems conflicts of one kind
or another. Some useful tips are summarized below.
Hardware IRQ (Interrupt) wires are not sharable. Only one device can connect
to an IRQ wire even if other devices are "not active." No program can clearly
identify which device is connected to an IRQ wire, you must look inside the
machine. The MSD program by Microsoft shows only "conventional" assignments,
not actual usage.
Network LAN adapters can use shared memory to transfer packets between board
and driver. That shared memory MUST be protected against memory management
programs, including Windows. Exclude that memory at both DOS level and again
in Window's SYSTEM.INI file [386Enh] section; see typically "exclude=" commands
in your memory managment program manual, and the examples below. SYSTEM.INI
excerpt, WFW 3.11 -
[386Enh]
...
EMMPageFrame=EC00 << expanded memory page frame
EMMExclude=C000-C007 << video bios signature area
EMMExclude=A000-BFFF << video adapter work area
For greater detail about memory management, read section 19 of KERMIT.BWR.
CHAPTER 8. WINDOWS FOR WORKGROUPS 3.11
This chapter contains collected hints and tips regarding how to use MS-DOS
Kermit to make TCP/IP connections from Microsoft Windows for Workgroups 3.11.
You might encounter contradictions among the various texts, but this does not
mean that the contradicting items are necessarily wrong (or right) -- only that
this is yet another extremely complicated and obscure topic, and that differing
approaches are possible.
------------------------------
TEXT #1
Windows-for-Workgroups (WFW) networking is built upon LAN Manager NDIS board
handler software. MS-DOS Kermit can make TCP/IP connections from within
Windows for Workgroups by using the DIS_PKT9.DOS and WINPKT.COM shims that come
on the Kermit disk. For WFW 3.10 and earlier, NDIS drivers are normal
CONFIG.SYS device drivers, and DIS_PKT9 instructions apply. For WFW 3.11 and
later, which uses its own built-in protected-mode NDIS 3.0:
. In the SYSTEM.INI file, [Network Drivers] section, add DIS_PKT9.DOS at the
end of the "transport=" line. Make sure you are using DIS_PKT9 as
distributed on the MS-DOS Kermit diskette, and not DIS_PKT11 or any other
version. See below about PROTOCOL.INI.
. Also in the [Network Drivers] section of SYSTEM.INI file, include
"LoadRMDrivers=yes". This means that the NET START command loads Real Mode
(RM) Drivers. DIS_PKT9.DOS is a Real Mode Driver.
. In AUTOEXEC.BAT, use NET START.
. As with all network connections in Windows, you must either lock Kermit in
memory (Check Lock Application Memory in the KERMIT.PIF file) or else load
the WINPKT shim "on top of" DIS_PKT9, following the instructions in
WINPKT.DOC.
------------------------------
TEXT #2
A Noddy's Guide to Kermit over TCP/IP under Windows for Workgroups 3.11
Gisbert W. Selke
WIdO, Bonn, Germany, January 1994
This document contains a brief outline of the problem and a step-for-step guide
on how to overcome it. If you are only interested in a quick solution, feel
free to skip ahead to section 2.
1. Where's the problem?
Running multiple network protocols over a single Ethernet adapter has always
been a problem, since each application tends to try and gain complete control
over the board. A solution has been developed, back in the good ol' DOS days,
by FTP Inc., in the form of so-called packet drivers. The idea behind this
approach is beautifully explained elsewhere [1], so I will not attempt to give
a complete description here. Suffice it to say that a resident module -- the
packet driver -- grabs hold of the networking board, and all software wanting
to access the Ethernet talks to the packet driver instead of directly to the
board. This driver hands the network packets of each application down to the
networking board, and distributes packets arriving over the network back to the
individual applications, keeping track of which application uses what protocol.
Using this strategy, one could, e.g., concurrently run TELNET and Netware.
As time went by, other solutions were developed that basically served the some
purpose; the non-proprietary nature of the packet driver approach and the
availability of them for a huge range of adapter types ensured their
popularity. The situation grew worse with the introduction of Windows, however;
with its task-switching capabilities, the demand for multiple protocols grew,
while at the same time Windows' habit of shifting resident programmes around in
memory made it more difficult for applications to find the packet driver, which
had suddenly turned into a moving target. Again, a non-proprietary solution
was found: on top of the original packet driver, a fake winpacket driver was
loaded, whose only purpose was to overcome the shifting around in memory.
In the meantime, Microsoft had discovered that a great number of places used
this kind of software which had Not been Invented There in Redmond; so it was
decided to re-invent the wheel and dub it NDIS. Of course, nobody had to pay
any attention, really ... But, to simplify things for people who, for some
reason, had to employ NDIS drivers, a shim was developed -- and given to the
public for free -- that made NDIS look like a packet driver. So one could
continue to run, say, TCP/IP, Netware and the Microsoft networking method named
NetBEUI.
Then, however, Windows for Workgroups 3.11 came out, and all the magic
incantations that were necessary in order to run NDIS, and to make it
accessible to other software, changed again, with all the documentation buried
somewhere deep down on CD-ROM, if at all. Since Microsoft, of course, did not
supply, say, TELNET or FTP clients, a solution had to be found -- that was the
situation at our site early in January 1994.
Without the many pieces of freely available software mentioned above, and
without the profound networking wisdom of and support by Joe Doupnik, we would
either have had to abandon our host computers or else turn away from MS Windows
for good.
Instead of delving into the merits of each of these possibilities, it is
preferable to explain the steps that are necessary for a successful setup of
Windows for Workgroups, so that its built-in incompatibilities with TELNET/FTP
applications (like, e.g., MS-Kermit 3.13) do not show up.
2. The Nine Steps on the Stairway to Network Heaven
Requirements:
* You have the Windows for Workgroup 3.11 (WfW for short) setup diskettes.
* You have MS-Kermit 3.11 (or later) already installed on your disk.
(Applications like NCSA TELNET, QVTNet etc. will also do; it is assumed that
the application is configured for packet driver use, where necessary.)
* You have DIS_PKT9.DOS (this is version 1.09) and WINPKT.COM (version 9.x or
later) (found, e.g., in the MS-Kermit distribution). You know which version
of WINPKT you have (if in doubt, execute it without parameters and see.)
Now follow these steps:
a) Remove all references to a packet driver from AUTOEXEC.BAT (or from
whatever batch file you used to start it from).
b) Install WfW properly.Once you get to the item of "Network Setup", you should
notice that WfW has recognized your network adapter and has installed
NetBEUI support. When prompted later to enter a network name for your
computer, go ahead and do so. At some point, you will be prompted to install
an NDIS driver appropriate for your kind of network adapter. If the driver
has been supplied with WfW, fine; if not, get out the support disk that came
with your adapter and hope there is an up-to-date NDIS driver there.
c) At the very end of installation, choose "Return to DOS".
d) Copy DIS_PKT9.DOS and WINPKT.COM to a suitable directory, e.g., \KERMIT, if
you have not done so before.
e) Use your favourite plain ASCII editor to edit file SYSTEM.INI which can be
found in your main Windows directory:
* Find the section "[network drivers]".There should be a line starting
"transport=" among the next few lines. Add ";C:\KERMIT\DIS_PKT9.DOS" to
the end of this line, without any intervening blanks. (If you have used a
different directory in the previous step, you should, of course, change
this entry accordingly.)
* If there is a line "LoadRMDrivers=No" in this section, change the "No" to
"Yes". If there is no such line, add a line "LoadRMDrivers=Yes".
* Save the changed file (making sure it is in plain ASCII format).
f) Use your favourite plain ASCII editor to edit file PROTOCOL.INI found in the
very same directory:
* Locate a section starting "[NetBEUI]".
There should be a line like this: "Bindings=foo$bar". If there is no line
starting with "Bindings=", you are in trouble, because networking support
has apparently not been properly installed. Go and call the Microsoft
Hotline in order to listen to some nice muzak.
* If there is such a line, memorize the value of this field (the "foo$bar"
part).
* Go to the end of the file, add a blank line and then a new section:
[PKTDRV]
DriverName=PKTDRV$
Bindings=foo$bar
IntVec=0x7E
It is a good idea to insert the name you remember from the previous step
instead of the word "foo$bar", of course. The value of 'IntVec' can be any
interrupt number that has been used with your old packet driver; in any
case, it should be in the range 0x61 to 0x7F (in C-style hex notation).
Remember the value you choose; you will need it below.
* Save the changed file (again making sure it is plain ASCII).
g) Use your favourite plain ASCII editor once again to change file AUTOEXEC.BAT
in your root directory:
* There should be a line "...Net Start" there. (If it is not, you're
probably in trouble anyway; cf. the helpful hints under f) in this
case). Change this line to read "...Net Start NetBind".
* Right after this line, add a new one with contents like this:
c:\kermit\winpkt 0x7E (if your WINPKT version is 11.x or later)
or
c:\kermit\winpkt 0x7D 0x7E (otherwise)
In the first case, the only argument should be the value you chose at the
end of the previous step. In the second case, the second argument should
be that value, while the first argument should be a hex number less than
the second argument.
* Save the changed file (yes, indeed, in plain ASCII).
h) Re-boot your computer -- you're done.
i) Check wether it worked:
* While still in DOS, run Kermit.
* Start Windows, insert Kermit into a program manager group, double-click
on it.
HINT: The applications and the packet drivers talk to each others using DOS
interrupts; hence, they must both know which interrupt vector to use. (Older
versions of WINPKT use two interrupts -- one to talk "upstream" to the
application, one to talk "downstream" to DIS_PKT or some other "real" packet
driver.) MS-Kermit finds the packet driver interrupt itself. If your
networking software must be configured for what interrupt vector number it
should employ (like NCSA TELNET/FTP must; look for a line like "ioaddr=0x7E" in
file CONFIG.TEL), be sure that the first -- or only -- argument to WINPKT
(cf. step g)) is specified.
3. Acknowledgements
We would have been completely lost were it not for Prof. Joe R. Doupnik, Utah
State University, USA, his wonderful assortment of long-range crystal balls,
and his amazing readiness to help others. Thanks also to the Kermit people of
Columbia University, New York, USA, in particular to Frank da Cruz, for their
support and their channelling of vital information. Duncan Phillips of
Staffordshire University, UK, succeeded first in what we were merely
attempting, and was very helpful in sharing his knowledge.
Finally, thanks to my colleagues who helped sorting out this mess, in
particular to Ernst-Peter Beyer, without whose ingenuity and patience I would
probably still be trying to find my way through a labyrinthine heap of windows.
References:
[1] Joe R. Doupnik: Packet Drivers, made simple. To be found, e.g., in the
Crynwr packet driver distribution as file PACKET.DOC
All trademarks etc. mentioned are owned by their respective owners.
Gisbert W. Selke
Wissenschaftliches Institut der AOK
Bonn, Germany
<gisbert@watsun.cc.columbia.edu>
------------------------------
TEXT #3
Windows for Workgroups v3.11 and DIS_PKT9.DOS
Joe R. Doupnik
jrd@cc.usu.edu
Utah State University
3 Feb 1994
Windows for Workgroups v3.11 introduces major changes to the network support
material. If you wish to use a Packet Driver program, such as MS-DOS Kermit
or one of the winsock DLLs, while within WFW then two supporting shims will be
need to be loaded before WFW starts. There are at least two situations to
consider and different shims are involved.
SITUATION 1: WFW runs over a LAN adapter dedicated to WFW.
This is the case we explore in detail below. The two shims needed are
DIS_PKT9.DOS and WINPKT.COM, both available by anonymous ftp from
netlab2.usu.edu [129.123.1.44] in directory \anonftp\drivers and from sites
carrying the Crynwr Collection of Packet Drivers. The important points are
that a Version 2 NDIS driver is required, not the newer Version 3 32-bit
protected mode NDIS kind, and that small edits will be needed to WFW text files
PROTOCOL.INI and SYSTEM.INI.
SITUATION 2: WFW runs over a Novell ODI handler.
The two shims needed are ODIPKT.COM and WINPKT.COM, both available from netlab2
above. Both are installed independently of WFW and no changes to WFW are
needed. DIS_PKT9 will not run in this environment because no NDIS V2 interface
is provided by WFW when using ODI. Instead ODIPKT provides the Packet Driver
interface on the top of ODI.
SITUATION OTHER: WFW runs over another network's handler.
We can't say much because the environment is not known to us. The general
guidlines about NDIS V2 support still apply.
Please notice that we deal only with DIS_PKT9.DOS and WINPKT.COM. If you have
another variation of DIS_PKT you will need to contact the persons responsible
for your variation. Similarly, people have circulated modified copies of winpkt
without source code or external identifying markings. The winpkt referred to
here uses two command line arguments and the entire package is bundled in
winpkt.zip as source code, doc, and executable. Both are available from netlab2
as cited above. If in doubt get these.
ODIPKT is on your Kermit disk.
Steps to follow after installing network support in WFW v3.11. This presumes
that WFW owns the network adapter (Situation 1 above).
1. Ensure that both PROTMAN.EXE and PROTMAN.DOS are in the WFW directory.
You may have to uncompress them from the WFW distribution media. Copy
files DIS_PKT9.DOS and WINPKT.COM there too.
2. Edit PROTOCOL.INI to insert the [pktdrv] section as shown below.
Changes to the intvec= and novell= lines are permitted. An NE2000
NDIS v2 board driver, MS$NE2000, is used in this example:
[pktdrv]
DriverName=PKTDRV$
bindings=MS$NE2000
intvec=0x63
novell=no
3. Edit SYSTEM.INI [network drivers] section to add ",DIS_PKT9.DOS" to the
transport= line, and to ensure an NDIS v2 netcard= driver has been given.
Please do not confuse this transport= line with a similar one in the
[enhanced] section; the [enhanced] section refers to 32-bit protected
mode material. An NE2000 board is used in this example.
[network drivers]
devdir=C:\WFW
LoadRMDrivers=Yes
transport=ndishlp.sys,*netbeui,dis_pkt9.dos
netcard=ne2000.dos
4. Before starting Windows issue DOS commands (once only)
NET START
WINPKT \x060 0x63 (example interrupts)
The first command energizes the NDIS V2 handlers, and the DIS_PKT9 banner
should be displayed ending with the Ethernet address of your board. NET.EXE
is in the WFW directory; also see next paragraph. The second command starts
Windows helper shim WINPKT, and that needs the Packet Driver (DIS_PKT9)
active beforehand.
A comment on the line "LoadRMDrivers=Yes." NET START reads file SYSTEM.INI
to obtain loading information, and the answer "Yes" tells it to run
PROTMAN.EXE that loads the drivers with PROTOCOL.INI supplying details. If
the answer were "No" then the Real Mode (RM) drivers would not be loaded or
available. However, if "No" were stated then we could give command NET
START NETBIND to run PROTMAN.EXE and get the same results as the "Yes" case.
SAMPLE WFW 3.11 PROTOCOL.INI FILE USING AN NE2000 ETHERNET BOARD
[network.setup]
version=0x3110
netcard=ms$ne2000,1,MS$NE2000,3
transport=ms$ndishlp,MS$NDISHLP
transport=ms$netbeui,NETBEUI
lana0=ms$ne2000,1,ms$ndishlp
lana1=ms$ne2000,1,ms$netbeui
[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP
[MS$NDISHLP]
DriverName=ndishlp$
BINDINGS=MS$NE2000
[NETBEUI]
DriverName=netbeui$
SESSIONS=10
NCBS=12
BINDINGS=MS$NE2000
LANABASE=0
[pktdrv] (dis_pkt9 section, use as shown)
DriverName=PKTDRV$ (spelling must be correct here)
bindings=MS$NE2000 (use board driver section name)
intvec=0x63 (Packet Driver interrupt to use)
novell=no (use novell=y if Ethernet_802.3)
[MS$NE2000] (NDIS v2 board driver section)
DriverName=MS2000$
INTERRUPT=5
IOBASE=0x360
[NE2000]
Adapters=MS$NE2000
SECTION FROM WFW 3.11 SYSTEM.INI FILE
[network drivers] (You need to edit this section)
devdir=C:\WFW
LoadRMDrivers=Yes
transport=ndishlp.sys,*netbeui,dis_pkt9.dos
netcard=ne2000.dos ^^^^^^^^^^^^^--+
^^^^^^^^^^^^^^^^^^ |
| |
ensure a netcard= line like this |- add this by hand
exists right here. It chooses the
NDIS v2 level board driver.
------------------------------
TEXT #4 (Not directly related, but maybe useful)
X-News: cc.usu.edu comp.protocols.tcp-ip.ibmpc:4768
From: fks@ftp.com (Frances Selkirk)
Subject: Re: PC/TCP+ WfWg3.11+ Novell 3.12
Date: Sun, 30 Jan 1994 21:21:01
In article <frank.25.0010A199@isis.wu-wien.ac.at> frank@isis.wu-wien.ac.at
(Mag. Wolfgang FRANK) writes:
> Is there any way to use Pc/Tcp Ver. 2.2 with WfWg 3.11 and Novell 3.12
You can run PC/TCP version 2.2 with WfWg 3.11 with one bit of additional
software - a driver that is freely available from our anonymous FTP server and
BBS - but if you wish to use our NetBIOS as well, you will need to upgrade to
2.3. The standard instructions we have assume use of the NDIS. If you need to
use ODI, that gets more complicated. Please contact me (fks@ftp.com) or
support@ftp.com if you have problems with the instructions below:
How to Configure PC/TCP Network Software v2.3, DOS/Windows and Windows for
Workgroups, Version 3.11
Since our last newsletter, Microsoft Windows for Workgroups 3.11 was released.
There were some changes from the beta version of this release which alter the
configuration necessary for PC/TCP Network Software v2.3, DOS/Windows. Follow
these steps to configure PC/TCP, DOS/Windows with Windows for Workgroups
Version 3.11:
1. Choose Real Mode NDIS Driver (NDIS2) during Windows for Workgroups setup.
2. Review the config.sys file to make sure:
* The Windows for Workgroups installation program inserted the
Device=drive:\path\ifshlp.sys entry which is necessary to load the NDIS2
converter.
* There are no entries that load protocol manager or an NDIS card specific
driver. If they exist in this file, remove them.
3. Make the following changes to the autoexec.bat file:
* Arrange the entries so that the net start command, inserted by the Windows
for Workgroups installation program, precedes any TSRs (Terminate and Stay
Resident programs). The net start command should include the full path, if
the command precedes the path statement in the autoexec.bat file. If the
netbind command is in this file, remove it.
* Add the drive:\path\kernel command to load PC/TCP kernel after net start.
4. Make the following changes to the Windows system.ini file:
* Add the Secondnet.drv=drive:\path\pctcpnet.drv entry after the
Network.drv=wfwnet.drv entry in the [Boot] section.
* Add the Secondnet=drive:\path\vpctcp.386 and
Device=drive:\path\wfwftp.386 entries to the [386Enh] section.
Note: You must use the wfwftp.386 file that FTP Software created specifically
for Windows for Workgroups Version 3.11. You can get the file from our
Technical Support BBS (filename: wfw311.exe) or our vax.ftp.com anonymous FTP
server (filename:/support/fixes/pctcpdos/wfw311.exe).
This wfwftp.386 file will also work with Windows for Workgroups 3.1. The
wfwftp.386 file created for Windows for Workgroups 3.1 will not work with 3.11.
* Review the [network drivers] section. These entries must be present:
netcard=(your NDIS driver)
transport=ndishlp.sys,*netbeui
LoadRMDrivers=Yes
By the way, the asterisk in *netbeui is an accurate statement used by
Microsoft.
* Replace the Transport= entry with
Transport=ndishlp.sys,*netbeui,drive:\path\dis_pkt.gup.
5. Make the following changes to the protocol.ini file.
* Add a [PKTDRV] section with the following entries:
[PKTDRV]
DriverName=PKTDRV$
Bindings=(The Windows for Workgroups name for the driver section)
IntVec=
ChainVec=
The IntVec= and ChainVec= entries must be available software interrupts; common
settings are 0x60 and 0x65, respectively).
If you want to use the PC/TCP,DOS/Windows netbios.com program in addition to
the Windows for Workgroups NetBEUI stack, make the following changes:
1. Add the drive\path\netbios.com entry to the autoexec.bat file.
2. Make the following changes to the protocol.ini file:
* Change the lana0= entry to lanan (where n is the next available adapter
number) in the [network.setup] section. An example of this entry follows:
lanan=ms$drivername,1,ms$netbeui
* Change LANABASE=0 to LANABASE=n in the [NETBEUI] section (where n is the same
number as the adapter number in the previous bullet.)
The lana0 and LANABASE=0 settings are reserved for the PC/TCP, DOS/Windows
netbios.com program.
3. Edit the [pctcp netbios] section of the pctcp.ini file to include the
following NetBIOS specific parameters:
[pctcp netbios]
Ncbs=64
Sessions=n
Names=32
Note: The Sessions= entry must correspond to the value set in the
Tcp-Connections= entry in the [pctcp kernel] section of the pctcp.ini file.
If you want to use the PC/TCP, DOS/Windows netbios.com program without the
Windows for Workgroups NetBEUI stack, comment out the NetMisc= and Transport=
entries in the [386Enh] section in the Windows system.ini file by placing a
semi-colon (;) before the entry.
Frances K. Selkirk fks@ftp.com
FTP Software, Inc. Technical Support support@ftp.com
Support's newsletter provides technical information on our products.
FTP to vax.ftp.com, or login to our BBS at 1-508-659-6240.
(End of NETWORKS\SETUP.DOC)