Next: Mach 3 Up: Device Drivers Previous: Multi-platform

SIMETH

SIMETH (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-kernels 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: Mach 3 Up: Device Drivers Previous: Multi-platform


Tue Nov 29 16:28:56 MST 1994