NetCOPE Platform

Date: March 2010
Version: 1.2.0
Authors: The Liberouter Project Team
Organization: CESNET, z.s.p.o.

Contents

1   Purpose of this README

This README document is used as a short manual to install and a brief overview of NetCOPE Platform. More detailed information about NetCOPE platform is available in NetCOPE Platform User Handbook at 'http://www.liberouter.org/netcope/handbook.html'.

Please do not use this README only as a step-by-step manual and read all README files first to familiarize with all available features.

2   Installation instructions

2.1   Supported platforms

NetCOPE Platform supports PC-AT compatible computers only. It has been tested only on computers with 64-bit x86-64 architecture processors.

2.3   RPM Supported GNU/Linux Distribution

Only CentOS 5 distribution is currently supported.

2.4   Installing COMBO cards

After plugging COMBO card into your PCI Express slot, you should test connection between the card and your PC. We use lspci(8) utility for this purpose. lspci(8) is a utility for displaying information about all PCI buses in the system and all devices connected to them. For correct recognition of the COMBO card you need update PCI ID Database used by lspci(8) or download pciutils-3.1.4 (program collection containing lspci(8)) or later. If the lspci(8) output contains the following line (according to the type of installed COMBO card), your COMBO card is connected properly.

$ lspci -d 18ec:
09:00.0 Ethernet controller: Cesnet, z.s.p.o. COMBO-LXT155 (rev d8)
NOTE:Numbers at the beginning of any output line could be different.

2.5   Obtaining packages

The Liberouter project has a common centralized RPM repository for all its subprojects available from URL https://www.liberouter.org/repo/STABLE/x86_64/ . Repository works over secured HTTPS channel. To obtain packages from this repository, you have to authorize yourself with login and password which you have received as our client. (Eventually, use login and password for SVN account.)

To make the standard tool yum(1) work properly with our repository, you should create a new file /etc/yum.repos.d/liberouter.repo with this content:

[liberouter]
name=The Liberouter project RPM repository
baseurl=https://<LOGIN>:<PASSWORD>@www.liberouter.org/repo/STABLE/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://www.liberouter.org/repo/RPM-GPG-KEY-Liberouter
NOTE:You have to substitute <LOGIN> and <PASSWORD> with your real login and password.
NOTE:Liberouter packages are digitally signed using GPG. Public key with GPG ID: 170EC4C1 (fingerprint FB55 3BB6 1571 0361 04CF 766A CAAF 4A06 170E C4C1) used to verify installing Liberouter packages is stored in file https://www.liberouter.org/repo/RPM-GPG-KEY-Liberouter.

Now you should check your repository configuration using yum(1):

# yum repolist | grep liberouter
liberouter           The Liberouter project RPM repository    enabled :   XXX

2.6   RPM packages structure

NetCOPE platform is distributed in form of two main RPM meta-packages. Meta-package for COMBOv2-10G2 cards:

netcope-platform-combov2-10g2

and meta-package for COMBOv2-1G4 cards:

netcope-platform-combov2-1g4

RPM repository is also configured to provide YUMs package groups with the same names. You will probably need to install only one of those RPM packages/groups.

Meta-packages listed above have this RPM packages structure:

netcope-platform-combov2-10g2
  + netcope-platform-fw-combov2-10g2
  + netcope-platform-common
      + netcope-platform-handbook
      + netcope-sw-examples
      + netcope-tools-development
netcope-platform-combov2-1g4
  + netcope-platform-fw-combov2-1g4
  + netcope-platform-common
      + netcope-platform-handbook
      + netcope-sw-examples
      + netcope-tools-development

All NetCOPE RPM packages depends also on these Liberouter packages:

combo-driver
combo-driver-udev-rules
libcombo
libcombo-devel
libcommlbr
libcommlbr-devel
libpcap-sze
libpcap-sze-devel
libsze2
libsze2-devel
liberouter-tools-common
automake
gcc
make

2.7   Installing RPM packages

For COMBOv2-10G2 cards:

# yum groupinstall netcope-platform-combov2-10g2

For COMBOv2-1G4 cards:

# yum groupinstall netcope-platform-combov2-1g4

To get basic info about packages:

# yum groupinfo netcope-platform-combov2-10g2

or

# yum groupinfo netcope-platform-combov2-1g4

You can check installed/uninstalled packages by these commands:

# yum list --disablerepo=* --enablerepo=liberouter
# yum list | grep liberouter
# yum list | grep netcope

You can check info belonging to RPM package by command:

$ rpm -qi <package>

Also you can check installed files belonging to any RPM package:

$ rpm -ql <package>
NOTE:Commands which begin with '#' must be run by root.

2.8   Installation paths

