IOS XE represents the continuing evolution of Cisco's pre-eminent IOS operating system. IOS XE is architected for routers, switches and appliances, leveraging the years of functionality that is provided by IOS, while adding new functionality and benefits from a POSIX environment. It provides a set of system services that are targeted at the integration of network-aware applications into the platform. IOS XE integrates a generic approach to network management into every function.
IOS XE also provides a development, build and release environment that will streamline efforts across the company by providing a single system meeting a variety of products.
The IOS XE architecture and well-defined set of APIs extend IOS to improve portability across platforms and extensibility outside IOS. This extensibility opens up to a whole new paradigm for application integration with IOS.
Why IOS XE?
The IOS feature set for routing and switching is unmatched in the industry, delivering functionality required for business critical applications. Preserving these advantages of IOS to our customers is critical for Cisco.
IOS XE retains the exact same look and feel of IOS, while providing enhanced future-proofing and improved functionality. In IOS XE, IOS 15.0 runs as a single daemon within a modern Linux operating system. Additional system functions now run as additional, separate processes in the host OS environment. The operation, support and management of IOS XE does not require re-training from classic IOS.
Multi-Core CPUs and SMP
Running IOS and other applications as separate processes also enables load balancing the multi-core CPU, allowing each process to use a different core. IOSd within the IOS XE environment supports multiple threads and multi-core CPUs.
Control Plane and Data Plane Separation
IOS XE introduces an opportunity to enable teams to now build drivers for new Data Plane ASICs outside the IOS instance and have them program to a set of standard APIs which in turn enforces Control Plane and Data Plane processing separation.
IOS XE accomplishes Control Plane / Data Plane separation through the introduction of the Forwarding and Feature Manager (FFM) and its standard interface to the Forwarding Engine Driver (FED). FFM provides a set of APIs to Control Plane processes. In turn, the FFM programs the Data Plane via the FED and maintains forwarding state for the system. The FED is the instantiation of the hardware driver for the Data Plane and is provided by the platform.
Since, historically, IOS has served as an Operating System as well as providing the key Routing Infrastructure, there has always been an aspect of Platform Dependent (PD) and Platform Independent (PI) code within IOS. IOS XE allows the platform dependent code to be abstracted from a single monolithic image. By moving drivers outside of IOS, IOS XE enables a more purely PI-focused IOS process. This provides a more efficient software delivery model for both the core IOS team, as well as platform developers, since the software can be developed, packaged and released independently.
Prior to IOS XE, the only way to integrate functionality into an IOS product was to either port the functionality into the IOS operating system or run the functionality on a service blade outside of IOS. This model has fundamentally constrained how quickly Cisco can integrate homegrown features, products through acquisition, or third party applications.
IOS XE permits the integration of non-IOS applications through the following mechanisms:
• Standard Linux-based environment for hosting applications;
• Extending IOS functionality into peripheral applications through well-defined APIs exported via Linux-shared client libraries;
• Provide a robust management infrastructure called Common Management Enabling Technology (COMET) that allows for CLI, XML, SNMP, and HTTP-based management of integrated applications.
IOS XE Software Architecture
The IOS XE foundation is a POSIX environment along with Free and Open Source Software (FOSS) for the common drivers, tools and utilities needed to manage the system. In addition to the standard set of off-the-shelf drivers, IOS XE is comprised of a set of Cisco specific drivers and associated chassis/platform management modules.
On top of the base operating system and drivers, IOS XE provides a set of infrastructure modules which define how software is installed, how processes are started and sequenced, how high-availability and software upgrades are performed and, lastly, how the applications are managed from an operational perspective.
The core application that runs on top of this new infrastructure is the IOS feature set. Cisco products immediately reap the benefits of an extensive feature set for routing and switching platforms that has been built into IOS over the years. Customers can expect the same features to be available and for them to perform and be managed in the exact same way as previous products.
Finally, the evolved IOS architecture is specifically designed to accommodate other applications outside of IOS. These applications can either be tightly integrated with IOS or they could run side-by-side with IOS with very little or no interactions. These applications can be upgraded or restarted independently of IOS. If an application does require services from IOS, it integrates with IOS through a set of client libraries called "service points". These service points generically extend IOS information and services to outside applications such that these services are not replicated or managed separately.
IOS XE Naming Conventions
The naming convention has changed since there are many features that need to be highlighted. Let us highlight the parts which make up the below image name:
cat4500e: Platform Designator
universal: Feature Set Designator
k9: Crypto Designator if crypto code is present in IOSd package
SPA: Indicates image is digitally signed
03.01.00.SG: Release Version number
150.01.XO: IOSd package version number - this will allow you to correlate the version of IOSd to another platform running classic IOS
CCO Image Name
IOS XE Version
IOS XE CLI Differences
IOS XE looks and feels the same as the IOS that we all know. There is almost no change in the different feature configurations, making the migration and user experience consistent with IOS. If you know how to operate IOS today, you already know how to operate IOS XE. The only minor difference in the CLI, and some outputs, is due to the customization that reflects the process-oriented approach of IOS XE, and the ability to use a multi-core CPU.
For example. The Supervisor 7-E incorporates a Freescale dual-core CPU running at 1.5GHz. The IOSd is a multi- threaded process, which uses both of the cores, allowing it to load-balance and scale to the CPU's maximum processing capacity.
The "show version" command is changed to reflect the IOS XE Naming convention, and Licensing information.
The "show process cpu" is changed to reflect the various process running along with IOSd in the linux environment. This command now displays a detailed description of IOS and non-IOS processes across all CPU cores. Adding the "detailed process iosd" keyword, displays the CPU utilization statistics by the IOSd process across all CPU cores.
Similarly, "show process memory" displays memory utilization of the entire system. Adding the "detailed process iosd" keyword, displays the memory consumed by the IOSd process.
Below are some of the outputs of the above commands.