next up previous contents index
Next: Running a Kernel Up: Configuring a Kernel Previous: Build Procedure

Examples

 

The x-kernel source tree contains some ready-to-use configuration files to help you build any of the different types of x-kernel s. This section contains locations and descriptions of these files. All of the configurations specify a protocol stack that includes ETH, ARP, VNET, IP, and ICMP, plus some set of higher level protocols

User-Level with Simulated Ethernet

 

A user_level x-kernel will usually be configured to use the Unix socket facility to send and receive from the network (see Section 13.1). Example graph.comp and ROM files for building and running such a kernel that includes the TCP/IP protocol stack can be found in /usr/xkernel/user_level/build/Template/. Configuration files for other protocol stacks can be found subdirectories of /usr/xkernel/user_level/build/Template/; e.g., example_rpc shows how to configure an RPC stack, and example_msp shows how to configure a stack that includes the MSP and SWP protocols.

Note that in this graph.comp file, the lowest protocol in the protocol stack is the SIMETH driver. Refer to Section 13.1 for an explanation of the ROM file's simeth and arp options.

User-Level with Direct Ethernet Access

 

An x-kernel that uses a simulated device driver like SIMETH can communicate only with other x-kernel s; it is not possible to exchange messages with a ``native'' application since an x-kernel configured with SIMETH encapsulates the messages it sends in a UDP datagram. To send raw ethernet packets over the network, one needs to configure a kernel that includes a protocol that interacts directly with the device driver of the host OS. Unlike SIMETH, which is supported on all Unix platforms, these protocols are platform dependent. The current distribution includes three such protocols: IRIXFDDI and IRIXETH for IRIX, and ETHPKT for Linux. In all three cases, root access is required to run a kernel with one of these protocols configured in.

Example graph.comp and rom files for building and running a kernel that includes ETHPKT are given in /usr/xkernel/user_level/build/Template/example_ethpkt. Notice that the graph.comp file specifies that protocol table prottbl.nonstd be used. It does this so that all protocols (most importantly, IP) are assigned nonstandard protocol numbers; this prevents messages designated for the x-kernel from being acted upon by the machine's native protocol stack, and vice versa.

Simulator

 

Directory /usr/xkernel/simulator/build/Template/example contains the configuration files needed to build and run the simulator. The graph.comp file is the only one needed to compile the simulator; the others must be in the working directory at runtime.

The files residing in the example directory configure a simulated network consisting of two Ethernets connected by a point-to-point link. Each Ethernet has two hosts, for a total of four. One host on each Ethernet runs the traffic protocol to simulate background traffic from TCP connections. The two other hosts run megtest, which uses TCP to stream one megabyte of data from one host to the other. Three flavors of TCP are configured into the simulator: rtcp (TCP Reno), ttcp (TCP Tahoe), and vtcp (TCP Vegas). Any of these TCPs can be run on the traffic and megtest hosts.

The simulator treats the graph.comp file differently than the user_level and standalone x-kernel s do. The simulator does not set up its protocol graph using the graph.comp; it only uses it to decide what protocols it must include in the executable. At runtime, the simulator creates the protocol graph using the xsim.data file. Note that in the example graph.comp file, megtest is configured over TCP Reno, but the xsim.data file runs it over TCP Vegas.

There is only one ROM file, and this file contains information for all of the hosts in the simulation. The example ROM file specifies the gateway to which a host will send when its IP datagram is addressed to a machine residing on another network. Note that the ROM entries begin first with the name of the protocol (ip) and then the name of the host which uses that entry (e.g., h1n0 -- host 1 on network 0).

Most of the difficulting in configuring the simulator is how to specify the network you want to simulate. This specification is given in the file xsim.data, which is described elsewhere [1].



next up previous contents index
Next: Running a Kernel Up: Configuring a Kernel Previous: Build Procedure



Larry Peterson
Tue Jul 1 14:50:34 MST 1997