************************************************ ARQOS Project Software Release 1.0 Part of Demonstration in FTN Jan/2001 meeting ************************************************ ************* 1. Overview ************* The purpose of this implementation is to show the effect of pricing mechanism. Pricing information is added to the RSVP message. When RSVP-enabled router gets the "resv" message, it sends a request message, which includes pricing and router resource information, to the Policy Server. The Policy Server, in turn, makes decision based on not only the resource availability, but also the pricing information. Then the Policy Server responds with either a "confirm" or "reject" message. If the decision is positive, the router will configure its traffic component accordingly. Finally, the "confirm" or "reject" information is forwarded to the original sender. After getting the "confirm" message, the sender is ready to send out data packets. Our implementation includes the following components: RSVP (daemon, sender and receiver), Policy Server, and COPS. Our implementation is based on KOM RSVP engine by Martin Karsten and Vivida COPS implementation. See page 4 of "demo.pdf" for a more detailed view of the system architecture. Currently, only Linux is supported. ******************* 2. Implementation ******************* 2.1 RSVP Pricing information is stored in "Policy Elements" field which is part of a "Policy_Data" object. P_type=53248 is used. See "RSVP Extensions for Policy control" (RFC2750) for detail. (This implementation is only based on our understanding of the RFC.) Traffic control is achieved by using Linux traffic control tools, "TC". A simple strict priority scheduler is used. The premium traffic is mapped to a queue with higher priority. All other traffic is sent to the lower priority queue. 2.2 Policy Server "Mysql" is chosen as the database server. There are one entry in the database for each interface. Each entry includes the IP address of the interface, total bandwidth, current available bandwidth and unit price ($/Mbps). A policy server daemon is responsible for processing incoming requests, making decisions and updating the database as needed. 2.3 COPS Policy server interfacing with RSVP daemon via COPS. A COPS server is running at the policy server side, a COPS client is running at the router side correspondingly. 2.4 Web interface A web interface is written to automate the demonstration. CGI scripts accept user request, check the status of RSVP daemon and Policy Server database, synchronize RSVP sender and receiver, and log meaningful information. Realplayer and Realserver are used as the actual client and server for real data traffic. ***************** 3. Installation ***************** 3.1 System Requirement * Linux (softwore is tested under Kernel version 2.2.12, 2.2.14 and 2.2.16) * GCC 2.95 and up * Mysql database and development driver. Go to www.mysql.com and get pthe latest release. * TC. Get the latest iproute2 package fromftp://ftp.inr.ac.ru/ip-routing/ 3.2 Config and Compile * Assume your current directory is $curpath * untar the package: tar xvfz arqos.tar.gz * go in the the direction: cd $curpath/arqos/cops_rsvp * check out the readme file in that directory * go back to $curpath/arqos * make config. Answere "y" to the question "Pricing addition and COPS support" * make all 3.3 Policy Server * install Mysql server and development library * create database names "jerry" * create table "RESOURCE_INFO" +--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | INTERFACE_ID | varchar(15) | | PRI | | | | TOTAL_BW | varchar(20) | | | | | | AVAILABLE_BW | float(10,2) | YES | | NULL |Mbps | | PRICE | float(10,2) | | | 0.00 |$/Mbps | +--------------+-------------+------+-----+---------+-------+ * input entries according to your network * create user account in mysql, username: broker, password:broker * policy server binary locates in $curpath/cops_rsvp/application/policyServer. Read Readme file in the same directory. 3.4 RSVP router * RSVP daemon locates in $curpath/rsvp/bin-Linux-2.2.xx/ * read readme file in $curpath/rsvp for detail information of KOMS RSVP engine.