CIsco Router IR1101 or models compatible for app hosting

  • Name: Cisco
  • Version: 1.5.0.0
  • Protocol: n/a
  • Interface: n/a
  • Runtime: .NET 2.0 (Multiplatform)
  • Configuration:
    • Designer

Overview

The Cisco IR1101 connector enables deployment of FrameworX EdgeConnect solutions on Cisco industrial routers using the IOx App Hosting framework. The runtime executes as a Docker container with persistent storage, providing:

  • Full FrameworX Runtime embedded in Docker image
  • Data Collection from PLCs via ControlLogix, Modbus, and other protocols
  • MQTT SparkplugB Publishing for structured data exchange
  • Edge Processing with Scripts module for data normalization
  • Remote Management through Designer connection to container

System Requirements

ComponentRequirement
RouterCisco IR1101 with IOx App Hosting enabled
Docker Imagecisco-edge-gateway-[version]_Full.tar
ProcessorARM64 or x86 (match router architecture)
Container ResourcesCPU: 1000, Memory: 800MB, Disk: 300MB
NetworkStatic IP for container, VirtualPortGroup configured
DesignerWindows installation for remote configuration
MQTT BrokerSparkplugB compatible (optional: Built-in Broker)

Architecture

The container includes the complete FrameworX runtime. Solutions are stored separately in persistent memory:

Container (Docker Image):
??? /Programs/              - FrameworX runtime executables
??? /app/                   - Runtime environment

Persistent Storage:
??? /iox_data/appdata/FrameworX/Solutions/ - Solution files

Installation Procedure

Step 1: Prepare Router Network

Configure VirtualPortGroup for App Hosting (if not already configured):

bash

# SSH to router
configure terminal
interface VirtualPortGroup0
  ip address 192.168.1.1 255.255.255.0
  no shutdown
exit

Step 2: Deploy Docker Container

Using Cisco Local Manager (Recommended)

  1. Access router at https://[router-ip]:8443
  2. Navigate to Configuration → Services → IOx
  3. Go to Applications tab
  4. Click Add New
  5. Upload: cisco-edge-gateway-[version]_Full.tar
  6. Configure application:
    • Name: EdgeConnect
    • Type: Docker container

Activation Settings

Click Activate with these parameters:

ParameterValue
CPU1000
Memory800 MB
Disk300 MB

Network Configuration

  1. Click EditInterface Settings
  2. Configure:
    • IPv4: Static
    • IPv6: Disabled
    • Container IP: Assign static IP (e.g., 192.168.1.100)
    • Gateway: Router gateway (e.g., 192.168.1.1)
  3. Click OK twice
  4. Click Activate App
  5. Return to Applications and click Start

Step 3: Verify Container

bash

# From Windows machine
ping [container-ip]        # Should respond
ping [gateway-ip]          # Should respond

# If only gateway responds, router may need restart

Solution Deployment

Connect Designer to Container

  1. Open Solution Center on Windows
  2. Navigate to Server tab
  3. Under Remote, enter: http://[container-ip]:10108
  4. Click Connect
  5. Verify connection shows EdgeConnect license

Upload Solution

  1. Click Upload File...
  2. Select your .dbsln solution file
  3. Open the uploaded solution
  4. Navigate to Runtime → Startup
  5. Select Execution Profile
  6. Click Run Startup

MQTT SparkplugB Configuration

Configure through Devices → Channels in Designer:

Channel Configuration

ParameterValueDescription
NameMQTTSpB_PublisherChannel identifier
ProtocolMQTT SparkplugBSelect from dropdown
Broker[broker-address]MQTT server
Port1883Standard MQTT port
Client IDCiscoEdge01Unique per router

SparkplugB Namespace

ParameterDescriptionExample
Group IDTop-level groupPlant01
Node IDEdge node identifierCiscoRouter01
Device IDDevice within nodePLC1

→ See [MQTT SparkplugB Publisher Connector] for detailed configuration


Diagnostic Tools

Remote Diagnostics from Designer

