Mentat Products
Mentat Products
Mentat DLPI Driver Template
 

Overview

The Mentat DLPI Driver Template provides the framework for highly efficient STREAMS-based drivers for Ethernet and Fast Ethernet devices. By providing all of the DLPI code required for a driver, this template greatly reduces the time and effort required to develop a fully functional, high performance driver. This template is device independent and requires only the insertion of hardware specific transmit and receive logic to generate a DLPI driver for any STREAMS-based host.

The template package includes fully commented source code, detailed documentation, and a fully operational sample driver to use as a guide to writing the board specific code.

Home

Template Functionality

The Mentat DLPI Driver Template provides all non-hardware specific code required for a full functionality DLPI driver including the following functionality:

DLPI Version 2.0 Local Management Service Primitives and Connectionless-mode Service Primitives

DIX Ethernet, 802.x, 802 SNAP, and raw IPX encapsulations on a per-stream basis

Support for all promiscuous modes

Multicast address filtering

802.2 TEST and XID operations

Interface MIB statistics (RFC 1573) and Ethernet MIB statistics (RFC 1643)

Mentat Fast Path Extension

Network Monitor Extensions

Supports both Style 1 and Style 2 drivers

 

Board Specific Code

Using this template, the only additional code required is hardware specific logic to provide:

Interrupt handling for packet reception
Board transmission logic
Board address filtering
Hardware enable and disable logic
Support for Network Monitor Extensions (optional)

 

Template Architecture

The Mentat DLPI Driver Template consists of a single source file and a single header file which defines the interface to the template. The STREAMS interfaces to the driver (open, close, put procedures and streamtab entry) are supplied by the hardware code. The template package includes a sample file for this hardware code.

The template efficiently handles all details of inbound packet delivery to single or multiple streams. The hardware code presents only buffers containing received data to the template. For outbound packets, the template passes to the hardware code fully formed data frames ready to be placed in hardware transmit buffers. Fast Path can be used on applicable platforms to further streamline the main packet transmit logic.

All details of the various DLPI binding semantics for Ethernet, 802.x, 802 SNAP, and raw IPX binding are handled by the template. The template also handles the DLPI semantics to enable promiscuous mode and multicast addressing and calls the hardware code to perform any board-specific operations. Multicast support functions correctly even without the board providing multicast address filtering.

The template provides a small number of entry points called by the hardware code for initialization, inbound packet delivery, and similar operations. The template requires the hardware code to provide a few functions to perform actions such as enabling the hardware and creating address filters for multicast addresses.

 

Mentat Extensions

Dramatic performance gains are possible using Mentat's Fast Path extension to DLPI on platforms that support it. Fast Path makes it possible to create the packet frame header only once, thereby substantially reducing the processing overhead for data packets transmitted over virtual circuits such as TCP connections. The template provides full Fast Path support and requires no additional support or complexity in the hardware code. Fast Path is available on all TCP/IP stacks derived from Mentat source code including the native implementations on Apple Macintosh Open Transport, Sun Solaris, Motorola V/88, and Sony News.

The network monitor extension is an option which allows network monitoring and test applications to have full access to packets. When these functions are used, the template allows delivery upstream of raw normal and corrupted packets including Ethernet headers. It also provides a mechanism for sending corrupt packets with specified errors such as bad CRC to the hardware for transmission. This extension requires no additional hardware code for those applications that do not need network monitoring.

 

About Mentat

The Mentat DLPI Driver Template is built on Mentat's extensive experience in writing portable, highly efficient STREAMS and STREAMS-based protocol stacks. This template was originally created to facilitate the development of high performance drivers used to demonstrate the performance of Mentat Portable Streams and Mentat TCP/IP. Due to the demand from board vendors for a simple and efficient method for writing DLPI drivers for many of the most popular computer operating systems, this template is now being made available for licensing.

Mentat is the computer industry's leading provider of high performance, kernel-level networking software. Based in Los Angeles, California, Mentat was founded in 1987 and remains privately held. Mentat core products are implementations of TCP/IP, IPv6, STREAMS, and XTP networking software. By emphasizing both portability and performance, Mentat delivers highly reliable and maintainable software. Mentat has licensed its software to over 40 computer and embedded operating systems vendors throughout North America, Europe, and Japan including Apple, Digital, Hewlett-Packard, IBM, Motorola, Novell, Sony, Sun, Wind River, and Xerox.

 

For more information on Mentat DLPI Driver Template or for details on product licensing, please contact Mentat at:

Mentat Inc.
1145 Gayley Ave. Suite 315
Los Angeles, CA 90024 USA

phone: (310) 208-2650 ext. 28
toll free: 888-4MENTAT (888-463-6828)
fax: (310) 208-3724
email: info@mentat.com

Mentat Logo


Home | Top of this page

© 1999 Mentat Inc. All rights reserved.