Lab configuration (site generic)


This page describes the (general) steps we went through to set up the Xinu Lab for network processors.

Step 1 : Obtain one or IXP1200 Bridal Veil boards and Linux PCs to host the boards and develop on.
Notes:
  • The Bridal Veil boards do not need to be placed in the development machines. However the (serial) consoles of the boards should be connected to the development front-ends.
  • Linux 6.2 or greater is recommended.
  • Microsoft could be used for development, but this documentation does not support that approach.
  • The Linux development machines will be referred to as front-ends throughout this document.

What to do:
  • Connect the serial console cable of each IXP1200 to one of the front-ends or alternately to a terminal concentrator.
  • Arrange for these serial consoles to be accessable to students/researchers.


Step 2: Set up the lab for networking experiments.
Notes:
  • This step will largely depend on the networking equipment available.
  • Use standard Cat-5 ethernet cable with RJ-45 jacks.
  • Preferably use 10/100 Ethernet hubs or switches.

What to do :
  • If the Linux front-ends will be used to send traffic to the network processors consider disabling IP Path MTU discovery. Students will have a hard time testing projects involving IP fragmentation if the front-ends always set the Don't Fragment bits on IP packets they fragment. Command: echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

Examples:
  • Plug every interface of every IXP1200 into one big switch or hub.
    • If you have a switch that can create VLANs use VLANs to create different logical ethernet networks for experiments.
  • Wire each interface of every IXP1200 to a different switch or hub.
  • Place extra Ethernet NICs in the front-end machines and wire one or more of the IXP1200 interfaces to those NICs via cross-over cable.
  • Wire some IXP1200 interfaces to interfaces on other IXP1200s each other using crossover cable.
  • Make cables, hubs/switches with free ports (not connected to the Internet) and the IXP1200 interfaces accessable in your lab so that students/researchers can wire their own topolgies.
  • Consider using ART (Automatically Reconfigurable Testbed) software to automatically arrange topologies for you on demand.


Step 3: Install a StrongARM cross-compiler on each front-ends.
Notes:
  • Compiler must target ARMv4 in Big Endian mode ELF binaries

What to do:
  • If you received an SDK from Intel, follow their directions to install the compiler
OR
  • Download GCC and install it yourself.

Example:
  • rpm -i /dev/cdrom/ixa.armbe-v4b-fcs.i386.rpm


Step 4: Install Wine on your system
Notes:
  • Used to run the Windows-based microcode compilers

What to do:

Step 5: Install the microcode C compiler, microcode assembler and linker in a Wine-accessable location
What to do:
  • Again, the location of the installation is a site-specific choice
  • The files listed below should be in your BASEC/ixp1200 directory (where BASEC is the path to the root of the C:\ directory in the Wine configuration.
  • You must copy all the registry entreis from SOFTWARE\Intel\Intel IXP1200\UengineC to the Wine system registry. (system.reg)
  • Add c:\\ixp1200\\bin to the path in your Wine configuration file (config).
  • This process was known to work for Wine build 20020122.
  • Files needed:
    • C:\ixp1200\MicroCode\include
      • buf.uc
        constants.uc
        crc.uc
        critsect.uc
        cycle.uc
        dram.uc
        endian.uc
        ether.uc
        field.uc
        hdbm.uc
        ip.uc
        ixplib.uc
        mailbox.uc
        packetq.uc
        pci.uc
        port.uc
        ports_evalcard1.h
        ports_si.h
        ports_validcard.h
        rec.h
        rfifo.uc
        scratch.uc
        sig.uc
        sram.uc
        stdfunc.uc
        stdmac.uc
        tfifo.uc
        tx.uc
        xbuf.uc
    • C:\ixp1200\MicroCode\include
    • C:\ixp1200\bin
      • ixa_license.dll
        mcpcom.exe
        msvcirt.dll
        uca.exe
        ucc.def
        uccl.exe
        ucld.exe
        uword.def
        uword3.def
        uword5.def
    • C:\ixp1200\uEngineC\include
      • errcode.h
        ixp.h
        memory.h
        mutexlv.h
        seml.h
        stdlib.h
        string.h
    • C:\ixp1200\uEngineC\include
      • libc.c
        rtl.c


Step 6: Install the NCL and IDL compilers and the ACE dynamic libraries
Notes:
  • These come in the SDK installation

What to do
  • - You must get this library from within the full IXA SDK installation
  • - You can find the files in the file ixa.binaries-2.0.D-fcs.i386.rpm
  • - Remember the directory you've installed these two programs in for step 4 in user specific configuration

Example:
         rpm2cpio /dev/cdrom/RPMS/ixa.binaries-2.0.D-fcs.i386.rpm | 
	 cpio -i -r "*usr*nclcomp" "*usr*tao_idl" "*usr*libACE.so"

         Interactively with cpio : 
           rename usr/bin/nclcomp -> /p/ixasdk/bin/nclcomp
           rename usr/bin/tao_idl -> /p/ixasdk/bin/tao_idl
           rename usr/lib/libACE.so -> /p/ixasdk/lib/libACE.so
	 


Step 7: Arrange remote access to the IXP1200 board
Notes:
  • This can be tricky. At Purdue we have a home-grown system.
  • At worst by default you can telnet to 192.168.0.2 (the address of the Bridal Veil board by default). From there you can ftp files kfrom the host machine at address 192.168.0.4 and soft-reboot the board.

What to do:
  • Users must be able to login to the board's StrongARM component running Linux
  • Users must be able to upload programs to the IXP1200 in some manner
  • Users should probably be able to powercycle the boards
  • You probably want to export a directory via NFS to the Bridal Veil board to make available AT LEAST the bin/arm-be directory IXA SDK.

Example:
  • On the host machine :
    • Export a directory (/home/p/ixasdk/export) to the Bridal Veil board
    • 	 echo "/home/p/ixasdk/export/      192.168.0.2(rw,no_root_squash)" \
               >> /etc/exports
      
    • Modify the tcp wrappers to allow this mounting :
    • 	 echo "portmap: 192.168.0.2
      	 mountd: 192.168.0.2" >> /etc/hosts.allow
      
  • On the bridal veil board :
    • Mount the exported directory
    • 	 mount 192.168.0.2:/home/p/ixasdk/export /mnt
      


Step 6: Connect the IXP1200 ethernet interfaces
What to do:
  • Arrange as you wish, but its a good idea to have conventions and a network map for users.

If you have any questions or concerns about the site, please contact <bobd@saintjoe.edu>