Create shortcuts with parameters:

batch

# Property Watch
"[FrameworX Path]\PropertyWatch.exe" /ip1:[container-ip] /port1:10108

# Trace Window
"[FrameworX Path]\TraceWindow.exe" /ip1:[container-ip] /port1:10108

# Module Information
"[FrameworX Path]\ModuleInformation.exe" /ip1:[container-ip] /port1:10108

Container Logs

Using IOx Client:

bash

ioxclient application logs EdgeConnect
ioxclient application status EdgeConnect
ioxclient application stats EdgeConnect

Version History

VersionFeaturesDate
v514Added exception loggingJune 2025
v509Minor exception fixJune 2025
v502SolutionCreator improvements, Designer performanceJune 2025
v463AutoStart, ForceCommandValueApril 2025
v314WILL message, ControlLogix performanceSeptember 2024

Troubleshooting

App Missing Interface Error

Router needs VirtualPortGroup configuration. See Step 1 above or Cisco IOx documentation.

Invalid Address in Trace Window

Use Data Explorer → PLC Finder to verify tag addresses exist in PLC.

Container Won't Start

  • Verify IOx is enabled in router
  • Check resource allocation (CPU/Memory/Disk)
  • Review activation logs in Cisco Local Manager

Designer Connection Fails

  • Ping container IP and gateway IP
  • Verify port 10108 is accessible
  • Check container status in Applications tab

MQTT Connection Issues

Check @TagProvider.[ProviderName].IsConnected in Property Watch. If blinking, verify Client ID is unique.


Related Documentation

  • [Container Deployment (Reference)] - Generic Docker deployment
  • [MQTT SparkplugB Publisher Connector] - MQTT configuration details
  • [Runtime Diagnostics] - Diagnostic tools documentation

Now for the Tutorial:

Cisco IR1101 Container (Tutorial)

Cisco IR1101 Container (Tutorial) teaches you to:

  • Deploy FrameworX Docker container on Cisco routers
  • Configure IOx App Hosting for industrial applications
  • Connect Designer to remote container runtime
  • Set up MQTT SparkplugB data publishing

Prerequisites:

  • Cisco IR1101 router with IOx enabled
  • Docker image file (cisco-edge-gateway-[version]_Full.tar)
  • Windows computer with Designer installed
  • Basic network configuration knowledge

In this page: [TOC - maxLevel:2, minLevel:2]


Container Deployment → Tutorial | [Concept] | [How-to Guide] | [Reference]


Understanding Container Deployment

FrameworX can run in Docker containers for edge deployments:

  • Standard Docker: Deploy to any Docker host → See [Container Deployment (Reference)]
  • Cisco IOx App Hosting: Special framework for Cisco routers
  • Container includes full runtime, solution uploaded separately

Enable IOx App Hosting

  1. Access router: https://[router-ip]:8443
  2. Go to Configuration → Services → IOx
  3. Verify status:
    • IOx Service: Enabled
    • App Hosting: Configured

If not configured, see [Cisco IR1101 Connector (Reference)] for VirtualPortGroup setup.


Deploy Container to Router

  1. In IOx interface, go to Applications
  2. Click Add New
  3. Upload Docker image:
    • File: cisco-edge-gateway-[version]_Full.tar
    • Name: EdgeConnect
  4. Activate with resources:
    • CPU: 1000
    • Memory: 800MB
    • Disk: 300MB
  5. Configure network as Static IP
  6. Start the application

Connect Designer

  1. Open Solution Center
  2. Go to Server tab
  3. Connect remotely:
    • URL: http://[container-ip]:10108
    • Click Connect
  4. Verify EdgeConnect license appears

Deploy Solution

  1. Click Upload File...
  2. Select your .dbsln file
  3. Open uploaded solution
  4. Start runtime:
    • Go to Runtime → Startup
    • Click Run Startup

Configure Data Flow

PLC to Container

  • Use Devices → Channels
  • Add ControlLogix or Modbus
  • Map to UNS tags

