Algorithm.



next up previous
Next: About this document Up: Investigating the Fairisle Fabric Previous: Considerations.

Algorithm.

The basic idea of the algorithm is to send a cell to all possible outputs and to see what subset of the possible 16 outputs the entity receives cells for. Each cell contains an indication of the output to which it was sent for this purpose.

Additionally, since the receipt of corrupt cells could cause considerable chaos, the cells contain an embedded test sequence designed to perform simple tests of the hardware (such as stuck bits) and a checksum field.

Data format

Since the first octet may be either a fabric route or a port controller route (in the case of a zero stage fabric) the values must be very carefully constructed. Likewise the port controller route octet may become the first octet of the VCI.

The header of the cell is such that the fabric route octet has the priority bit set. This means that should the fabric not be present it will become the port controller loop-back bit. The port controller route octet is set to all ones (0xff) since the VCI used for investigating the fabric is 0xff,0xff. The fas used for investigating the fabric should also be 0xff,0xff which again tolerates the slip.

The data portion of the cell begins with twenty three two octet fields. For each field the first octet contains the number of the output port which is the destination for that cell in the lower nibble and the value 0x1 in the upper nibble. The second octet in each field contains the field number (beginning at zero) XORed with zero in the case that the field number is odd and 0xfe in the case that the field number is even.

Following these twenty three fields there is a one octet checksum. The checksum is generated by XORing the first fourty six octets together and complementing the residue.

The last octet (which will be lost in the case of a zero stage fabric) contains all ones.

Reception

The number of cells received should not be counted but merely whether a cell has been received specifying it was sent to a particular output port. This allows multiple entities to simultaneously investigate the fabric.

If a cell is received whose format does not match the specified data format above the occurrence should be logged and the data fields printed since this may aid fault discovery. It should not be considered in the algorithm. Implementations are at liberty to refrain from logging cells with an old version of the data format. Such old versions are not described herein.

If cells are received for all sixteen outputs and they are all shifted (which is identified by the first data octet being all ones), then there is a zero stage fabric. If a single output port specification is received then there is a two stage fabric and the entity is plugged into the specified port. If cells are received denoting exactly four of the possible outputs and the four are consecutive and aligned on a multiple of four then there is a single stage fabric and the entity is plugged into the port number which is the value of the received port numbers specified divided by four.

In all other cases the entity must not attempt to use the fabric for network operations but should halt and optionally enter maintenance mode.



next up previous
Next: About this document Up: Investigating the Fairisle Fabric Previous: Considerations.



Richard Black