next up previous contents index
Next: Irix Up: Device Drivers Previous: Device Drivers

All Unix Platforms

 

SIMETHSIMETH (Simulated Ethernet Driver Protocol (sunos and irix platforms))  

SPECIFICATION

SIMETH simulates an x-kernel ethernet driver by sending and receiving messages using Unix UDP sockets.

SYNOPSIS

Each instantiation of SIMETH is associated with a specific Unix UDP port and simulates an ethernet driver for a single interface. SIMETH transmits outgoing messages by sending to other UDP ports and presents UDP messages received on its port as incoming ethernet packets. Note that since messages sent from one simulated x-kernel to another are encapsulated within Unix UDP packets, it is only possible to communicate with another peer running the x-kernel with this same driver. Communication with arbitrary peers is not possible with this driver. Communication is possible between SunOS and IRIX platforms.

The mapping between Unix UDP ports and SIMETH ethernet addresses is very simple. The six bytes of SIMETH ethernet address are formed by the concatenation of the four byte IP host number for the Unix host on which the simulator is running and the two byte UDP port used by the SIMETH instantiation. Note that this is the real IP host number, not the simulated IP host number. See the CONFIGURATION section below.

Note that an x-kernel may be configured with multiple instantiations of SIMETH, each with its own UDP port, to simulate a multihomed host.

SIMETH can awkwardly simulate ethernet broadcast messages. When an outgoing broadcast message is sent to SIMETH, SIMETH asks its corresponding ARP protocol for a dump of all hosts in its table. SIMETH then sends the message to each of these hosts in a point-to-point fashion. Note that for a reasonable simulation of ethernet broadcast, all x-kernel s in communication should have the same ARP table (see the ARP appendix.)

REALM

SIMETH is in the ASYNC realm, supporting the ethernet driver interface described in the ETH appendix.

PARTICIPANTS

SIMETH supports the ethernet driver interface rather than a standard xkernel UPI interface and thus makes no use of participant stacks.

CONTROL OPERATIONS

ETH_REGISTER_ARP:
Used by an ARP instantiation to register itself with its corresponding SIMETH driver. This is used to simulate ethernet broadcasts as described above. If no ARP protocol registers with a SIMETH instantiation, broadcasts on that instantiation will not be possible.
Input:
XObj /* ARP protocol object */
Output:
none

EXTERNAL INTERFACE

SIMETH supports the ethernet driver interface described in the ETH appendix.

CONFIGURATION

SIMETH requires no lower protocol. It can be configured in either the driver section or the protocol section of graph.comp.

SIMETH recognizes the following ROM options:

simeth nnnn: This instantiation of simeth should use UDP port nnnn. There must be such a line for each instantiation of SIMETH in the x-kernel .

AUTHORS

Larry Peterson and Norm Hutchinson (sunos platform), Erich Nahum, David Yates, and Jim Doyle (irix platform).



next up previous contents index
Next: Irix Up: Device Drivers Previous: Device Drivers



Larry Peterson
Wed Jan 10 10:40:08 MST 1996