NEBULA PDF Print E-mail

Techniques for End-to-End Quality-of-Service control in multi-domain IP Networks


The specific topics of this project are:

  • The analysis, design and evaluation of a multicast protocol for Diff-Serv domains, adopting a Bandwidth Broker Architecture (CAMP - Call Admission Multicast Protocol). The multicast protocol performs admission control for multicast traffic and system configuration; it supports different classes of service. The analysis is carried out in the framework of the NS-2 network simulator
  • The implementation of the proposed multicast protocol in a test-bed environment with the purpose of evaluating the performance in a real network framework.

The testbed implementation including the CAMP protocol is available under Apache licence through the "Software" link. The final results of the projects are presented in the 2nd International Workshop on QoS in multiservice IP networks.

Supported by:

This project is supported by the Italian Ministry for the University and the Scientific and Technological Research (MURST) under Contract n. MM09265173 for the years 2001-2002. It involves other italian Universities.


  • Elena Pagani, Matteo Pelati, Gian Paolo Rossi, "A Linux-Based Testbed for Multicast Sessions Set-up in Diff-Serv Networks''. Proceedings 2nd International Workshop on QoS in Multiservice IP Networks (QoS-IP 2003), Lecture Notes in Computer Science (Springer), Milano, Feb 24-26 2003.
  • Pierpaolo Baccichet, Elena Pagani, Gian Paolo Rossi, "Quality of Service Multipath Multicast Protocol''. Proceedings 4th ACM International Workshop on Networked Group Communication (NGC'02), Boston, Oct. 23-25 2002, pp. 123-129.
  • Elena Pagani, Gian Paolo Rossi, "Distributed Bandwidth Broker for QoS Multicast Traffic''. Proceedings 22nd IEEE International Conference on Distributed Computing Systems (ICDCS 2002), Vienna, Jul. 2-5 2002, pp. 319-326.
  • Elena Pagani, Gian Paolo Rossi, "Measurement-Based Admission Control for Dynamic Multicast Groups in Diff-Serv Networks''. Proceedings 2nd International IFIP-TC6 Networking Conference (NETWORKING 2002), Lecture Notes in Computer Science Vol. 2345 (Springer), Pisa, May 19-24 2002, pp. 1184-1189. An extended version of this paper in included in the Proceedings of the Joint Planet-IP & Nebula Workshop, Courmayeur, Jan 9-11 2002.
  • Andrea Borella, Giovanni Cancellieri, Elena Pagani, Gian Paolo Rossi, "Implementation Schemes for Multicast Bandwidth Brokers in Multidomain Networks''. International Journal of Computer and Telecommunications Networking (Elsevier), Vol. 37, n.5, pp. 519-540, Nov. 2001.
  • Elena Pagani, Gian Paolo Rossi, "A Framework for the Admission Control of QoS Multicast Traffic in Mobile Ad Hoc Networks''. Proc. Fourth ACM International Workshop on Wireless Mobile Multimedia, Roma, Jul. 21 2001, pp. 3-12.
  • Elena Pagani, Gian Paolo Rossi, "Analysis and Evaluation of QoS-Sensitive Multicast Routing Policies''. Proc. First IEEE International Conference on Networking (ICN'01), Lecture Notes in Computer Science Vol. 2093 (Springer), Colmar, Jul. 9-13 2001, pp. 468-477.


The full implementation of the CAMP protocol for Linux is available for download under the Apache license. The archive includes both the full source tree of the CAMP implementation, and precompiled binaries. Kernel patch and modules are known to work using kernel 2.4.18.

Download camp-0.1b.tar.gz

CAMP Testbed setup HOWTO: in the following, we provide basic information about how to set-up the camp testbed on your network. This HOWTO refers to the installation of a pre-compiled version of CAMP. Though sources are provided in our distribution package, the build process is not covered by this HOWTO. The CAMP testbed has been succesfully tested on RedHat Linux 7.2 updated with a 2.4.18 kernel.

First, you will need at least three machines: one server, one proxy and one client. The server will pump data over the network, the proxy implements all the functionalities of a CAMP-aware router and finally the client pc is used to receive the data stream.

First we set-up the CAMP proxy. In order to do that you will need to upgrade to kernel version 2.4.18. Once that is done you will have to replace some kernel source files in order to activate the MFC hooking feature. You should have your kernel sources located in /usr/src/linux-2.4.18/linux. If this is incorrect edit the src/kernel-patch/2.4.18/deploy file and set the SRCPATH variable. Once that is done you can reconfigure your kernel by running make xconfig. You will find a couple of new features in the configuration panel. Under the Networking options activate the following features:

  • Network packet filtering
  • Network event filtering
  • Multicast router event filtering
  • IP Multicast routing (both PIM-SM v1 and v2)
  • QoS and fair queueing (CBQ and SFQ)

Now recompile your kernel. Once you have your new kernel ready load it on the CAMP-proxy machine. Locate the src/module/camp_proto.o of the CAMP distribution and load it on the proxy machine using the following command.

insmod camp_proto.o

In addition you will have to create a new device object by issuing the following:

mknod /dev/kcamp0 252 0

Once you have done this, you will have to configure the proxy daemon. Open the src/proxy/cproxy.xml configuration file and locate a section similar to the following:


In order to function correctly, the CAMP proxy must be aware of the multicast traffic it will have to remark. To instruct the proxy about how the multicast traffic should be remarked use the PRIO property of the MCASTADDR XML tag. Supported services are: PLATINUM, GOLD and SILVER. Once you have modified this file run the proxy daemon with the following command:

./cproxy cproxy.xml

Now you have your CAMP proxy configured. It's now necessary to set-up the server and the client.

Let's start with the server. Locate the src/server/cserver.xml file of the CAMP distribution. This file defines the details about the streams that should be pumped over the network. Each TSET difines a list of streams belonging to the same transmission. Details about the meaning of each tag can be found directly in the xml file. Once you have modified the cserver.xml file you can start the streaming server by issuing the following command:

./cserver cserver.xml

When loaded, in order to initiate a transmission you can issue the command start NAME_OF_TRANSMISSION.

The client (src/cclient/cclient) does not require any particular configuration process. In order to start it issue the following command:


If you would like the client to perform automatic probing use the -a flag. Once the client has started, in order to forward the current stream to an outside process (a media player for example), use the f command to forward the stream to a FIFO.

If you have any problem installing and configuring the CAMP testbed, please contact Matteo Pelati at This e-mail address is being protected from spambots. You need JavaScript enabled to view it .


(Project ended in 2003.)

Last Updated on Wednesday, 12 November 2008 16:51