[comp.protocols.tcp-ip.ibmpc] PC-IP ON OS/2 AS PRINTER BRIDGE FROM PC-LAN

ISSKO@NUSVM.BITNET (Kace) (04/27/89)

I have MS LAN-Manager running on a PS/2 model 60 for a couple of weeks
now, and it served impeccably as a server for PCs running PC-LAN.

But, like many other sites we have the problem of coexistence with
TCP/IP.  In fact, the PCs are used almost exclusively for OA functions
and the REAL production work are done on the UNIX systems.  So, naturally
they have the clout to buy resources, like expensive Postscript printers
etc etc.

I know you can use PCIP to print to the UNIX hosts, but I am thinking
along another direction: can you intercept LAN-Manager SMB requests and
redirect them to a LPR target instead?

The reason is that the SMB redirectors in DOS takes up little memory,
compared to the exhorbitant amount required for TCP/IP.  This way,
we can maximize each workstation's available memory.

Now to the main crust of my question:  Have anyone ported the PCIP
package to OS/2?  A brief scan of the OS/2 technical info appears
to indicate this would be trivial since a tasking package is already
provided in the form of threads.

Now IF PCIP is available on OS/2 (in source form), and IF I can grab the
print request SMBs on the server, THEN it should be trivial for me to
redirect them to a UNIX host using the lpr protocol.

Can anyone comment on this OR tell me if I am on the right track?
(I don't want to start coding anything until I know if this is right)

*********************************************
KACE ONG         INSTITUTE OF SYSTEMS SCIENCE
                 SINGAPORE
*********************************************

jbvb@VAX.FTP.COM (James Van Bokkelen) (04/27/89)

It would be nice if it were that easy to port PCIP to OS/2.  Regrettably, it
isn't.  Read the NDIS spec carefully, and find out all the details on dual-mode
pointers.  They make it very difficult to put C code in the OS/2 kernel, and
the NDIS spec only applies to Ring 0 code.  You could bring the NDIS spec out
to Ring 3 programs, but then you'd run into the problem of how to interface
to the LAN Manager (the redirector interface is secret, presumably to spite
Novell).

It could certainly be done (Microsoft is working on a port of Excelan's card-
resident assembly language TCP/IP to the OS/2 kernel, and HP/3Com are working
on something, and we're working on a port of PC/TCP), but it isn't a
lightweight job.

James B. VanBokkelen		26 Princess St., Wakefield, MA  01880
FTP Software Inc.		voice: (617) 246-0900  fax: (617) 246-0901

wjr@VAX.FTP.COM (Bill Rust) (04/27/89)

> I have MS LAN-Manager running on a PS/2 model 60 for a couple of weeks
> now, and it served impeccably as a server for PCs running PC-LAN.

> But, like many other sites we have the problem of coexistence with
> TCP/IP.  In fact, the PCs are used almost exclusively for OA functions
> and the REAL production work are done on the UNIX systems.  So, naturally
> they have the clout to buy resources, like expensive Postscript printers
> etc etc.

> I know you can use PCIP to print to the UNIX hosts, but I am thinking
> along another direction: can you intercept LAN-Manager SMB requests and
> redirect them to a LPR target instead?

> The reason is that the SMB redirectors in DOS takes up little memory,
> compared to the exhorbitant amount required for TCP/IP.  This way,
> we can maximize each workstation's available memory.

> Now to the main crust of my question:  Have anyone ported the PCIP
> package to OS/2?  A brief scan of the OS/2 technical info appears
> to indicate this would be trivial since a tasking package is already
> provided in the form of threads.

> Now IF PCIP is available on OS/2 (in source form), and IF I can grab the
> print request SMBs on the server, THEN it should be trivial for me to
> redirect them to a UNIX host using the lpr protocol.

> Can anyone comment on this OR tell me if I am on the right track?
> (I don't want to start coding anything until I know if this is right)


First, let me restate your question so that my comments won't seem
totally out in left field if I haven't understood it. You have a
network of PCs running DOS connected to an OS/2 server. You want to be
able to make requests to the server which then passes them on to a
UNIX host. The server must convert the request from whatever protocol
PC-LAN uses to TCP/IP so that the host can process it properly.

I am not familiar with the SMB redirectors under OS/2, so I can't
comment on how easy it would be to grab them as they come into the
server. But, I have been working on porting a TCP/IP protocol stack
and calling that port trivial may be a bit optimistic.

If you try to do the port, you need several things.  First, you must
make an OS/2 device driver for your protocol stack.  Ray Duncan's
"Advanced OS/2 Programming" is essential if you attempt to do it.
Second, you need a copy of the NDIS spec or else you will need to
write your own device drivers for the various cards out there (as far
as I know there are no public domain OS/2 card device drivers
available). Third, you need the supporting software for binding your
stack to the NDIS driver (the Protocol Manager). I assume that you
already have this.

You have two options in your port of PCIP: put the whole thing in ring
0 or have a small character device in ring zero and put the stack in a
DLL in application space. If you intend to run the thing only on a
server and don't care if the compatibility box has any memory left in
it, then putting the whole thing in ring 0 *may* be better. From my
perspective, the other approach is better.

If you attempt this, you will be venturing into almost uncharted
areas. Much as I hate to say it, signing up for Microsoft Online
is probably a good idea. There are things out there that I know
don't work, things that I would put money on that won't work the
first time you try them, pieces that are missing and other snares
for the unwary. 

I would really like to get some sort of group of people working on
OS/2 networks started so that we each don't have to discover all the
little gotchas. I don't know how to start a group, so if someone who
knows how would email me the information, I would appreciate it.

William J. Rust
FTP Software
wjr@ftp.com

RTB@CERNVM.BITNET (Rainer Toebbicke) (04/28/89)

If you are talking about the TCP/IP for PC that comes with 5798-FAL R1.1:

I have ported this code to OS/2 and wrote a driver for the 3COM 3C501 card.
However, my main goal was to learn programming in OS/2, so I did not
care about packaging the thing into something installable by somebody else.
It wasn't that trivial, though! You can't replace the tasking package
in a straightforward manner by OS/2 threads, owing to the fundamental
difference between a switch-on-request and a switch-anytime dispatcher. So
I kept the tasking package, only making sure that 'waits' did not result in
endless loops.

If anyone could tell me how I can legally (and technically) share this code,
I'd be happy to do so.

Rainer Toebbicke
Section Leader, MIS Systems and Databases
European Organisation of Nuclear Research (CERN)
Geneva, Switzerland