5. Devices, Protocols, and MultiNet Internals

 

This chapter lists the devices and protocols supported by MultiNet and explains how the MultiNet kernel interacts with the OpenVMS Operating System.

Devices Supported by MultiNet

MultiNet supports a variety of network topologies. Supported network interfaces are:

·         HP Ethernet controller (shared)

·         HP FDDI controller (shared)

·         IP-over-DECnet link

·         Asynchronous PPP using any OpenVMS-supported terminal multiplexer

·         SLIP (Serial Line IP) using any OpenVMS-supported terminal multiplexer

·         Turbochannel and PCI Token-Ring interfaces for OpenVMS Alpha

·         Six-To-Four IPv6 over IPv4 tunneling interface

·         HP Token-Ring adaptors on OpenVMS Alpha

 

Protocols Supported by MultiNet

MultiNet is compatible with the current versions of the standard Internet networking protocol specifications listed below:

·         BGP (Border Gateway Protocol): RFC-1105, RFC-1323

·         BOOTP (Network Bootstrap Protocol): RFC-951, RFC-1534, RFC-1542, RFC-2132

·         DHCP (Dynamic Host Configuration Protocol):RFC-2131, RFC-2132

·         DNS (Domain Name Service): RFC-1034, RFC-1035, RFC-1101, RFC-1348

·         EGP (Exterior Gateway Protocol): RFC-904

·         Ethernet ARP (Address Resolution Protocol): RFC-826

·         Ethernet RARP (Reverse Address Resolution Protocol): RFC-903

·         FDDI (Fiber Distributed Data Interface): RFC-1188

·         FINGER (User Status Protocol): RFC-1288

·         FTP (File Transfer Protocol): RFC-959, RFC-1579, RFC-2389, RFC-2428

·         ICMP (Internet Control Message Protocol): RFC-792, RFC-1256

·         IP (Internet Protocol): RFC-791

·         IP-over-X.25: RFC-87

·         IPv6: RFC-2460, RFC-4294 

·         ICMP6. RFC 2463

·         IPP (Internet Printing Protocol): RFC-2910, RFC 2911

·         Kerberos: RFC-1411, RFC-1510

·         NFS (Network File System): RFC-1094

·         NTP (Network Time Protocol): RFC-1059

·         OSPF (Open Shortest Path First): RFC-1583, RFC-1584

·         Path MTU (Maximum Transmission Unit) Discovery: RFC-1191

·         POP2 (Post Office Protocol Version 2): RFC-937

·         POP3 (Post Office Protocol Version 3): RFC-1725

·         PPP (Point-to-Point Protocol): RFC-1332, RFC-1552, RFC-1661

·         RIP (Routing Information Protocol): RFC-1058

·         RPC (Remote Procedure Call Protocol): RFC-1057

·         SLIP (Serial Line Internet Protocol): RFC-1055, RFC-1144

·         SMTP (Simple Mail Transfer Protocol): RFC-821, RFC-822, RFC-974

·         SNMP (Simple Network Management Protocol): RFC-1157, RFC-1213

·         SNMP Agent eXtensibility (RFC-2741, RFC-2742)

·         SYSTAT (Active Users Service Protocol): RFC-866

·         TCP (Transmission Control Protocol): RFC-793

·         TELNET (network virtual terminal protocol): RFC-854, RFC-855, RFC-856, RFC-857, RFC-2941

·         RFC-858, RFC-859, RFC-860, RFC-885, RFC-1041, RFC-1073, RFC-1079, RFC-1091, RFC-1096, RFC-1205, RFC-1372, RFC-1411, RFC-1416

·         TFTP (Trivial File Transfer Protocol): RFC-1350

·         TN3270: RFC-1576

·         UDP (User Datagram Protocol): RFC-768

·         WHOIS (Directory Service Protocol): RFC-954

·         XDR (eXternal Data Representation): RFC-1014

 

Understanding MultiNet Internals

This section describes how the MultiNet kernel interacts with the OpenVMS Operating System. To understand the information in this section, some background in OpenVMS internals is helpful. The figure below illustrates the MultiNet protocols and the overall organization of the MultiNet kernel.


MultiNet interacts directly with the OpenVMS Operating System. Generic sockets pass requests to the protocol switch, that differentiates between requests for IP use and for other support facilities. Requests are then sent through the network interface switch, which identifies the device for which the request is bound. When a request is received from a device, the steps occur in reverse.

The $QIO Interface

The programs implementing the lower layers of MultiNet — data link, network, and transport layers, with the exception of shared OpenVMS device drivers — reside in the MultiNet kernel. The MultiNet kernel is loaded into the OpenVMS S0 space (where the OpenVMS kernel is also loaded). Pages for S0 space are allocated when the OpenVMS system boots.

Note! You must use the SPTREQ SYSGEN parameter on VAX systems to set aside the appropriate number of S0 pages.

The MultiNet kernel accommodates multiple $QIO interfaces. Each $QIO interface is implemented by a separate OpenVMS pseudo-device driver, allowing MultiNet to simultaneously support the $QIO interfaces of several popular networking implementations. This lets you use, without modification, applications designed for these other networking implementations. The default MultiNet $QIO interface, implemented in INETDRIVER.EXE, is used by the MultiNet shareable socket library and all MultiNet applications.

All MultiNet $QIO drivers communicate with the MultiNet kernel through a set of kernel transfer vectors that interface with the generic socket layer. The generic socket layer of the MultiNet kernel provides most of the facilities common to all network protocols (including reading and writing user-level data and synchronizing OpenVMS I/O request packets with network protocol events).

The generic socket layer uses the protocol switch for protocol-specific operations. The protocol-specific code (which may consist of several interconnected protocol modules) calls through the network interface switch to the appropriate network device driver to encapsulate and transmit packets.

The protocol-specific code can also receive timer interrupts through the protocol switch. Incoming packets are decapsulated by the network device drivers and passed to the protocol-specific code through the network interface switch.

Network Interface Device Drivers

The MultiNet kernel includes code allowing it to handle I/O for most network interface devices itself, rather than using OpenVMS device drivers. However, for devices that MultiNet shares with other software (for example, an Ethernet interface), the kernel uses standard OpenVMS device drivers and either VCI (VMS Communication Interface), FFI (Fast Function Interface), or ALTSTART driver interfaces.

Custom Applications

The include and library files (optionally installed with MultiNet) provide access to several programming interfaces for writing custom client and server applications. These interfaces include:

·         A 4.3BSD-compatible shareable socket library

·         A 4.4BSD-compatible shareable socket library

·         An RPC (Remote Procedure Call) library based on the public domain RPC library

·         The standard MultiNet $QIO interface

·          A $QIO interface compatible with TCP/IP Services for OpenVMS

Consult the Programmer's Reference for additional information about the socket library and the MultiNet $QIO programming interface. The Sun RPC library routines are documented in the Sun Microsystems guide, Networking on the Sun Workstation.

Note! The protocol suites implemented under MultiNet do not map one-to-one onto the OSI reference model. In particular, each TCP/IP application protocol generally handles the functions normally ascribed to the Application and Presentation layers of the OSI model.