GrandPPPrix - PPP & Extensions
Multi-Class / Multi-Link PPP
GrandPPPrix is a robust, standards-based embedded implementation of the Point-to-Point Protocol (PPP), Multi-Link PPP (ML-PPP or MP), and Multi-Class Extensions to MP (MCMP). It includes the core components required to implement advanced, secure PPP in an embedded device to facilitate multi-protocol communication using single or multiple independent point-to-point links. With built-in support for prioritization, it also provides efficient transport of multimedia traffic and minimizes end-to-end delays. GrandPPPrix’s flexible compression, authentication, and encryption over diverse physical transports are ideal for use in constrained embedded environments.
Point-to-Point Protocol
PPP is a widely-used IP encapsulation scheme in synchronous / asynchronous connections, particularly in wide area networks. It includes a Link Control Protocol (LCP) for link establishment, configuration and testing, and several Network Control Protocols (NCPs) to transport traffic for a particular protocol suite, such as IPCP for IP traffic. GrandPPPrix provides an advanced standards- based implementation of PPP for synchronous and asynchronous links. It also includes an implementation of PPP over Ethernet (PPPoE), which encapsulates PPP protocol information within an Ethernet frame and routes packets between the PPP interface and the actual Layer 2 (Ethernet) interface. While GrandPPPrix includes a full-featured implementation of PPP, it is also capable of providing MP, MCMP, and other advanced features layered on top of third-party PPP implementations.
Multi-Link PPP
GrandPPPrix supports bandwidth aggregation of PPP links using Multi-Link PPP (ML-PPP) to provide greater throughput for applications such as aggregating T1/E1 bandwidth in IP backhaul applications. GrandPPPrix's ML-PPP provides the ability to combine multiple simultaneous PPP links using LCP to indicate to its peer that it is capable of combining multiple physical links into a "bundle", where the multiple physical links behave as a single virtual link. This is implemented in GrandPPPrix by means of a virtual END device which is created when a bundle is created, so that all data transmission and reception over the bundle happen through this END interface. The bundled links may even be of different link types, such as pairing dial-up asynchronous links with leased synchronous links.
Multi-Class Extensions
Real-time data such as multimedia audio and video streams demand prioritization for transmission through a ML-PPP link, but their bursty nature makes it hard to allocate a fixed percentage of the available bandwidth for such data. One way of achieving this with ML-PPP could be to allow for an effective two-level prioritization of PPP traffic over a single-link bundle by suspending low priority traffic and sending high priority packets without the ML header. However, this precludes any fragmentation or effective use of bundles of multiple links. Instead, GrandPPPrix provides support for the more advanced RFC 2686 Multi-Class Extensions to Multi-Link PPP (MCMP) which introduces multiple data classes to efficiently prioritize delay-sensitive traffic. Classification may be API driven or a classification engine such as TeamF1’s ClassHopper can optionally be configured in. When ClassHopper is used as the classification engine, GrandPPPrix takes advantage of its traffic-shaping capabilities to minimize delays for higher priority packets while not abating the lower priority traffic.
Advanced Features
GrandPPPrix includes support for IPv6 with IPv6CP -- a network control protocol used to establish and configure IPv6 over PPP. GrandPPPrix can also be configured for multi-instance use in virtual routing stacks or for multiple instances of host TCP/IP stacks residing on the same system. It also supports compression using standard Van Jacobson TCP header Compression (VJC) as well as the more advanced Compression Control Protocol (CCP) for full packet compression using the deflate/inflate or predictor algorithms. CCP enables higher effective throughput by configuring, enabling, and disabling data compression algorithms on both ends of a link. Other advanced features include detailed logging facilities and negotiation of the Link Quality & Reporting (LQR) option for continuous monitoring of the state of the link.
Features & Benefits
- Includes PPP Multi-Link Protocol (ML-PPP / MP) and Multi-Class extensions to ML-PPP (MCMP) over serial sync/async transports including Ethernet (PPPoE).
- Includes authentication with PAP, CHAP and MS-CHAP as well as encrypted connections (MPPE).
- Remote authentication and EAP support (with AuthAgent RADIUS).
- Provides common Network Control Protocols (NCPs) - IPCP, IPv6CP.
- Simultaneous asynchronous and synchronous link operation support.
- Advanced compression using Deflate, Predictor & Van Jacobsson (VJC) TCP Header compression.
- Supports Link Quality Monitoring.
- Supports CBCP (Microsoft's CallBack Control Protocol). Other types of callbacks such as E.164 are also supported.
- Virtualization support allows different instances of PPP inside each virtual stack.
- Regulates bandwidth dynamically (with TeamF1’s ClassHopper).
- Support for CPU types of either endian-ness including PowerPC, MIPS, X86, ARM/XScale.
Advanced Features
- Works with TeamF1's NetF1 newtork stack or third-party and OS native stacks
- Support for dynnamic bandwidth allocation (when used with TeamF1's ClassHopper)
- provides advanced security for PPP connections.
- Enhanced memory management and partition support
- Supports IPv6 including IPv6CP
PPP Security
GrandPPPrix provides advanced security for PPP connections. The PPP specification provides for authentication before any network-layer protocol packets are exchanged. This may be achieved through the use of a password/challenge-response mechanism, or by checking against a user database maintained at a centralized remote server. GrandPPPrix supports the Password Authentication Protocol (PAP) which uses a simple 2-way handshake, and the Challenge Handshake Authentication Protocol (CHAP) which uses a 3-way handshake to prevent a password from being sent in clear-text. Additionally, GrandPPPrix also supports the MS-CHAPv1 and MS-CHAPv2 enhancements to CHAP, and provides for keys generated by both peers in this scheme to be used for encryption of data after successful authentication using the included Microsoft Point-to-Point Encryption (MPPE) Protocol implementation. For easy management, remote authentication with a centralized user database is supported by the use of an external RADIUS client such as TeamF1’s AuthAgent RADIUS.
Management Framework
GrandPPPrix provides two mechanisms to perform management and control activities -- callbacks and events. Callback functions can be registered and are invoked whenever specific states are entered. Event handlers can be registered to handle management or custom tasks. GrandPPPrix provides extensive APIs to configure negotiation options for all control protocols and supports Microsoft's CallBack Control Protocol (CBCP). GrandPPPrix also supports the use of chat scripts for automating common functions.
Customization Flexibility
- Hooks for chat scripts
- Flexible, run-time configuration API
- Callback functions registration for various states and support for CallBack Control Protocol (CBCP)
- Event handlers can also be registered to handle custom management tasks
- Customizable scheduling for MCMP
- Unwanted components can be scaled out.

