6.23. IPRoute2-2.6.29-1

The IPRoute2 package contains programs for basic and advanced IPV4-based networking.

6.23.1. Environment Settings

This package requires compiler variables to be set for the target in the environment.

export CC="${CLFS_TARGET}-gcc"
export CXX="${CLFS_TARGET}-g++"
export AR="${CLFS_TARGET}-ar"
export AS="${CLFS_TARGET}-as"
export RANLIB="${CLFS_TARGET}-ranlib"
export LD="${CLFS_TARGET}-ld"
export STRIP="${CLFS_TARGET}-strip"

6.23.2. Installation of IPRoute2

The following command prevents install from trying to strip the binaries:

for dir in ip misc tc; do
    cp ${dir}/Makefile{,.orig}
    sed 's/0755 -s/0755/' ${dir}/Makefile.orig > ${dir}/Makefile
done

The arpd binary included in this package is dependent on Berkeley DB. Because arpd is not a very common requirement on a base Linux system, remove the dependency on Berkeley DB by applying the sed command below. If the arpd binary is needed, instructions for compiling Berkeley DB can be found in CBLFS at http://cblfs.cross-lfs.org/index.php/Berkeley_DB.

cp misc/Makefile{,.orig}
sed '/^TARGETS/s@arpd@@g' misc/Makefile.orig > misc/Makefile

Compile the package:

make DESTDIR=${CLFS} CC="${CC}" \
    DOCDIR=/usr/share/doc/iproute2 \
    MANDIR=/usr/share/man

The meaning of the make option:

DESTDIR=/

This option overrides the default DESTDIR of /usr, so that that the IPRoute2 binaries will be installed into /sbin. This is the correct location according to the FHS, because some of the IPRoute2 binaries are used by the CLFS-Bootscripts package.

DOCDIR=/usr/share/doc/iproute2 MANDIR=/usr/share/man

The DESTDIR=/ parameter would cause documentation to be installed into /share/doc and /share/man. These options ensure the docs are installed to the correct locations.

Install the package:

make DESTDIR=${CLFS}  \
    DOCDIR=/usr/share/doc/iproute2 \
    MANDIR=/usr/share/man install

6.23.3. Contents of IPRoute2

Installed programs: ctstat (link to lnstat), ifcfg, ifstat, ip, lnstat, nstat, routef, routel, rtacct, rtmon, rtpr, rtstat (link to lnstat), ss, and tc

Short Descriptions

ctstat

Connection status utility

ifcfg

A shell script wrapper for the ip command

ifstat

Shows the interface statistics, including the amount of transmitted and received packets by interface

ip

The main executable. It has several different functions:

ip link [device] allows users to look at the state of devices and to make changes

ip addr allows users to look at addresses and their properties, add new addresses, and delete old ones

ip neighbor allows users to look at neighbor bindings and their properties, add new neighbor entries, and delete old ones

ip rule allows users to look at the routing policies and change them

ip route allows users to look at the routing table and change routing table rules

ip tunnel allows users to look at the IP tunnels and their properties, and change them

ip maddr allows users to look at the multicast addresses and their properties, and change them

ip mroute allows users to set, change, or delete the multicast routing

ip monitor allows users to continously monitor the state of devices, addresses and routes

lnstat

Provides Linux network statistics. It is a generalized and more feature-complete replacement for the old rtstat program

nstat

Shows network statistics

routef

A component of ip route. This is for flushing the routing tables

routel

A component of ip route. This is for listing the routing tables

rtacct

Displays the contents of /proc/net/rt_acct

rtmon

Route monitoring utility

rtpr

Converts the output of ip -o back into a readable form

rtstat

Route status utility

ss

Similar to the netstat command; shows active connections

tc

Traffic Controlling Executable; this is for Quality Of Service (QOS) and Class Of Service (COS) implementations

tc qdisc allows users to setup the queueing discipline

tc class allows users to setup classes based on the queuing discipline scheduling

tc estimator allows users to estimate the network flow into a network

tc filter allows users to setup the QOS/COS packet filtering

tc policy allows users to setup the QOS/COS policies