Public Repository

Last pushed: a year ago
Short Description
Network testing using Cisco IOx: Instantiate an iperf server on a Cisco IR8x9.
Full Description

"iperf is a commonly used network testing tool that can create Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) data streams and measure the throughput of a network that is carrying them." -- Wikipedia

Here is a good tutorial on using iperf: https://openmaniak.com/iperf.php

NOTE: This is not iperf3. iperf3 is not compatible with prior versions.

The target hardware for this application is the Cisco IR809 or IR829. On the computer that launches the iperf client, you would execute "iperf -c <ip address of the server node>" to get a test of the bandwidth available on the network between the client and the iperf server on the IOx device.

Please scroll to the bottom for additional resource links.

The base of this package was Alpine and this is the Dockerfile that was used to build the app:

FROM alpine:3.3
RUN apk add --update iperf
EXPOSE 5001
COPY loop.sh /opt/apps/
RUN chmod 777 /opt/apps/loop.sh

Note you must have a foreground task to keep the app alive and that is where loop.sh is used.

#!/bin/sh

iperf -s

while [ 1 ]; do
sleep 1
done

The two files above are background info needed if you wanted to rebuild or modify this application.

To deploy this application using Cisco Fog Director version 1.2.x or great, you will only need the repo location for the Fog Director dialog box to "Add new app", in the box "Image name or ID" enter "fcolumbu/cisco_iox_iperfnode"

Docker Registry defaults to this site if left blank, Image tag will default to "latest" if left blank, the Registry Username and Registry Password fields on the Fog Director dialog box for Add new app can also be left blank since this a public repo.

You will want to copy the appropriate package.yaml file to your computer as that will be requested in the same dialog box.

This site does not preserve correct indentation of the file which is essential to proper use.

Please visit:

https://github.com/CiscoIOx/artifacts/blob/master/package_descriptor/samples/schema_2.2/sample_docker_app.yaml

http://www.yaml.org/start.html

For the correct indentation format.

Please see the following:

#-----------------------------package.yaml-----------------------------------

descriptor-schema-version: "2.2"

info:
name: iperfNode
description: iperf node
version: "1.0"
author-link: "http://www.cisco.com"
author-name: "Cisco Systems"

app:
# Indicate app type (vm, paas, lxc etc.,)
cpuarch: "x86_64"
type: docker
resources:
profile: c1.small
network:
-
interface-name: eth0
ports:
tcp: [5001]

# Specify runtime and startup
startup:
rootfs: rootfs.tar
target: ["/opt/apps/loop.sh"]

#----------------------------End of package.yaml-----------------------------------

NOTE: This app is provided as a best effort with no implied support.

For more information on the target Fog Computing environment please see the following:

Using Cisco DevNet IOx Sandbox:
https://www.youtube.com/watch?v=6PPJC_1KNew

Launching Cisco DevNet IOx Sandbox:
http://cs.co/ioxsandbox

Cisco Fog Director:
http://www.cisco.com/c/en/us/products/cloud-systems-management/fog-director/index.html

Cisco IR809:
http://www.cisco.com/c/en/us/products/collateral/routers/809-industrial-router/datasheet-c78-734980.html

Cisco IR829:
http://www.cisco.com/c/en/us/products/collateral/routers/809-industrial-router/datasheet-c78-734980.html

Cisco IOx Documentation:
https://developer.cisco.com/site/iox/documents/developer-guide/

Docker Pull Command
Owner
fcolumbu

Comments (0)