Describe basic software architecture differences between IOS and IOS-XE
- Monolithic kernal
- System processes and core functionality are tightly integration
- Uses priority “run to completion” scheduler
- Each process is a single thread
- All memory is mapped into a single flat address space
- IOS does not implement memory protection between processes or memory pools
- Advantage: improves system performance and minimizes OS overhead
- Disadvantage: Complex system, one process can cause software to crash
- IOS images are unique for each platform
- Feature sets determine what CLI and features are available
IOS allows for configuration archiving with the archive command. Configs can be stored on local or remote server (FTP, TFTP, etc.). The max number of copies to save (default 10). Set the time period (minutes) for saving the config.
Home_Switch(config-archive)#? Archive configuration commands: default Set a command to its defaults exitExit from archive configuration mode log Logging commands maximum maximum number of backup copies noNegate a command or set its defaults pathpath for backups rollbackRollback parameters time-period Period of time in minutes to automatically archive the running-config write-memoryEnable automatic backup generation during write memory
IOS-XE – Based on a modular architecture
- Linux based OS that employs a single daemon
- Allows for multiple layers of abstraction
- Individual functions have been isolated from the primary operations kernel into separate processes
- Linux kernel and drivers are only component of IOS-XE that can access hardware directly
- Has all IOS capabilities with enhanced operations and functionality
- Similar CLI to IOS
- Leverages symmetrical multiprocessing
- Allows processes to execute over multiple CPU’s
- Benefit of load balancing across multiple core CPUs
- Binds process to different cores
- Allows processes to execute over multiple CPU’s
- Individual threads for each underlying process
- Separates control plane from forwarding plane
- APIs allow for development of drivers for the new data plane ASICs
- Creates control plane and data plane separation
- Logical and physical separation of control plane and data plane
- Dedicated hardware resources
- Separation archived through:
- FFM – Forwarding and Feature Manager
- Provides APIs to manage the control plane process
- FFM programs the data plane through the FED and maintains all forwarding states for the system
- FED – Forwarding Engine Driver
- Allows the drivers to affect the data plane
- Routing protocols run in the IOSd process
IOS-XE releases using consolidated packages and optional subpackages. Each consolidated package contains a collection of subpackages.
Subpackage is an individual software file that controls different elements of the device. These can be upgraded individually
- RPBase – Provides the operating system software for the Route Processor.
- RPControl – Controls the control plane processes that interface between the IOS process and the rest of the platform.
- RPAccess – Exports processing of restricted components, such as Secure Socket Layer (SSL), Secure Shell (SSH), and other security features.
- RPIOS – Provides the Cisco IOS kernel, which is where IOS features are stored and run. Each consolidated package has a different RPIOS.
- ESPBase – Provides the ESP operating system and control processes, and the ESP software.
- SIPBase – Controls the SIP operating system and control processes.
- SIPSPA – Provides the SPA driver and Field Programmable Device (FPD) images.
Best practice – Backup configuration – copy run flash: or to FTP server, or old school, copy and paste to text document
Upload new code to device – TFTP or RCP
- copy tftp: flash:
request platform software package expand file URL-to-consolidated-package to URL-to-directory-name
- Chassis Manager – Responsible for all chassis management functions, including management of the HA state, environmental monitoring, and FRU state control.
- Host Manager – Provides an interface between the IOS process and many of the information-gathering functions of the underlying platform kernel and operating system.
- Logger – Provides IOS facing logging services to processes running on each FRU.
- Interface Manager – Provides an interface between the IOS process and the per-SPA interface processes on the SIP.
- IOS – The IOS process implements all forwarding and routing features for the router.
- Forwarding Manager – Manages the downloading of configuration to each of the ESPs and the communication of forwarding plane information, such as statistics, to the IOS process.
- Pluggable Services – The integration point between platform policy application, such as authentication and the IOS process.
- Shell Manager – Provides all user interface features and handling related to features in the nonIOS image of the consolidated package, which are also the features available in diagnostic mode when the IOS process fails.
- SPA driver process – Provides an isolated process driver for a specific SPA.
- CPP driver process – Manages the CPP hardware forwarding engine on the ESP.
- CPP HA process – Manages HA state for the CPP hardware forwarding engine.
- CPP SP process – Performs high-latency tasks for the CPP-facing functionality in the ESP instance of the Forwarding Manager process.
The control plane of a router learns what the router will do with a packet. Its primary goal is learning about routes, static or dynamic. The routing table is contains a list of destination networks and outgoing interfaces. The control plane can define if a packet is discarded or given preferential treatment (QOS). There is a separate table, Forwarding Information Base, that is built by the control plane, but utilized by the Forwarding/Data Plane.
The forwarding plane (aka: Data Plane) is responsible for moving packets based on what was learned in the control plane.
Impact to Troubleshooting and Performance
- IOS XE (IOS 15.0) runs as a single daemon within a Linux operating system
- Additional system functions now run as additional, separate processes in the host OS environment
- IOSd within the IOS XE environment supports multiple threads and multi-core CPUs
- Wireshark and Mediatrace included, runs separately from IOS
Exclude Specific Platform Architecture
- Non-IOS applications can either be tightly integrated with IOS or they could run side-by-side with IOS with very little or no interactions
- If an application does require services from IOS, it integrates with IOS through a set of client libraries called “service points”