Container to MQTT

  • Add MQTT SparkplugB channel
  • Configure broker connection
  • Set Group/Node/Device IDs

Verify Operation

  1. Check container status in IOx
  2. Use Runtime → Diagnostics in Designer
  3. Monitor MQTT broker for messages
  4. Review container logs if needed

Step-by-step guide to deploy FrameworX as a Docker container on Cisco IR1101 routers using IOx App Hosting for edge computing applications.


Functionality Overview

The application consists of a docker image that contains a ProjectServer application, which is a server that allows the Solution Designer on Windows to connect to it and deploy the necessary files to run any solution in Linux (or Cisco in this scenario).

By having the full platform capabilities running inside your Cisco Router, you will have access to many communication protocols (e.g., MQTTspB, ControlLogix, Modbus, etc.) as well as scripting (to make calculations based on the data being exchanged through your devices).

Despite being deployed in a docker container, known to have volatile memory (that is not retained), this application makes use of a retentive memory area inside the router to store the installation and Solution Files.


Installing and Deploying Apps

The first step is to make sure you have downloaded the *.tar file with support to your Router's processor. Then, choose one of the following ways to install the application.

Using Cisco Local Manager

Cisco Local Manager is a platform-specific application that is installed on a host system as part of the installation of the Cisco IOx framework on that device. It provides a web-based user interface that you can use to manage, administer, monitor, and troubleshoot apps on the host system, and to perform various related activities.
For more information about it, please refer to the Cisco official documentation. To install and deploy your application, follow the procedure below.

  • Go to Applications Tab in the Menu Bar.

  • Click Add New.

  • Select the *.tar file and enter a friendly name to the Application. It will be used as an Identifier.

  • Click Activate to activate the app.

Below you will find some definitions for terms frequently used when dealing with applications in Cisco Environment:

  • Deployed: Means the Application has been imported.
  • Activate: Reserves host system resources that the app requires to run, designates the network from which the app obtains its IP address, and assigns host system serial ports for use by the app, if requested.
  • Start: Starts the app container for the app on the host system. CPU and memory (RAM) resources that were reserved for the app become in use.

Using Cisco IOx Client

For this procedure, you must have IOx Client installed on your environment.
The official installation guide and documentation for IOx Client is available here.

  • Launch the IOxClient.exe in your OS command line terminal. It is easier if you add it to PATH and run the terminal from the same folder as your *.tar file.
  • If your IOxClient does not have a profile connected to the Router already, do as follows:
ioxclient profiles create
// here you will connect to the Router
// values inside brackets will be used by default if empty

Your / your organization's name : <OrganizationName>
Your / your organization's URL : <OrganizationUrl>
Your IOx platform's IP address[127.0.0.1] : <RouterIPAddress>
Your IOx platform's port number[8443] : <RouterPortNumber> 
Authorized user name[root] : <UserName>
Password for <UserName> : <PasswordForUser>
Local repository path on IOx platform[/software/downloads]: <Repository> 
URL Scheme (http/https) [https]: <TransferProtocol>
API Prefix[/iox/api/v2/hosting/]: <ApiPreffix>
Your IOx platform's SSH Port[2222]: <SshPortForRouter>
  • Run the following commands to install, activate and start the package:
ioxclient application install <AppName> <PackageName>.tar 
ioxclient application activate --payload activation.json <AppName> 
ioxclient application start <AppName>

Where AppName is a friendly name used to identify the application inside the Router.

  • Use the following commands to stop/disable and uninstall the application:
ioxclient application stop <AppName> ioxclient application deactivate <AppName>
ioxclient application uninstall <AppName> <PackageName>.tar

Use the following command to see the application status

ioxclient application status <AppName>





Troubleshooting

App was missing at least one interface

If you encounter this error, it means that your router is missing a network configuration for applications. To solve it, follow the procedure described at Configure a VirtualPortGroup to a Layer 3 Data Port section.
Connect to your Router via SSH (either via terminal or in Cisco Local Manager) and do as follows.


In this section: