Open Ethernet Networking (OpEN) API Guide and Reference Manual
3.6.0.3
|
File Transfer provides the ability to download code to a switch. These APIs are used to setup and execute file transfer via TFTP, SFTP and SCP.
This document provides a brief description of the file transfer OpEN APIs. The file transfer OpEN APIs allow processes outside of the ICOS main process (switchdrvr) access to file transfer services. It provides the following services:
All 'Set' operations may affect the Switch behavior and configuration.
In the main function, the sample application initializes the OpEN API RPC service by calling openapiClientRegister() and waits for the RPC service in switchdrvr to start. A Client Handle is returned by openapiClientRegister() which is used while invoking the OpEN APIs. The application then exercises the associated OpEN APIs and logs informational and/or error messages on the console. The example application runs to its completion and exits.
transfer_example.c is a sample application that demonstrates the use of the file transfer OpEN APIs. transfer_example is started from the command line and has the following usage syntax:
Usage: transfer_example <test#> <arg1> <arg2> ...
It exercises all the file transfer OpEN APIs with appropriate arguments to setup and execute a file transfer in the ICOS main process (switchdrvr).
The following is a list and sequence of these tests that demonstrates the majority APIs.
A number of tests are available to check the current file transfer setup.
CLI Command | OpEN API Reference ---------— | ----------— (Priv-User Mode)#
copy tftp://{ipaddress|hostname}/{filepath}/{filename} {active|backup|image1|image2} <verifyOption> | openapiTransferModeSet()
openapiTransferFileTypeSet()
openapiTransferServerAddressSet()
openapiTransferFileRemoteSet()
openapiTransferFileLocalSet()
openapiTransferDownStartSet() (Priv-User Mode)#
copy scp://{user}ipaddr|hostname}/{filepath}/{filename} {active|backup|image1|image2} <verifyOption> | openapiTransferModeSet()
openapiTransferFileTypeSet()
openapiTransferServerAddressSet()
openapiTransferFileRemoteSet()
openapiTransferFileLocalSet()
openapiTransferRemoteUserCredentialsSet()
openapiTransferDownStartSet() (Priv-User Mode)#
copy sftp://{user}ipaddr|hostname}/{filepath}/{filename} {active|backup|image1|image2} <verifyOption> | openapiTransferModeSet()
openapiTransferFileTypeSet()
openapiTransferServerAddressSet()
openapiTransferFileRemoteSet()
openapiTransferFileLocalSet()
openapiTransferRemoteUserCredentialsSet()
openapiTransferDownStartSet() (Priv-User Mode)#
copy system:running-config {nvram:startup-config|nvram:factory-defaults} | openapiCopyConfigFile()
# ./transfer_example
Usage: transfer_example <test#> <arg1> <arg2> ...
Test 0: Transfer OpEN APIs Sanity: ./transfer_example 0
Test 1: Convert Host/IP String to IP Address: ./transfer_example 1 <string>
Test 2: Get Image Header Size: ./transfer_example 2
Test 3: Image Header Check: ./transfer_example 3 <filename>
Test 4: Get Transfer Mode: ./transfer_example 4
Test 5: Set Transfer Mode: ./transfer_example 5 <tftp|sftp|scp|#mode>
Test 6: Get Transfer File Type: ./transfer_example 6
Test 7: Set Transfer File Type: ./transfer_example 7 <code|config|#type>
Test 8: Get Transfer Server Address: ./transfer_example 8
Test 9: Set Transfer Server Address: ./transfer_example 9 <Address/Hostname>
Test 10: Get Transfer Remote File Name: ./transfer_example 10
Test 11: Set Transfer Remote File Name: ./transfer_example 11 <name> <path>
Test 12: Get Transfer Local File Name: ./transfer_example 12
Test 13: Set Transfer Local File Name: ./transfer_example 13 <label>
Test 14: Get User Credentials: ./transfer_example 14
Test 15: Set User Credentials: ./transfer_example 15 <username> <password>
Test 16: Get Digital Signature Verification: ./transfer_example 16
Test 17: Set Digital Signature Verification: ./transfer_example 17 <none|image|script|all|#mode>
Test 18: Start Download: ./transfer_example 18
Test 19: Transfer In Progress: ./transfer_example 19
Test 20: Transfer Result Get Status: ./transfer_example 20
Test 21: Transfer Result Get Code: ./transfer_example 21
Test 22: Dump Current Config: ./transfer_example 22
Test 23: Copy Running Config File to Backup: ./transfer_example 23
# ./transfer_example 3 headerNew.bin
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Image Header Check - file [headerNew.bin] is a valid image for this system (1). (result = 0)
# ./transfer_example 5 tftp
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Mode Set: TFTP. (result = 0)
# ./transfer_example 7 code
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Type Set: code. (result = 0)
# ./transfer_example 9 lab-rtp-tftp.rtp.broadcom.com
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Set Server Address: 10.27.9.99 (result = 0)
# ./transfer_example 11 imageNew.stk /gator/
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Remote File Name Set Path:'/gator/' Name:'imageNew.stk'. (result = 0)
# ./transfer_example 13 backup
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Local File Name Set: backup. (result = 0)
# ./transfer_example 17 none
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Digital Sig Verify Config Get: None(0). (result = 0)
# ./transfer_example 22
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
CONFIG – Transfer Mode: TFTP
CONFIG – FileType: CODE
CONFIG – Transfer Server Address: 10.27.9.99
CONFIG – Remote File Path: '/gator/'
CONFIG – Remote File Name: 'imageNew.stk'
CONFIG – Local File Name (label): 'backup'
CONFIG – User Credentials Username: ''
CONFIG – User Credentials Password: ''
CONFIG – Digital Signature Verify: None
# ./transfer_example 18
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
CONFIG – Transfer Mode: TFTP
CONFIG – FileType: CODE
CONFIG – Transfer Server Address: 10.27.9.99
CONFIG – Remote File Path: '/gator/'
CONFIG – Remote File Name: 'imageNew.stk'
CONFIG – Local File Name (label): 'backup'
CONFIG – User Credentials Username: ''
CONFIG – User Credentials Password: ''
CONFIG – Digital Signature Verify: None
File transfer in progress. Management access will be blocked for the duration of the transfer. please wait... PASSED – Start Download: (result = 0)
# ./transfer_example 19
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer In Progress: True (result = 0)
# ./transfer_example 20
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Result Get Status: 2 - 'File contents are valid. Copying file to flash...'. (result = 0)
# File transfer operation is complete. Management interfaces are released.
# ./transfer_example 19
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer In Progress: False (result = 0)
# ./transfer_example 20
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Result Get Status: 10 - ''. (result = 0)
# ./transfer_example 21
ICOS Version = 8.2.29.6 Open API Version = 1.10.0.0
PASSED – Transfer Result Get Code: 11 (Success). (result = 0)
# ./transfer_example 23
ICOS Version = 11.3.28.7 Open API Version = 1.20.0.0
PASSED – Copy Config File directive: 4. (result = 0)