Metaswitch's Control Plane Model Layer (CPML) and Hardware Abstraction Layer (HAL) disaggregate the Metaswitch Control Plane from the underlying chipset, providing the following benefits:
- They make it easy for you to port control plane software to your target hardware environment, reducing your time-to-market for your initial offering.
- They are designed to be portable to an array of chipsets. That means that if you want to replace your existing hardware to take advantage of a later iteration – or even an entirely different chipset – you can do so with minimal integration effort.
- They improve the feature velocity that you can offer to your customers, by allowing you to absorb even complex extensions to your Metaswitch control plane products without extensive integration work.
The CPML comprises portable components that provide easy integration onto a variety of industry standard ASICs. It includes the following portable components:
- DC-FTM manages the forwarding table.
- DC-PSM manages next hops and ECMPs.
- DC-NRM manages neighbor objects.
- DC-XCM manages cross-connects, including MPLS LSPs and pseudowires.
- DC-LIM manages local interface configuration.
The HAL is a pre-ported solution for a specific platform. Metaswitch is currently developing solutions for further platforms; please ask your sales representative for the latest availability.
- DC-HAL-XGS provides a pre-integration of the Metaswitch CPML with the Broadcom XGS SDK
DC-FTM (Forwarding Table Manager)
DC-FTM learns active routes from the control plane, and maintains the data plane state to represent this programming:
- It creates routes in the layer 3 hardware routing table and the Linux FIB.
- It processes packets sent to unknown IP hosts on attached subnets and creates entries in the hardware hosts table corresponding to these attached hosts.
- It tracks unique next hop IP addresses and requests layer 3 egress objects for those addresses from DC-EM.
- It maintains multiple VRF routing tables in hardware to support layer 3 VPNs and programs VRF routes with VPN service labels.
- It uses DC-BFD to monitor primary next hops, and perform a switchover to an LFA in the case of session failure.
DC-LIM (Local Interface Manager)
DC-LIM is responsible for the configuration and operational state of all ports and interfaces in the system. It programs the data plane and advertises available ports, interfaces and IP addresses to the other components:
- It programs Hierarchical QoS forwarding rules. This function is crucial for implementing rate-limiting, policing or traffic shaping, which is required in most access networks.
- It programs LACP bundles, IRB interfaces, and MPLS tunnel interfaces.
- It advertises physical and logical interfaces to the control plane components.
- It supports the configuration and management of network interfaces. Where appropriate, it programs configured parameters to the chipset port code, which can then program them into the ASIC.
DC-PSM (Path Set Manager)
DC-PSM is responsible for programming next hops and ECMPs corresponding to path sets used by routes and cross-connects.
DC-NRM (Neighbor Resolution Manager)
DC-NRM is responsible for resolving IP addresses into Neighbor objects and for programming the resulting Neighbor objects in the data plane.
DC-XCM (Cross-Connect Manager)
DC-XCM learns active MPLS Cross-connects from the Control Plane, and maintains the data plane state to represent this programming. It is responsible for programming MPLS forwarding rules (either directly or via the creation of tunnel interfaces), managing resource reservations for LSPs, and initiating protection switching between XCs and PWs.
DC-HAL for Broadcom XGS runs in a Broadcom/Linux environment ported to the Broadcom BCM API. Our current integration is with a BCM56260 (Saber II) Strata XGS Switch Series. This is extensible to all XGS Series and DUNE/Arad silicon.
DC-HAL-XGS has been validated on the following platforms:
- Saber II
- Triumph III
Metaswitch is currently developing solutions for further platforms; please ask your sales representative for the latest availability.
Metaswitch works hard to design products that you can quickly get running with the minimum of integration effort. This includes the fully portable product code through to the reference integration code we provide. Where possible we try to minimize the integration effort on your part. Our architecture provides seamless integration of the CPML with Layer 2, Layer 3 and MPLS whilst still supporting the modular nature of Metaswitch’s product code. You may, therefore, use a product as a standalone product, integrating it with your own or third party code as necessary, or you can reduce the integration work by using a combination of Metaswitch products to provide the function you require.
Metaswitch’s CPML code is fully portable to any OS, any CPU, any switching silicon or any hardware platform. The N-BASE, our portable operating environment in which CPML components runs, is used by all of our network software products and protocols, and helps us develop high quality, reliable portable code that you can quickly and easily get running on your platforms. It has been integrated with all major OSs and processors, and Metaswitch can supply pre-ported versions for Linux. For other systems, Metaswitch provides a reference version that you can fine-tune to make better use of the functions provided by your target software and hardware.
Scalability, distribution and redundancy
The flexible architecture of the CPML means that the software can be distributed across multiple processors and across multiple cores and threads in a hugely flexible way. This is a fundamental feature of our design ethos. The same portable product code executes without modification from low‑end single-processor systems through to high port density systems with multiple cards and multiple processors – providing a truly scalable solution.
The Metaswitch CPML is designed to support high availability using a combination of warm (or graceful) restart, hot software upgrades and fault-tolerant replication. If you are building a device that provides high availability, you will no doubt be providing redundancy in the underlying hardware and the Metaswitch software can optionally take advantage of this. Any failure in the control plane software or hardware need not impact user traffic flows while the control plane recovers.To provide the required replication, the CPML components are built into Metaswitch’s Fault Tolerance infrastructure and Metaswitch’s High Availability Framework (HAF). HAF provides a consistent design philosophy for multiple of Metaswitch’s protocol products. It is used for Metaswitch’s Layer 2, Layer 3, and MPLS products too.
Metaswitch provides a modern management framework that provides YANG model based control of all Integrated Control Plane products. It presents the configuration and management interface in a YANG format suitable for end users and abstracts away complexities of the low-level configuration model. The interface provided is a transactional interface, handling any sequencing requirements of the control plane protocols and rolling back configuration in the event of failure.
The management framework uses a JSON over TCP interface, which makes it easy to integrate with any YANG model based management agents, such as those that provide a NETCONF or RESTCONF interface. Pre-integration with popular management agents such as Tail-F’s ConfD are also available. Alternatively, Metaswitch supports integration with a range of legacy management systems using industry-standard and custom MIBs.
You may make value-add enhancements to the product code while still maintaining the core Metaswitch-supplied code intact. These changes are made behind well-defined APIs referred to as user exits. Where a user exit does not exist to provide the required function, we will usually be happy to add one.