Views
Configuring Quanta LB4G
From OpenFlow Wiki
Contents |
Release Notes for quanta-of0.8.9r2-1
NOTE: These notes are for the 0.8.9 release of OpenFlow.
For the 1.0 Indigo release, please IndigoReleaseNotes.
Overview
This software release includes binary files that can be copied into the flash of a Quanta LB4G Ethernet switch. This system is based on the Broadcom 56514 Ethernet switch device.
The distribution supports the Quanta hardware as an OpenFlow native switch with hardware flow support. It is based on OpenFlow version 0.8.9r2.
Materials
This release includes:
u-boot.bin: A binary image of the U-Boot boot loader.
uImage: A binary image of the Linux kernel
uInitrd2m: A binary image of the ram disk root file system
IMAGE_SETUP: A text file explaining how to install u-boot.bin
RELEASE_NOTES: This text file.
SFS_usage.txt: A text file explaining the use of SFS
sample-init.sh: An example initialization shell script
License Information
The Linux kernel code is based on version 2.6.15 and is released under GPLv2.
U-Boot is based on version 1.1.6 and is released under the GPLv2. It is available at http://www.denx.de/wiki/U-Boot.
Busybox is version 1.4.2 and is released under the GPLv2. It is available at http://busybox.net/downloads/.
The OpenFlow code is covered by the OpenFlow license detailed at http://www.openflowswitch.org/wp/legal/. It is available at http://www.openflowswitch.org/.
The linux-bcm-core.ko file is released as a binary-only file under the OpenFlow license (see above).
Getting Started
The file IMAGE_SETUP explains the steps you will need to get the switch set up and loaded with the new image. This includes:
Connecting to the switch over a serial port which will be necessary in order to configure the switch.
Updating the bootrom to U-Boot which is necessary to load the Linux kernel.
Loading the Linux kernel and ram disk images into flash.
Bringing Up the Switch
Once the system is able to boot Linux, you will see the ~ $ prompt after booting. At this point, the core system support modules have been loaded, followed by the Broadcom hardware support modules and finally the OpenFlow modules.
The last steps are done by searching for an SFS file system in flash. If it exists and the file system_config is found, that file is executed. Otherwise, the file /etc/system_config.default is executed. See the file SFS_usage.txt about how to use this to customize and save your own configuration to flash.
At this point (the first time the switch is powered up) you do not have a complete configuration saved on the switch. So the system will not be operational. Ports are in a disabled state because the system has not created a datapath nor connected to a controller.
From here, you will need to:
- Configure the proper ethernet port to connect to your network
controller.
- Create the datapath using dpctl.
- Add the ports to the datapath.
- Connect to your controller using secchan.
The file etc/sample-init.sh in the ram disk root file system
contains a sample script for the initialization. It is included
in the top level distribution as well.
By adding these steps to your own SFS directory and saving the configuration using sfs_create, the switch will retain your programmed configuration on restart.
Module Parameters
Module parameters may be specified at the insmod operation to affect the operation of the switch. Currently these include the following.
of_bcm_stat_sel: Select the type of stats collected on flow entries. of_bcm_stat_sel=0 (default) Collect packet stats of_bcm_stat_sel=1 Collect byte stats
of_untagged_vlan: Select the VLAN id that is used as an untagged VLAN on all switch ports.
of_untagged_vlan: Select the switch's VLAN id to be used as the untagged VLAN. Packets forwarded with this VLAN id will have the VLAN tag stripped at egress. Untagged packets are processed in the hardware using this VLAN id. Packets arriving at the switch without a VLAN tag will be forwarded to the controller without a VLAN tag.
Known Issues
- This release has received only limited validation and many features are untested.
- Manual bringup: Due to the nature of the distribution, bringing up the system will require manual configuration. See the section "Bringing Up the Switch" above.
- The datapath includes both a HW table and a SW table. The HW table may "shadow" the SW table if overlapping flow descriptions are placed in the two tables (specifically, if lower priority descriptions are put in the HW table). No checks are currently done by the OpenFlow driver to prevent this.
- Similar to (3) above, if the HW flow table space is exhausted, all following flows will be placed in the SW flow table which may result in the "priority inversion" described above.
- Packet and byte counters: Only packet counters or byte counters are supported, not both simultaneously. By default, packet counters are used. To select byte counters, a parameter must be passed to the hardware table kernel module on insertion. See "Module Parameters" above.
- The switch has only been tested in an untagged environment, although it should pass through tags transparently to the controller and should support matching and rewriting of VLAN tags. A system wide "untagged VLAN" can be configured as a module parameter (see above). VLAN tag stripping is not explicitly supported, but setting the VLAN id to the untagged VLAN should have the same effect.
- Not all OpenFlow actions are supported. The following are not supported
- OFPAT_SET_DL_SRC: Set L2 MAC source address
- OFPAT_SET_DL_DST: Set L2 MAC destination address
- OFPAT_SET_NW_SRC: Set L3 IP source address
- OFPAT_SET_NW_DST: Set L3 IP destination address
- OFPAT_SET_TP_SRC: Set L4 source port
- OFPAT_SET_TP_DST: Set L4 destination port
- OFPAT_STRIP_VLAN: Strip VLAN tag: This may be supported by setting to the system's untagged VLAN, but that is untested.
- Actions sequencing is not supported. For example, the action list with 4 actions: "(1) set VID to X, (2) output to port A, (3) set VID to Y, (4) output to port B" has the intention of sending the packet out on different ports with different VLANs. This is not supported. However, sending to multiple ports by specifying each port in a different output action is supported.
- Actions with a wildcard source port may not specify "flood" nor multicast with the expectation of source port blocking.
- The second management ethernet port labeled eth2 (upper right corner of the front panel) appears to have an issue after reboot where it does not come up. A power cycle appears to fix the problem.
