IR829 is a fleet-targeted mobile gateway that addresses the majority of use cases for fleets. The goal is to provide an “off the shelf” solution for the widest possible number of fleet applications with the fewest number of SKUs and least amount of custom developments possible. The Fleet Gateway is a ruggedized router integrating WiFi and Cellular radios.
IR809 targets markets like Distribution Automation, ATM, POS, Telemetry, Enterprise Fleet, mobile machine-to-machine (M2M), bill boards, and so forth. IR809 brings in 4G LTE capabilities to small form factor M2M routers.
These routers ship with one Cisco provided IOXVM which enables IOx on the platform. All IOx applications run within this IOXVM.
In certain cases, a customer may decide to install a custom operating system on the platform. In this situation, IOx support ceases to exist on the platform (and for the customer).

Both IR829 and IR809 use the same Intel Rangeley Dual-Core CPU, 2GB DDR3 memory, 8MB SPI Bootflash, 8GB (4GB usable) eMMC bulk flash.
Hypervisor, provided by LynxWorks, runs on the bare metal hardware upon which IOS and a Guest OS (e.g. Linux) run as two separate Virtual Machines (VMs).
The Hypervisor presents underlying hardware to virtual machines (IOS and Guest OS) as a subset of actual physical hardware. Which devices must be allocated to which VM is provided by a configuration to the Hypervisor. The VMs access a virtual CPU, pre-configured memory regions, pre-divided flash disk storage, and other hardware devices. LynxSecure Separation Kernel v. 5.1 has been selected as a Hypervisor.
Each PCI device can be owned exclusively by one VM in the Hypervisor architecture. However, IOS and the Guest OS need to access some shared devices, for example eMMC flash. The solution is a Virtual Device Server (VDS), which is a separate VM that owns shared devices. IOS and Guest OS access the virtual devices emulated in Hypervisor. The Hypervisor and VDS then coordinate access to the shared devices. The VDS also provides communication channels between VMs, using emulated Ethernet interfaces.
IOS acts as a gateway to network resources for the Linux partition, using IP and a virtual switch connection provided to the Hypervisor. IOS and Linux each operate as a Guest OS of the Hypervisor.
The network path from IOXVM to IOS is available via an emulated Ethernet link between them. Either IPv4 or IPv6 protocol can be run on the Ethernet link.
The IOXVM runs CAF and other IOx infrastructure elements on the host Linux and hosts all the LXC applications.
IR800 series devices do not have a dedicated storage for apps. These platforms have a single, soldered-on flash storage that is shared between IOS and apps. The flash part is not field replaceable.
Flash has a finite number of P/E cycles. Flash lasts as long as the box life cycle if used only for IOS configurations. If applications write frequently to the flash, wear-out becomes a serious concern.
Developers and customers are encouraged to watch and throttle the frequency of writes to flash. If the application or use case demands frequent writes or large amount of data storage, customers are advised to export the data for off-the-device storage.
IOS Image
The minimum IOS version required for IOx support is 15.6(1)T1
.
IOx Images
IOx functionality is available in IR829 as part of a bundle IOS image or a standalone IOx image.
- Bundle image: A bundle image contains Hypervisor, IOS, VDS, and IOx image. The image name is of the format
ir800-universalk9-bundle.xxxx
or ir800-universalk9_npe-bundle.xxxx
- Standalone IOx image: Once a compatible IOS image is present on the platform, you can install or upgrade IOx using the standalone image. The image name is of the format
ir800-ioxvm.xxx.bin
Basic IOS and IOx Configuration
Provide network connectivity to your device
- Login to the console of your device. This WAN GIGE0 port needs an Ethernet SFP to connect an RJ45 Ethernet cable.
- Connect the WAN (GigabitEthernet0) port to your network. Configure the IP address and the required routes.
- Configure the required route and gateway.
- If you use LAN ports GIGE1,2,3,4, configure a VLAN and assign an IP address since they are L2 switch ports.
Enable nat outside
on GigE0 or the interface that connects internal traffic to outside world.
- ip nat inside - Enter this command to specify that the interface is connected to the inside network.
- ipv6 enable - IPv6 must be enabled.
To assign an IPv4 address to IOx and apps, configure a Local DHCP pool on IOS with GIG5 as the default router.
Note: The Guest OS VM periodically compares its time with the Cisco IOS time. If the difference in times is more than 60 seconds, the Guest OS VM resynchronizes its time to the Cisco IOS time. No user configuration is required to initiate Guest OS VM clock synchronization or to modify clock settings. You can configure Cisco IOS to synchronize to an external NTP server.
Obtain IOx Details
- If IOXVM is not started, start it using:
- The boot time for IOXVM is approximately 5-6 minutes. Once completely booted, you can get the IP address of IOx:
NAT Configurations
Since the DHCP pool of configured IP addresses is internal and cannot be routed externally, configure NAT rule on IOS to allow ports 8443 (on which CAF is running) and 22 for allowing console access to applications.
The below snippet assumes that the IOx IP address is 192.168.1.6
Before IOx Hosting Infrastructure is used for application management, either through Local WebUI or issuing REST API commands, users must authenticate in IOS to obtain administrative privileges.
The IOx Hosting Infrastructure relies on IOS local user authentication for this purpose. This local user authentication is same as the one which allows users to identify with IOS to get administrative access. Only the users who have configured a password with privilege 15 level on IOS are eligible to log on Local WebUI. This section shows how to configure user privileges for IOx.
If an application needs to be IPv6 addressable, first enable IPv6 on the router using the global configuration command ipv6 unicast-routing.
Configure the IPv6 prefix to assign stateless DHCPv6 addresses to the IOxVM and the applications.
Configure the DHCPv6 pool if a stateful DHCPv6 address needs to be assigned to applications.
Note: The Guest OS VM periodically compares its time with the Cisco IOS time. If the difference in times is more than 60 seconds, the Guest OS VM resynchronizes its time to the Cisco IOS time. No user configuration is required to initiate Guest OS VM clock synchronization or to modify clock settings. You can configure Cisco IOS to synchronize to an external NTP server.
In config terminal, use the following commands:
Download, Install, and Enable IOx
Upgrade of IOx
- Copy the IOXVM image.
Upgrade Using Bundle
- Copy the bundle image.
- Install the bundle image.
- Reload.
- Restart the IOXVM instance to take effect.
IOXVM Disk Repartitioning
CAUTION: Disk repartitioning causes ALL data (IOx apps, IOXVM Kernel, and root file system) on the two disks to be erased. Ensure that you backup your data prior to repartitioning. After completing the disk-repartition, you MUST reinstall the IOXVM using the steps above.
IOXVM has two disks. disk1 contains the operating system kernel and root files system. disk2 is used for storing IOx application data. The default storage sizes for the disks are
..* disk1: 500MB vs disk2: 1800MB
We recommend that you use the default profile since it allows the maximum storage for IOx applications.
The size of these disks can be modified using the disk-repartitioning CLI from IOS.
IOXVM Version Detail
Stopping IOXVM
Enabling Serial Ports
IR8x9 has two RJ45 serial ports on the faceplate. External serial devices connected to the host platform can be exposed to IOx applications.
Serial port 0 can be configured for either RS232 DTE or RS485. Serial port 1 can be configured for RS232 DTE only. Please refer to the following page for RJ45 pinouts.
Cisco IR829 Industrial Integrated Services Router Hardware Installation Guide
Data Flow on IR8x9
Serial data flow for containerized applications on an IR8x9 consists of multiple segments:
- Connection between a physical line and a virtual line in IOS
- Connection between a virtual line in IOS and a TTY port in IOXVM
- Connection between a TTY port in IOXVM and an application
Configuring Serial Interfaces for IOx Applications
The relay line 1 1/5 command links the first physical line to virtual line 5, which is connected to ttyS1 in IOXVM. The relay line 2 1/6 command links the second physical line to virtual line 6, which is connected to ttyS2 in IOXVM.
By default, only RS232 is enabled on Async0.
- Change the baud rate of a line (using the right line depending on Async0/1):
Troubleshooting Guides
Serial Interface Status
Verifying Serial Line Status
Restrictions
- Serial signaling is always terminated by IOS. Terminal line settings, including baud rate, data bits, parity bits, and flow control need to be configured in IOS.
- RS485 support is only available on async0 on IR8x9. Otherwise, an external RS485 to RS232 converter must be used.