Fairisle Switches



next up previous
Next: Console Output Up: Fairisle and Wanda Start Previous: Rarping and Rarp

Fairisle Switches

The Fairisle switches form a large ATM LAN which is used for experimental networking and other projects. Currently they are being used for traffic control experiments for BT. At the time of writing there are 10 switches. Two of these switches are fpc2 switches and carry service traffic, linking file servers at the computer laboratory. Other hosts and sources of traffic will be connected to the network over the year. For details the design of the Fairisle switches, see other documents in this collection.

Each switch has its own entry in the trader. This permits applications such as xscons to obtain the information they require to access the switch. In addition, each port of a Fairisle switch has its own entry in the trader. This is because each port is an independent processor which can be configured to boot with a specific kernel. Thus each switch has 17 entries in the trader - one for the switch as a whole (and with entry name switchname-switch, where switchname is the name of the switch) and 1 for each port, whether that port is physically present or not. When xscons locks a switch it also locks all ports belonging to that switch.

Default Booting

Each Fairisle switch has a default boot configuration. This is defined by its default boot kernel. The default boot kernel is the kernel which is booted into the master port of the switch when the switch is reset. This can be determined by examining the trader entry for that switch.

The default boot kernel for the master port is kept in
/usr/groups/wanda/boot/name.boot where ``name'' is the switch name. The default kernel is built using the tool sc and wboot, described below.

User Booting

When a Fairisle switch is used for experimental work, the user can boot the ports of the switch with any kernel. To do this, it is necessary to lock the switch using xscons, and then to use bootset to set the new kernel and hostinfo for each port. In addition, the master port must run a gateway and rarp daemon, to enable the rest of the switch to access the boot server.

The Switch Configuration Tool

The switch configuration tool sc is used to define the topology of the Fairisle network and to automatically generate the routeing and hostinfo tables for Fairisle switches. It currently has a rather primitive interface which requires the user to hand code a file describing the connectivity between switches and between switches and hosts. This interface should be integrated with the other network management tools to ensure that there is only one source of information used when defining the network. sc Defines the topology of the whole network. As such, it should be used with great care and only by one person who understands the network. It is not a tool for use by users who simply want to experiment with Fairisle switches. It is vital that the switches all have a consistent view of the network topology otherwise routeing could become a nightmare. When the automatic topology discovery service has been completed, this will become easier.

sc Generates, given the connections between switches, and between switches and hosts, routeing tables for all Fairisle ports in the network. These take the form of files with the suffix .auto, and they are by default installed as part of the make process for sc in
/usr/groups/wanda/boot/hostinfo. When the hostinfo for a particular port portname is executed by the boot server or wbtool by running it as a perl script, the portname.auto file is included in the hostinfo and the routeing information is made accessible to the booting machine in the form of environment variables which can be read by the kernel.

sc Also generates environment variables which permit Fairisle ports to use the network console (see below), and rarp tables for the switch-based rarp server on the master port. This form of rarp is called positional rarping, and is specified fully elsewhere in this collection.

The Switch Boot Server

When a switch is booting its default configuration, it makes sense to reduce the network load of booting traffic, and boot the same kernel into each port. This is achieved by using the wanda boot server wboot. This is a wanda application which, when spliced onto a wanda kernel, will respond to boot requests from other ports on the same switch. A man page for both sc and wboot exists. Wboot is an application created by the tool wbtool, which builds the data area for the boot server from the image of the kernel to be booted into the ports of a switch and the hostinfo for each of the ports. When wboot receives a boot request from a port on its switch it will boot the port with its kernel and the correct hostinfo. Thus, by booting the master port with a kernel, gateway, rarp daemon, and wboot, the entire switch will be automatically booted by the master port. This means that switches boot much faster and that the boot server is not subject to as much load.

Note that when wboot is being used, if the hostinfo is modified then the master port kernel must be rebuilt, because the wboot image contains the hostinfo for the other ports in the switch as a static data area.

Routeing Tables

The wanda kernel and the user space gateway use routeing tables supplied as part of the hostinfo to the kernel when it boots. Each routeing table entry consists of a string of the form: MSNLROUTE-pod-name=comparator-mask, where pod-name is the name of the msnl interface through which the routeing will take place (for example: fair-transmission), comparator is a 4 octet value conventionally expressed using the Internet-style dotted notation (e.g. 128.232.133.32), and mask is a 4 octet value conventionally expressed using the Internet-style dotted notation (e.g. 255.255.255.248). Multiple comparator and mask pairs may be given provided they are separated by a comma. The algorithm used to select a route for a connection request for a given destination address is as follows:

  1. Sequentially process the list of routeing table entries, from most to least specific, until done. For each entry in turn:
  2. Form the bitwise AND of and the mask for MSNLROUTE-pod-name
  3. Compare the result to comparator
  4. If they are equal, then select that pod, and routeing is complete
  5. Otherwise, go back to step 1.

Trader Entries

Each switch is represented in the trader by an entry for each port, and an entry for the switch as a whole. For example, for the switch manor, there is an entry for each port from manor00 to manor15 and also an entry entitled manor-switch. The port entries are used to specify user booting information, the msnl address of the port, and to lock the port for use by the owner of the current xscons session. The switch entry is used to obtain information about the switch as a whole, such as the number of ports, the master port number and the console output port address. At the time of writing the switch-specific entries in the trader contain the following additional fields:



next up previous
Next: Console Output Up: Fairisle and Wanda Start Previous: Rarping and Rarp



Simon Crosby