CHEETAH Software

BWdetail     Virtualizer     Circuit-TCP     Web100-based CTCP     CCPM/CCSA/RSVP-TE client    
CHEETAH-Lite     Circuit-aware Squid     WebFT     CHEETAH end host software

Performance measurement tool - BWdetail

      BWdetail is a tool to measure available bandwidth, and provide detailed information relating to the TCP stack without requiring kernel modification. BWdetail takes advantage of the TCP_INFO struct via a getsockopt call to record information such as the current congestion window.  With the use of TCP_INFO, no kernel modifications such as Web100 are necessary to record the cwnd. BWdetail can help identify limitations at the end-system which cause inadequate performance, and reveal the effects kernel parameter changes have on the TCP flow. In addition, BWdetail is useful for analysis of TCP congestion control algorithms, both for comparison of existing algorithms or development of new ones.

  • Click here to download the BWdetail
  • Click here to download a detailed presentation on BWdetail

Switch virtualization tool - Virtualizer

      The purpose of the virtualizer is to allow the Force10 E600 switches of the HOPI testbed to be controlled by two different control-plane solutions, the original DRAGON-based solution deployed on HOPI and our new CHEETAH control-plane solution. More generally, the virtualizer is part of an effort to virtualize the HOPI testbed architecture to introduce dynamically shared circuit-switched/virtual-circuit networks into the core in order to support multiple GMPLS control- and management-plane instances to encourage more networking researchers to use this testbed. The virtualizer presents a virtual representation of the Force10E600 to each networking-researcher's software. This enables a control- or management-plane software module to operate in a normal fashion, while the virtualizer checks commands issued by the controlor management-plane software module to ensure that it manipulates only its allocated resources. The resource set allocated to each experimental software module consists of some subset of the switch's ports, VLAN IDs, and bandwidth.

  • Click here to download the Virtualizer

Linux kernel module - CTCP

      The CTCP kernel module is a circuit-oriented congestion control algorithm. Starting with Linux 2.6.13, congestion control algorithms can be dynamically loaded in as kernel modules. This change eliminated the need to patch the kernel to make changes to congestion control. A congestion algorithm structure is maintainable for each algorithm which is referenced by TCP when it accesses congestion control functions for a given socket. CTCP has been implemented as one such module. In CTCP, a configurable parameter sets the congestion window value, which remains unchanged for the duration of the connection. Congestion control is effectively eliminated when using CTCP.

  • Click here to download the CTC module

Web100-based CTCP implementation

      This package contains a web100-based CTCP implementation:

  • "Web100-CTCP/Web100-CTCP": patches and instructions to install web100-based CTCP kernel. This also contains the source code for the ctcpWad, which is required to set up a CTCP connection for unmodified user applications.
  • "Web100-CTCP/modified_iperf-2.0.2": the modified iperf code, which uses the CTCP API to directly use CTCP socket.
  • "Web100-CTCP/ctcp-july06.ppt": presentation of CTCP
  • "Web100-CTCP/modified_iperf.doc": description and usage of the CTCP API

CCPM, CCSA, and CHEETAH RSVP-TE client for Sycamore SN16000

      CHEETAH Control Plane Module (CCPM) is a software package that serves as an external GMPLS engine for Ethernet switches. It is designed to enable non-GMPLS switches to participate in the dynamic end-to-end circuit setup. It consists of two main components, the OSPF-TE routing module and the RSVP-TE signaling module. It supports Ethernet switches from major vendors such as Dell, Force10, and Foundry. This particular build is for Force10 E600 switches deployed in Internet2 HOPI network.

  • Click here to download the CCPM

      CHEETAH Client System Agent (CCSA) is a software package to enable end hosts to initiate circuit setup requests. It is based on the CHEETAH end-host RSVP-TE client developed for Sycamore SN16000 switches. It consists of two daemons, RSVPD and cheetahd, and a tool called circuit-requestor, with which end users can setup and release circuits manually. It also provides APIs so that it can be integrated into any software that wants to automatically setup and release circuits. The main extension of the CCSA is the support of L2SC switching, i.e., the support of VLANs. With this support, an end host can have multiple circuits to the same or different remote end hosts at the same time.

  • Click here to download the CCSA

      CHEETAH RSVP-TE client for Sycamore SN16000 is a software package developed to enable end hosts to initiate circuit setup across the CHEETAH network, which has Sycamore SN16000 switches as the backbone. It consists of two daemons, RSVPD and cheetahd, and a tool called circuit-requestor, with which end users can setup and release circuits manually. It also provides APIs so that it can be integrated into any software that wants to automatically setup and release circuits. This software is compatible with SN16000 version 7.6.2.

  • Click here to download the CHEETAH RSVP-TE client

CHEETAH-Lite for Sycamore SN16000

      The CHEETAH-Lite control-plane software provisions and releases circuits while tracking network and switch resources. The "lite" designation implies that this is a simplified, centralized solution for the SN16K hardware, replacing the original CHEETAH control-plane software that was more robust but also difficult to set up and maintain. CHEETAH-Lite is written for the CHEETAH network, a network of Sycamore SN16000 switches, but can be adapted for use with other equipment.

  • Click here to download CHEETAH-Lite

Circuit-aware Squid

      Circuit-aware Squid enables end users not directly connected to a dynamically shared circuit/virtual circuit backbone network (e.g., HOPI and CHEETAH) to nevertheless use its services. Circuit-aware Squid serves as a gateway to interconnect the connectionless IP segments at the edges (regional/enterprise subnetworks) with the dual core networks of a circuit-switched subnetwork and an IP based subnetwork. We have integrated circuit-requestor and CTCP into Squid to make it circuit-aware. When a Web-page request is received by a circuit-aware Squid, if there is a cache miss, the Squid detects if there is an existing circuit to the parent Squid for this request. If such a circuit already exists, the Web traffic is simply sent on that circuit and the congestion-control algorithm for the socket serving this Web request is set to be CTCP. If no such circuit exists, the Squid attempts a circuit setup to its parent. To reduce the effect of call-setup delay, the initial Web request, and perhaps a few more, are served by the Internet path via the primary NIC while the circuit is being established. In addition, we have implemented a monitoring function in Squid, which periodically checks the log file to track the amount of data transmitted and received by the secondary NIC. If there was no incoming or outgoing traffic on the secondary NIC in the past period, the monitoring function invokes circuit-requestor to tear down the circuit.

WebFT

      WebFT demonstrates how a file transfer application can leverage the presence of a CHEETAH network to achieve lower delays if the TCP/IP path is highly loaded, round-trip time is high, or the file size is large. This application software consists of a Web-server side program and a Web-client program. WebFT integrates the CHEETAH end-host modules of RSVP-TE client and FRTP to dynamically establish/release circuits and then use FRTP to transfer data. WebFT requires no modification to the application software at both the Web client and Web server ends.

CHEETAH end-host software

      To take advantage of the benefits brought by the CHEETAH service, software enhancements are needed at end hosts. An overview of the end-host CHEETAH software architecture is shown in figure below. In addition to the primary Ethernet NICs connected to the Internet (NIC I), CHEETAH End-host hardware configuration requires a secondary Ethernet NICs (NIC II) in end hosts, which are accessible through CHEETAH circuit-switched network. We identify four basic modules for the CHEETAH end-host software: an Optical Connectivity Service (OCS) client module, a Routing Decision (RD) module, a RSVP-TE client module, and a high-speed transport protocol (C-TCP) module. For more detailed information about CHEETAH end-host software, please check CHEETAH end-host software design document.