ClassHopper alternate queuing discipline (617)
ClassHopper is a layer 2/3 alternate queuing discipline that prioritizes UDP and TCP network traffic required for end-to-end quality of service (QoS) voice and video applications or any embedded device that must have guaranteed real-time throughput and bandwidth allocation for critical data streams. ClassHopper is a member of the TeamF1 Internet Software Extensions for Classification and Traffic Shaping (INSECTS) suite.
- Implements CBQ, WFQ, and other queuing disciplines
- Hierarchical bandwidth classes for both input and output directions
- Scheduler combines priority, weighted round-robin and borrowing
- Defends against denial of service (DoS) attacks by rate limiting based on traffic classification.
- Integrates well with MC/ML-PPP for traffic shaping of IP backhaul traffic
- Support for Layer 2 fields such as 802.1p tags
- Support for CPU types of either endian-ness including PowerPC, MIPS, X86, ARM/XScale
- High-performance, minimal latency
- Royalty-free, full source distribution for VxWorks and Linux
The ClassHopper framework contains APIs that provide:
- Abstractions to support a wide variety of QoS functions
- A platform to easily implement new queuing disciplines without knowledge of the underlying kernel implementation
- A system model with 3 independent components:
- Classifier: classifies a packet to a scheduling class based on predefined rules
- Queuing Discipline: implements packet scheduling and buffer management algorithms
- Queue Regulator: limits the amount that a driver can dequeue at a time
- A string based command interface to configure the system parameters and functionality
The ClassHopper ALTQ (alternate queues) system allows various queuing disciplines and traffic conditioning models to be seamlessly implemented including:
- CBQ: Class Based Queuing
- WFQ: Weighted-Fair Queuing
- RED: Random Early Detection
- ECN: Explicit Congestion Notification
- RIO: RED with IN and OUT Flow-valve
- H-FSC: Hierarchical Fair Service Curve
ClassHopper is a high performance, alternate queuing discipline framework that extends a network stack. ClassHopper offers the embedded developer unique, advanced features including a class-based queues implementation and a framework for supporting custom queuing disciplines. It has a small footprint and flexible APIs specifically designed for use in an embedded environment. ClassHopper performs traffic classification, conditioning and scheduling in the input as well as output directions, enabling bandwidth control for different packet types. ClassHopper is the optimal solution for voice and video applications that require guaranteed real-time throughput and bandwidth allocation for critical data streams in the network stack. It handles network stack overload conditions gracefully with selective packet discard. It effectively polices the boundary between the driver and the stack using custom configured rules that prevent denial of service (DoS) attacks at the network layer or higher. It can also be used to implement traffic regulation for Multi-Class / Multi-Link PPP implementations such as the GrandPPPrix product offered by TeamF1.
ClassHopper provides the sophisticated queuing disciplines required by the heterogeneous networks in common use today. It enables a tightly controlled yet flexible system of traffic prioritization and congestion management for network packets based on criteria such as Layer 2 fields (such as VLAN tags and 802.1p prioritization fields), Layer 3 fields (ToS bits, source and destination IP addresses or TCP/UDP ports), or any custom fields within a network packet.
ClassHopper can be programmatically controlled or managed using a string-based command layer, controlled through a web-server, structured data files such as XML, or via a CLI. The ClassHopper rules can use a variety of criteria including custom field specifications based on headers at Layer 2 (data-link layer) or higher. These fields can be used for classification of incoming traffic as well as for tagging outgoing traffic. ClassHopper offers highly sophisticated congestion management and traffic prioritization policies, and enables end-to-end QoS.
ClassHopper is optimized for embedded and real-time operating systems, taking advantage of unique features presented by each of the operating systems supported. ClassHopper is available with optimized editions for both the latest, and older but still popular, versions of VxWorks and embedded Linux. It has been extensively validated on a variety of CPU architectures to minimize development and integration efforts. ClassHopper for VxWorks 5.x, 6.x, AE, and platforms such as Network Equipment (PNE), Consumer Devices (PCD) and Industrial Devices (PID) bundles include optimized support for multi-tasking and memory partitions. ClassHopper for embedded Linux has been optimized for multi-processing and memory management on the 2.4 and 2.6 kernel variants. It transparently works with a wide selection of stacks including: those bundled with VxWorks, Linux, or NetF1 the high performance stack by TeamF1. Like the other members of the INSECTS suite, it is built as a network service that binds itself with the MUX layer, thereby guaranteeing compatibility with any embedded application with minimal to no changes, and without any special network stack source code requirement.
If you are interested in more information on how Wind River partners with this company, click here.