Application Capabilities
This page describes ISR4K/ASR1K platform specific capabilities that are available to IOx application.
Application Types supported
ISR4K/ASR1K platforms support LXC and KVM type applications.
However, there are some exceptions for docker type support are discussed in the following section.
Docker Type Support Exceptions
For 16.8 and 16.9, due to the host-os lack of support for multi-layering, Enterprise "docker" type apps are "not" supported. Please use the LXC type work-flow instead.
Planned for 16.10, Polaris XE-linux support of multi-layering via OverlayFS will enable "docker" type application support Additionally, to console access an IOx docker app, which does not support a "getty" serial driver attached to t tyS0/S1 devices, the console "session" option is supported for non-authenticated connections to the docker app as shown below.
iox-4321-02#app-hosting connect appid perfsonar session
sh-4.2# ps
PID TTY TIME CMD
22292 pts/0 00:00:00 sh
22294 pts/0 00:00:00 ps
sh-4.2#
Refer to Docker Applications for more details on building a Docker Type application.
Application resource limit
| Platform | Memory (MB) | Max VMs | vCPUs | CPU Units | HDD Storage (GB) |
|---|---|---|---|---|---|
| ISR4321 | 512-10240 | 2-4 | 2-6 | 20 | |
| ASR1001-X | 512-4096 | 2-4 | 1 | 10-20 |
ioxclient Configuration
The initial default "ioxclient" default profile, which is created at the users home directory, needs to be initialized as follows.
In general, the configuration values are customer specific, except for the following parameters:
- Your IOx platform's port number[8443] : 443
- Local repository path on IOx platform[/software/downloads]:
- API Prefix[/iox/api/v2/hosting/]:
- Your IOx platform's SSH Port[2222]: 22
Example:
~$ ioxclient
Config file not found : /home/USERID/.ioxclientcfg.yaml
Creating one time configuration..
Your / your organization's name : cisco
Your / your organization's URL : www.cisco.com
Your IOx platform's IP address[127.0.0.1] : 72.163.111.112
Your IOx platform's port number[8443] : 443
Authorized user name[root] : appdev
Password for appdev :
Local repository path on IOx platform[/software/downloads]:
URL Scheme (http/https) [https]: https
API Prefix[/iox/api/v2/hosting/]:
Your IOx platform's SSH Port[2222]: 22
Activating Profile default
Application Networking
ISR4K/ASR1K platforms support for application networking:
- Management Interface connections only support Layer2 Bridge mode. Applications are not aware of the IOS Management interface's VRF configuration.
- VPG (Virtual Port Group) interfaces connections:
- Layer3 Routed mode
- NAT (Network Address Translation)
- ip-unnumbered
- IPv6 for application network interface is not supported.
Device resources
- Application accessible storage medium is the same medium used for installation which is an internal HDD.
- There are four serial ports (stty0-stty3) available for applications as follows:
| Serial Port | Linux Device (/dev) | Function | IOS Exec CLI Command |
|---|---|---|---|
| serial0 | ttyS0 | console connection | app-hosting connect appid MYAPP console |
| serial1 | ttyS1 | auxillary connection (2nd concurrent app console connection) | app-hosting connect appid MYAPP aux |
| serial2 | ttyS2 | syslog and IOS console logging | show logging |
| serial3 | ttyS3 | Trace logfile | request platform software trace rotate all |
For more details, refer to Section Enterprise App-Hosting Logging Tracing Services
Application Security
ISR4K/ASR1K platforms support application signature verification. App signature validation is disabled by default.
Licensing
ISR4K/ASR1K platforms do not require any special Cisco Smart Licensing to enable App-Hosting.
IOx services
IOx services is by default disabled for ISR4K/ASR1K platforms. The following IOX features require IOS CLI configurations to be saved on the platform.
IOx Enablement
To enable IOX to support any App-Hosting features, the following IOS CLI is required:
iox-4321-02#conf t
Enter configuration commands, one per line. End with CNTL/Z.
iox-4321-02(config)#iox
iox-4321-02(config)#end
iox-4321-02#
To validate IOX infra is running:
iox-4321-02#sh iox-service
Virtual Service Global State and Virtualization Limits:
Infrastructure version : 1.7
Total virtual services installed : 1
Total virtual services activated : 0
Machine types supported : KVM, LXC
Machine types disabled : none
Maximum VCPUs per virtual service : 4
Resource virtualization limits:
Name Quota Committed Available
--------------------------------------------------------------
system CPU (%) 33 0 33
memory (MB) 4096 0 4096
bootflash (MB) 1000 0 272
harddisk (MB) 20000 65 16305
volume-group (MB) 190768 848 169440
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) : Running
IOx service (HA) : Not Running
IOx service (IOxman) : Running
Libvirtd : Running
iox-4321-02#
"IOx service (HA)" state of "Not Running" is expected since ISR4K does not support High Availability (HA).
To proceed with any app-hosting life-cycle commands, you must wait until the IOX infra is ready by using the "show app-hosting list" until the current app-hosting state output is shown.
Example:
iox-4321-02#show app-hosting list
No App found
IOX Interface Configuration Examples
Below are examples of 16.8 IOS CLI App-hosting configuration CLIs. Release 16.9 introduces a different IOS CLI syntax. Refer to the customer documentation on Cisco.com: Programmability Command Reference and Programmability Configuration Guide
Management Interface Configurations
Use these configurations "only" if Management port is used for the Application data port.
Configs requires Management interface and Application interface to be on the same subnet.
For the example configs, shared subnet is 172.26.200.0/24:
Mgmt-if IP: 172.26.200.131 (Public IP)
Application IP: 172.26.200.134 (Public IP)
Gateway IP: 172.26.200.1 (Public or Private IP)
DNS IP: 172.19.198.82
conf t>
!!! Management interface
interface GigabitEthernet0
vrf forwarding Mgmt-intf
ip address 172.26.200.131 255.255.255.0
negotiation auto
!
!!! IOx App configs for LXC/DOCKER CONTAINER STATIC IP ASSIGNMENT
app-hosting appid preflxc
vnic management guest-interface 0 guest-ipaddress 172.26.200.134 netmask 255.255.255.0 gateway 172.26.200.1 name-server 172.19.198.82 default
end
Front Data Panel data-port interface configurations
Use these configurations "only" if front data-port is used for the Application data port.
Configs requires data-port interface and Application interface to be on the different, routable "public" subnets. Application eth0 connects to a Virtual Port Group (VPG) subnet which is routed to a front panel data-port. For 16.8, only L3 routable front-panel data port mode is supported for container connections via VPG. No L2 switching features are supported for the VPG in 16.8.
For the example configs:
Data-Port IP: 201.201.201.1 (Public or Private IP)
VPG IP: : 30.30.30.1 (Public IP)
Application IP: 30.30.30.10 (Public IP)
Gateway IP: 201.201.201.10 (Public or Private IP)
DNS IP: 172.19.198.82
conf t>
!
interface GigabitEthernet0/0/0
ip address 201.201.201.1 255.255.255.0
media-type rj45
negotiation auto
!
!!! Virtual Port Group (VPG) configs
interface VirtualPortGroup0
ip address 30.30.30.1 255.255.255.0
no mop enabled
no mop sysid
!
!!! IOx App configs for LXC/DOCKER CONTAINER STATIC IP ASSIGNMENT
app-hosting appid preflxc
vnic gateway1 virtualportgroup 0 guest-interface 0 guest-ipaddress 30.30.30.10 netmask 255.255.255.0 gateway 30.30.30.1 name-server 172.19.198.82 default
end
IOX App DHCP Support
The above app-hosting Static IP address configurations apply only to LXC or Docker type IOx applications. KVM does not support IOS configuration for Static IPs.
KVM apps IP address assignment can be done either:
- OS specific manual configuration of the eth0 interfaces.
- Using an application installed DHCP client.
For any IOx application implementing DHCP IP address assignments, the following app-hosting configurations are used.
!!! IOx App configs for for IOX APP DHCP IP ASSIGNMENT
app-hosting appid preflxc
vnic management guest-interface 0
vnic gateway1 virtualportgroup 0 guest-interface 0
IOx Application Life-cycle IOS CLI Commands
Below are examples of 16.8 IOS CLI App-hosting Life-cycle CLIs. 16.9 introduces a different IOS CLI syntax. Refer to the customer documentation on Cisco.com: Programmability Command Reference
Install and Start App via IOS exec commands which "must" be followed in the given order:
app-hosting install appid perflxc package flash:perfsonar-testpoint.v4.0.c1.0.0.tar
app-hosting activate appid perflxc
app-hosting start appid perflxc
NOTE: the above commands might take several minutes to complete depending upon various factors:
Speed of the USB Flash Disk
Switch/Router activity load
Boot-up time of the application
Check Application Status
- show app-hosting list
- This command shows the application operational state.
- show app-hosting list
Check Application Resources
- show app-hosting detail appid <APPID-NAME>
- This command shows the resources allocated to the given appid. The app perflxc LXC resources such as system memory, vcpus, cpu resources, etc are shown below.
- show app-hosting detail appid <APPID-NAME>
Example of Life-cycle command for a PerfSonar LXC app
AppHosting#app-hosting install appid perflxc package flash:perfsonar-testpoint.v4.0.c1.0.0.tar
perflxc installed successfully
Current state is: DEPLOYED
AppHosting#app-hosting activate appid perflxc
perflxc activated successfully
Current state is: ACTIVATED
AppHosting#app-hosting start appid perflxc
perflxc started successfully
Current state is: RUNNING
AppHosting#show app-hosting list
App id State
------------------------------------------------------
perflxc RUNNING
AppHosting#show app-hosting detail appid perflxc
State : RUNNING
Author : Cisco
Application
Type : lxc
App id : perflxc
Name : perfsonar-lxc
Version : 1.0.0
Activated profile name : custom
Description : PerfSONAR 4.0 Cisco IOx LXC
Resource reservation
Memory : 2048 MB
Disk : 10 MB
CPU : 7400 units
VCPU : 2
Attached devices
Type Name Alias
---------------------------------------------
Serial/shell
Serial/aux
Serial/Syslog serial2
Serial/Trace serial3
Network interfaces
---------------------------------------
eth0:
MAC address : 52:54:dd:be:a5:7f
IPv4 address : 172.19.198.83
- To Connect to IOx PerfSonar console: (login/password: root/cisco)
> app-hosting connect appid perflxc console
NOTE: to exit Perfsonar's console mode, use "^c^c^c".
Output Example:
CAT9K#app-hosting connect appid perflxc console
Connected to appliance. Exit using ^c^c^c
CentOS Linux 7 (Core)
Kernel 4.4.86 on an x86_64
CAT9K_1_RP_0 login: root
Password: cisco
Last login: Tue Oct 31 23:29:44 on ttyS0
[root@CAT9K_1_RP_0 ~]#
- To Delete a Running App, the following sequence order must be followed:
- app-hosting stop appid
- App in "shutdown" state, but cpu/memory/disk resources still allocated and rootfs files and changes remain persistent
- app-hosting deactivate appid
- App removed with cpu/memory/disk resources all released, but rootfs files and changes remain persistent
- app-hosting uninstall appid
- App completely removed from IOx and all rootfs files and changes are lost
- app-hosting stop appid