/lib/modules/$(uname -r)/*/*.ko ...................... LKM drivers
/usr/bin/ ............................................ binary tools
/usr/include/ ........................................ header files
/usr/lib/pkgconfig/ .................................. pkg-config libraries
/usr/lib/ ............................................ libraries
/usr/share/man/manX/ ................................. manual pages, eg. man netcope-platform(7), or man netcope(1)
/usr/share/mcs/ ...................................... firmware design files
/usr/share/netcope/fw-combov2-10g2/ .................. COMBOv2-10G2 card firmware files
/usr/share/netcope/fw-combov2-10g2/doc/ .............. COMBOv2-10G2 card documentation
/usr/share/netcope/fw-combov2-1g4/ ................... COMBOv2-1G4 card firmware files
/usr/share/netcope/fw-combov2-1g4/doc/ ............... COMBOv2-1G4 card documentation
/usr/share/netcope/netcope-platform-handbook/ ........ NetCOPE platform handbook documentation
/usr/share/netcope/sw-examples/ ...................... NetCOPE platform software examples
/usr/share/netcope/sw-examples/doxygen/ .............. Doxygen documentation for NetCOPE platform libraries (libcombo, libcommlbr, libsze2, libpcap-sze)
/usr/share/netcope/sw-examples/README ................ NetCOPE platform software examples README (compilation how-to)
/usr/share/netcope/README.html ....................... This document
/usr/share/netcope/RELNOTES.html ..................... NetCOPE platform release notes
NOTE:You can find all these paths valid only when installed all necessary NetCOPE packages.

2.9   Granting User Privileges

If you want to allow non-privileged user to use COMBO cards, add him to combo-rw group:

# usermod -G $(id -G <user> | sed 's/ /,/g'),combo-rw <user>

Or simply edit /etc/group file, where you have to find line begining with the combo-rw string and to the end of this line add required user login. So the result should look like this for the user bfu:

combo-rw:x:10001:bfu
NOTE:group ID can differ on your system

3   Demonstration of work with NetCOPE Platform

Before working with the card, kernel drivers must be loaded. You can check whether combov2_boot and szedata2_cv2 modules are loaded:

$ lsmod | grep szedata2_cv2

$ lsmod | grep combov2_boot

If the modules are not loaded, no output lines were printed. In that case, load the modules by the following command (root account required):

# modprobe szedata2_cv2

# modprobe combov2_boot

When all kernel modules are loaded, csid(1) is able to detect type of plugged cards and provide more detailed information.

After reboot, you should get the output similar to the following on PC with installed COMBOv2 mother card:

$ csid
combo 10G1 n/a

$ csid -s
Board    : combo
Subtype  : LXT155
S/N      : 8100320
Addon0   : 10G1
Chip0    : n/a
S/N0     : 8100373
Addon1   : 10G1
Chip1    : n/a
S/N1     : 8100373
Channels : 82/33 (RX/TX)
Firmware : ok
SW       : 0x1111dead
HW       : 0x00000000
Text     :
PCI brver: 6d05.01.04 (2009/06/10 14:24)

To boot the design into the card, use the csboot tool:

csboot -f 0 design.mcs
NOTE:You can find precompiled mcs files in /usr/share/mcs/ path, if you have installed at least one NetCOPE firmware package.

After booting the design into the COMBO card, you should get following output:

# csid -s
Board    : combo
Subtype  : LXT155
S/N      : 8100320
Addon0   : 10G1
Chip0    : n/a
S/N0     : 8100373
Addon1   : 10G1
Chip1    : n/a
S/N1     : 8100373
Channels : 2/2 (RX/TX)
Firmware : ok
SW       : 0x41c10506
HW       : 0x00060000
Text     : NIC_CV2_10G2
PCI brver: 6d05.01.04 (2009/06/10 14:24)

Device [combo6] szedata2
  (0x41c10504-0x41c105ff) {}: active
Device [combo6] szedata2
  (0x41f10101-0x41f101ff) {}: inactive
Device [combo6] szedata2
  (0xf1010300-0xf10104ff) {}: inactive

Then use ibufctl and obufctl tool to probe and alter status of network interfaces. After you enable network interfaces, use sze2write and sze2loopback tools to receive and send packets.

There are two designs ready for use in the package: One for 1G and another one for 10G interface card. Read the NetCOPE Firmware Guide on how to modify these starting examples and build your own designs.

4   Further reading

For futher information, type:

$ man netcope-platform

to open manual page with the list of all provided command-line tools.

Full documentation is in the /usr/share/netcope/netcope-platform-handbook directory. Firmware documentation is in the /usr/share/netcope/fw-combov2-1g4/doc/ or /usr/share/netcope/fw-combov2-10g2/doc/ directory.

5   Contacting NetCOPE team

5.2   Mailing list

For any questions or general technical support issues, please send mail to the netcope-group@liberouter.org general mailing list.