INTRODUCTION
This component demonstrates various features of the Intel I210 Ethernet controller.
These features can be used for developing Audio/Video Bridging applications,
Industrial Ethernet applications which require precise timing control over frame
transmission, or test harnesses for measuring system latencies and sampling events.
This component - igb_avb - is limited to the Intel I210 Ethernet controller. The kernel
module can be loaded in parallel to existing in-kernel igb modules which may be
used on other supported Intel LAN controllers. Modifications are required to
the in-kernel drivers if the existing in-kernel igb driver has support for the Intel I210.
BUILDING
There are three primary components - kmod (for the kernel-mode igb_avb driver),
lib (for the user-mode driver library), and examples (for test applications).
To build, 'cd' into each of the respective directories, and execute 'make'.
The kernel igb module can be built which supports the latest Linux kernel
3.x PTP clock support - to enable, modify kmod/Makefile and add -DCONFIG_PTP
as a build option (e.g. EXTRA_CFLAGS += -DCONFIG_PTP).
The example application uses the pciutils library - the latest version
can be downloaded from < ftp://ftp.kernel.org/pub/software/utils/pciutils/ >.
Download and extract the library, and run 'make;make install;make install-lib'.
RUNNING
To install the kernel mode driver, you must have root permissions. Typically,
the driver is loaded by:
<optional> sudo modprobe dca
sudo modprobe ptp
sudo insmod ./igb_avb.ko
This package relies on using the linuxptp daemon to establish time
synchronization. The latest source for this is available here:
git clone git://git.code.sf.net/p/linuxptp/code linuxptp-code
Type 'make' to build. The required kernel flags are default on Fedora 16.
Assuming kernel support is enabled, simply 'modprobe ptp' to load the
required kernel mode components. Example command line to the daemon is:
ptp4l -2 -i p11p1
Note for PTP to work, you may need to explicitly disable the Linux firewall by
executing 'service ipchains stop' or 'service iptables stop'.
The test application requires root permissions as well to execute and
attach to the driver.
sudo ./test
To exit the test app, hit Ctrl-C. The application gracefully tears down
the connection to the driver. If the application unexpectedly aborts the
kernel-mode driver also reclaims the various buffers and attempts to clean up.
The application should be able to re-initialize and use the transmit queues
without restarting the driver.