Multimedia Networks Group  
Multicast Fast Reroute
Multimedia Networks Group
Dept. of Computer Science
University of Virginia

    MPLS Multicast Patch
    MS Thesis
 Contact us

[Overview | Linux Kernel | MPLS-Linux | MPLS multicast | MulTreeLDP | Testing]


   In order to install MPLS Multicast Fast reroute, you first need to install a 2.4.10 Linux kernel, MPLS-Linux 0.995. These are third-party software. Then, you need to install our Multicast extensions for MPLS and the main program, MulTreeLDP.

Linux Kernel

   First, download and uncompress a 2.4.10 Linux kernel on your system.


   You must now patch the kernel to get MPLS Unicast capability. You can download the patch directly from here, or download it from the original project webpage on Sourceforge. Note that you need to install MPLS-Linux 0.995 in order to get the Multicast extensions to work !
   To patch the kernel, just cd to the directory where you uncompressed the Linux kernel source, and type
patch -p1 < /path-to-patch-file/linux-mpls-995.diff

Multicast MPLS

   To add Multicast capability to your MPLS-Linux kernel, download our patch. Installation is similar with the MPLS-Linux patching process:
patch -p1 < /path-to-patch-file/mpls-mc.diff
   Now, you need to compile the kernel. The only difference with regular kernel compilation is that you need to tell the make program to include the MPLS support in the kernel: when you type make menuconfig , in the Networking options section, check the Kernel/User netlink socket, Multi Protocol Label Switching - MPLS and MPLS Ingress Policing boxes as shown here. Choose other options relevant to your system and finish compiling the kernel. When you reboot, if everything went well and you kernel is correctly installed, you should see these lines appear on the screen:
MPLS version 0.995 10/16/2001
MPLS-multicast extensions by Yvan Pointurier ( Feb 2002
   You can also type dmesg | more after your system has booted to see these lines.


   At this point, your system supports MPLS Unicast and Multicast. To try those new features, install the MulTreeLDP program. To do so, just download it and compile it(make ). MulTreeLDP comprehends 3 important pieces of software:

   We describe here how to use the multreeldp program. You must be root to run this program.
  • Daemon mode
    multreeldp [-s|-l ifname] [-y BEAT_PERIOD] [-z BEAT_FACTOR]
    Either the s or l option must be specified.
    With the l option, pressing the enter key will alternatively turn off and on the interface ifname.
    BEAT_PERIOD is the time (in ms, it must be a multiple of 10 ms and the minimum value is 10 ms) between 2 successive probes to detect link failure. Default is 10 ms.
    BEAT_FACTOR defines how often link failure condition is checked. If no probe has arrived during time BEAT_FACTOR*BEAT_PERIOD on a given link, then this link is reported as a failed link. The default is 2.
  • Set everything (multicast LSP and optimal backup path)
    multreeldp -b m_addr -n network_file -t tree_file
    m_addr is the multicast address (FEC) to be bound to the multicast FEC.
    net_file contains the definition of a network.
    tree_file contains the definition of a multicast tree.
  • Test backup path choosing algorithm only (build a constraint backup path)
    multreeldp -n net_file -a tree_file
    net_file contains the definition of a network.
    tree_file contains the definition of a multicast tree spanning over the network.
  • Set a bidirectional multicast LSP
    multreeldp -b m_addr -t tree_file
    m_addr is the multicast address (FEC) to be bound to the multicast FEC.
    tree_file contains the definition of a multicast tree.
  • Set a unidirectional backup LSP (after a multicast LSP has been set)
    multreeldp -b m_addr -r routers_file -k backup_file
    m_addr is the multicast address (FEC) of the LSP to which the backup path is affected. routers_file contains the list of routers on the protected path.
    backup_file contains a backup path definition.
    You need to run this command twice, with two different backup path definition files (they describe the same backup path, in each direction) to get a full, bidirectional backup path.

   A full example, along with configuration files, is available on this page.

Note: for MPLS-Linux users, we provide an updated version of the tool used to manage unicast LSPs, mplsadm. This version is compatible with MPLS-Linux. Type make mplsadm to compile it.


   These programs were adapted from public domain tools to support multicasting. Just untar/unzip the archive and type make to compile the tools. You will find the tools here.

  • ttcp: test multicast LSP throughput.
    Basic usage: on the receiver(s), run
    ttcp -r -u -v -m multicast_IP
    and on the sender:
    ttcp -t -m -u multicast_IP
    Each receiver will print statistics about the packets it received (loss rate, throughput). Additionally, if the -t flag is present then the receiver will print a timestamp each time it receives a packet. More options like the number of packets emitted are available (ttcp --help).
  • msend/mreceive: test packet loss and service interruption time.
    On the receiver, simply run
    mreceive -g multicast_IP -p PORT -n
    and on the sender:
    msend -g multicast_IP -p PORT -f time -n
    to send a packet every time ms (this value should be a multiple of 10 ms, and not less 10 ms) on a defined multicast IP and port. The -n option specifies that the payload of the packets consists of a sequence number, to be analysed by mreceive to detect gaps and duplicates.

D E N A L I Copyright © Multimedia Networks Group , Department of Computer Science , University of Virginia , 2002.
Maintained by Yvan Pointurier.

Last modified: Thu Apr 07, 2005 at 18:07:11 EDT