Linux support for IPGMv3
At the time of writing IGMPv3 support is included neither in the stable
2.4 nor in the development 2.5 Linux kernel series. Consequently, the
kernel has to be patched for IGMPv3 support. Two independent patches
are available from the following sites:
They implement both the Delta and Full APIs described in
<draft-ietf-idmr-msf-api-03.txt>, which is for some reason not
currently available from the IETF web. For the time being, a copy is
contained in the tarball with the Cisco patch. The Cisco patch itself
is based on a previous BSD IGMPv3
implementation by Wilbert de Graaf
However, both patches are against rather old versions of the 2.4
kernels. We have thus updated the Cisco patch to compile cleanly and
work on recent 2.4 kernels.
Download kernel patches against
2.4.19 and corresponding header patches.
Installation
Untar the linux-igmpv3.tar.gz file in the parent directory of
your kernel sources (presumably /usr/src) and do the following
as root:
# cd /usr/src/linux-2.4.19
# patch -p1 < ../linux-2.4.19-igmpv3.patch
Note that, as opposed to the original Cisco patch, it is not necessary
to move any files in the original kernel sources.
Then configure and compile your kernel as usual, only don't forget to
select the following configuration options:
- Prompt for development and/or incomplete code/drivers
- IP: multicasting
- IP: IGMPv3/MSF support (EXPERIMENTAL) (NEW)
The header patches can be from any directory applied as follows:
# patch -p0 < /usr/src/headers-igmpv3.patch
It's a good idea though to back up the /usr/include directory
beforehand.
Usage and diagnostics
The documentation accompanying the original Cisco patch applies here
almost without change. When running IGMPv3-enabled applications, you
will find useful to check the contents of the /proc/net/igmp
file. Typically it should look like this:
$ cat /proc/net/igmp
Idx Device Version QRV
1 lo v3 2
Group Mode Srclist
2 eth0 v3 2
Group Mode Srclist
232.1.1.1 INCLUDE { 192.168.1.2 }
In the case of problems, you might want to turn on the kernel debug
messages. This is accomplished by the command
# sysctl -w net.ipv4.igmp_debug_output=1
or simply
# echo 1 > /proc/sys/net/ipv4/igmp_debug_output
Of course, in order to see anything the kernel logger must be
activated in syslog configuration.
Ladislav Lhotka <lhotka@cesnet.cz>
Last modified: Mon Sep 23 15:39:54 CEST 2002