= Setting up the Quanta LB4G = Unlike the IP8800, This is a purely !OpenFlow switch, unable to do ''anything'' without a controller. The steps can be found documented elsewhere (ref. below), but we repeat the steps just in case things change. == 1. Preparation == === 1.1 References === Flashing the firmware * http://openflowswitch.org/wk/index.php/LB4GImageSetup * http://www.openflow.org/wk/index.php/IndigoQuickStartLB4G (possibly more up-to-date) Configuring the switch * http://www.openflow.org/wk/index.php/IndigoConfiguration - synopsis of system files, variables * http://www.openflowswitch.org/wk/index.php/IndigoReleaseNotes - the actual HOWTO for turning the box into an !OpenFlow switch [[BR]] === 1.2 Prerequisites === * OS on PC: Ubuntu * packages on PC: ckermit, xinetd, tftpd-hpa == 2. Installation == === 2.1 Connecting to the switch === A serial connection can be set up between the switch and a machine using a RJ-45 to RS-232 cable. Surprisingly, a Cisco cable will work for this. Connect the RJ-45 end to the port labeled "Con" on the switch, and the other end to the PC. Next, start a session from a shell with kermit as root: {{{ kermit -l /dev/ttyS0 set carrier-watch off set baud 115200 connect }}} Fire up the switch. If you see the U-Boot banner, you can stop the boot process (hit ctrl-c) so you can copy/burn the images onto flash. === 2.2 updating u-boot === This step is comprised of two steps: 1. change network settings of switch 2. update u-boot via tftp The network settings are hard-wired into the switch via environment variables. The default settings statically set the switch's IP to a 192.168.X.X address block, which you might want to change depending on your network setup. This can be done using command `setenv`. While all environment variables can be viewed with `printenv`, the four variables of our interest are: * ipaddr (switch's static ip, default 192.168.1.2) * gatewayip (what the switch sees as default gw on its route table) * serverip (who to talk to for services e.g. tftp) * netmask (self-explanatory) These variables should correspond to those for the network you're attaching the switch to. In our case, we set the switch's Ip to 10.50.0.40, and cut out the hassle of setting the gateway IP by just directly pointing the switch to think the tftp server is the gateway: {{{ => setenv gatewayip 10.50.0.42 => setenv ipaddr 10.50.0.40 => setenv netmask 255.255.0.0 => setenv serverip 10.50.0.42 => save }}} once the variables are set, you can start copying the necessary files to the switch using `copy`: {{{ => copy -b tftp://10.50.0.42/u-boot.bin => copy -r tftp://10.50.0.42/uInitrd2m => copy -d tftp://10.50.0.42/LB9A.dtb => copy -k tftp://10.50.0.42/uImage }}} and reboot the switch. if all goes well, you should be at the Linux shell prompt once the thing starts up. == 3. Configuration == The Quanta is pretty much just a modified, minimal Linux box with a bunch of ports. Upon startup, you will be at the Linux shell as root. * eth0 and eth1 as given by `ifconfig -a` are eth1 and eth2 on the faceplate, respectively. The interfaces can be manipulated as with any Linux box using `ifconfig`. * The ssh server (dropbear) is enabled by default. Telnet can be started by invoking telnetd. In either case the default username is `root`, and password is `OpenFlow`. === 3.1. Key files === The !OpenFlow components of the switch rely on the following: * `/etc/rc.sh` - system startup script: bring up `lo`, mounts filesystems, loads kernel modules, ect * `/etc/system_config` - system initialization scrit * `/etc/system_config` - system configs unique to each switch * `/rc.soc`, `/etc/config.bcm` - starts !OpenFlow components * `/etc/find-env` - defines many of the system variables