Introduction and Concepts

The REST APIs make it possible to create client applications that are platform-and-language-independent. REST applications can use the APIs to perform various tasks with GigaVUE-FM by making requests and receiving responses as shown in Figure 1 APIs and GigaVUE-FM.

Figure 1 APIs and GigaVUE-FM

Applications that implement the GigaVUE-FM APIs can do the following:

Improve security through better network detection, reaction, and response by automating NetFlow generation and SSL decryption so that current security appliances are not overtaxed when performing deep packet inspection. For example, security administrators can use the APIs that program the Visibility Fabric to dynamically change the traffic forwarding policies in response to threats or anomalous network traffic changes.
As new virtual machines are spun up, administrators can write policy management programs that utilize Gigamon's APIs to automatically follow new changes within virtual and physical networks.
For many organizations, IT Operations Management (ITOM) groups can use the APIs to develop programs that automate the following processes through software-defined visibility:
Performing common tasks, such as provisioning and ticketing of network port configurations.
Monitoring new IP subnets and VLANs.
Upgrading software images.

Refer to the following sections:

Installation
What is REST?
Authentication
Resources
GigaVUE-FM Resources
HTTP
GigaVUE-FM API Reference

Installation

For support and installation instructions, refer to the GigaVUE-FM and GigaVUE Cloud Suite for VMware Configuration Guide.

What is REST?

REST is an architectural style that relies on a client-server communication protocol that is stateless. It is assumed that the client and server do not know anything about the state of an object other than what is communicated in requests and responses. Objects are identified by a uniform resource identifier (URI). Objects represent resources, and the URI provides a link to the resource. The state of a resource is communicated by structured documents passed between the client and the server.

GigaVUE-FM APIs use HTTP as the communication protocol to communicate with the GigaVUE Fabric Manager (FM). Therefore, anyone who is creating applications should be familiar with the HTTP protocol before creating clients that use the APIs.

Another important concept is Hypermedia as the Engine of State (HATEOS). HATEOS is a constraint on the REST architecture. This constraint states that hypertext is used to change the state of an application and allows the application to navigate through an API.

Authentication

Authentication must accompany each request that an application makes to GigaVUE-FM. The authentication is contained in the authorization header of the request. (For more information about headers, refer to HTTP Headers.) The APIs only support Basic authorization. Basic authorization uses unencrypted base64 encoded text to send the user name and password in the request.

The following is an example of using base64 encoding to encode a user name and password:

    encoding = base64.base64encode('username1:password1')
    print encoding
    dXNlcm5hbWU6cGFzc3dvcmQ=

Notes:

When an application logs in to GigaVUE-FM to make a request, the application should also log out after the request is complete. Otherwise, too many user sessions may be created and an invalid credential error message returned if the current request exceeds the maximum number of user sessions.
Starting with GigaVUE-OS 4.7.00, the default admin password admin123A! is no longer allowed on nodes. When authenticating through the APIs against a node that is running GigaVUE-OS 4.7.00 or later, if admin123A! is used, the authentication will not complete.

Resources

Resources are a key component in REST and represent an object within a system. They are associated with data and have relationships to other resources. There is also a set of methods that operate on a resource.

The following sections provide an overview of these resources and the resources an application can access through GigaVUE-FM:

Links to Resources
Representation of Resources
JSON Representation
HTTP Headers
HTTP Methods

Links to Resources

A uniform resource identifier (URI) provides the link to a resource. The URI consists of a base URI and a request URI. The base URI for GigaVUE-FM APIs is as follows, where <fmip> is the IP address for GigaVUE-FM and <api_version> is the current version of the API:

<fmip>/api/<api_version>

The request URI is the portion of the URI used to perform an HTTP request. For example:

/inventory/ports

A complete URI is:

<fmip>/api/v1.3/inventory/ports

Note:  You can use the API GET <fmip>/api/version to get the current API version. This API returns the following content in JSON format:

   {"apiVersion": "v1.3", "schemaVersion": "v1.3"} 

Representation of Resources

GigaVUE-FM REST APIs use JavaScript object notation (JSON) to represent resources in a structured document. This representation is used in the request and response bodies of API calls. The default format is JSON and the GigaVUE-FM API Reference provides JSON models and model schema to describe response classes and request bodies. For information on how to access the reference, refer to GigaVUE-FM API Reference.

When a client makes a request to a resource, the request specifies that it is using JSON in the request and that the response should return data in JSON. The format is specified in the header of the request. For more information about headers, see HTTP Headers

JSON Representation

JSON is a language-independent data format that is considered easy to read and write. The data is provided as a collection of unordered name/value pairs and ordered lists of values. The
name/value pairs can be viewed as a dictionary and the ordered list of values as an array.

For example, the following represents port information in JSON format returned in a response body as the result of a query to the resource /inventory/ports:

{
   "context" : {
      "totalItems" : 59
   },
   "ports" : [ {
      "portId" : "5/2/x4",
      "comment" : "",
      "portType" : "tool",
      "adminStatus" : "down",
      "operStatus" : "down",
      "licensed" : true,
      "medium" : "OPTICAL",
      "configSpeed" : "10G",
      "duplex" : "full",
      "autoNeg" : false,
      "forceLinkUp" : false,
      "mtu" : 9600,
      "healthState" : "green",
      "neighborDiscovery" : "none"
   }, {
      "portId" : "5/2/x12",
      "comment" : "",
      "portType" : "network",
      "adminStatus" : "down",
      "operStatus" : "down",
      "licensed" : true,
      "medium" : "OPTICAL",
      "configSpeed" : "10G",
      "duplex" : "full",
      "autoNeg" : false,
      "forceLinkUp" : false,
      "mtu" : 9600,
      "healthState" : "green",
      "neighborDiscovery" : "none"
   }, ...
   ]
}

Because the data can be viewed as dictionaries and arrays, it is easy to extract the information from a response. For example, the following code processes the JSON document and prints the administrative and operational status of ports with an administrative status of up:

   portInfo = json.loads(r.text)
   ports = portInfo['ports']
   for port in ports:
      adminStatus = port['adminStatus']
      operStatus = port ['operStatus']
      if adminStatus == 'up':
         print 'Port ID: ' + port['portId']
         print '  Admin Status: ' + port['adminStatus']
         print '  Op Status: ' +  port['operStatus']

In JSON, the collection of name/value pairs is referred to as an object, and the ordered collection of values is referred to as an array. In the previous code example, the json.loads function converts the JSON object into a dictionary.

Values are separated by commas and can be any of the following:

A string in double quotes
A number
An object
An array
True
False
Null

XML Representation

REST APIs can also use XML formatted documents in request bodies and in responses. In an XML representation, the resource is represented as elements and attributes.

The following snippet represents the same port information shown in the previous section. However, it is presented in XML format instead of JSON.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GigaPortsQueryResponse>
	<context>
		<totalItems>59</totalItems>
	</context>
	<ports>
		<port portId="5/2/x4">
			<comment></comment>
			<portType>tool</portType>
			<adminStatus>down</adminStatus>
			<operStatus>down</operStatus>
			<licensed>true</licensed>
			<medium>OPTICAL</medium>
			<configSpeed>10G</configSpeed>
			<duplex>full</duplex>
			<autoNeg>false</autoNeg>
			<forceLinkUp>false</forceLinkUp>
			<mtu>9600</mtu>
			<healthState>green</healthState>
			<neighborDiscovery>none</neighborDiscovery>
		</port>
			<port portId="5/2/x12">
			<comment></comment>
			<portType>network</portType>
			<adminStatus>down</adminStatus>
			<operStatus>down</operStatus>
			<licensed>true</licensed>
			<medium>OPTICAL</medium>
			<configSpeed>10G</configSpeed>
			<duplex>full</duplex>
			<autoNeg>false</autoNeg>
			<forceLinkUp>false</forceLinkUp>
			<mtu>9600</mtu>
			<healthState>green</healthState>
			<neighborDiscovery>none</neighborDiscovery>
		</port>
		...
 	</ports>
</GigaPortsQueryResponse>

The following code processes the XML document and prints the administration and operation status of ports with an administration status of “up”.

			root = ET.fromstring(r.text)
        
for port in root.iter('ports'):
for port in ports.findall('port'):
portId = port.get('portId')
adminStatus = port.find('adminStatus').text
operStatus = port.find ('operStatus').text
if adminStatus == 'up':
print 'Port ID: ' + portId
print ' Admin Status: ' + adminStatus
print ' Op Status: ' + operStatus

GigaVUE-FM Resources

The GigaVUE-FM APIs provide much of the same functionality as the GigaVUE-OS CLI commands. Table 1: API Resources and CLI Commands lists the available resources by their root and the CLI commands that provide a similar functionality as the APIs for a given resource. (For detailed information about the CLI commands, refer to the GigaVUE-OS-CLI Reference Guide. The base URI for the resources when making a request is <fmip>/api/v3.1. For more information about URIs, refer to Links to Resources.

Table 1: API Resources and CLI Commands

Resource

Description

CLI Command

/nodes

Node management

FM only

/nodeCredentials

Credentials for FM managed physical nodes

FM only

/inventory/chassis

Device chassis configuration

show chassis

/inventory/ports

Device port configuration

show port

/portConfig/portConfigs

Port configuration

port

/portConfig/portGroups

Port group configuration

port-group

/tunnelLBEndpoints

Tunnel Endpoint operations

 

/portConfig/gigastreams

GigaStream configuration

gigastream

/portConfig/portPairs

Port-pair configuration

port-pair

/portConfig/toolPortMirrors

Tool port mirror configuration

tool-mirror

/portConfig/toolPortFilters

Tool port filter configuration

port filter rule

/portConfig/stackLinks

Stack links configuration

stack-link

/portConfig/tunneledPorts

Tunneled port configuration

tunneled-port

/maps

Maps and map rules configuration

map

/mapChains

Map chain configuration

FM only

/mapGroups

Map group configuration

 

/mapTemplates

Map template configuration

map-template

/filterTemplates

Filter template configuration

 

/gigasmart

GigaSMART engine configuration

 

/gsGroups

GigaSMART group configuration

gsgroup

/gsops

GigaSMART operations configuration

gsop

/vports

Virtual port configuration

vport

/apps/netflow

Netflow exporter, record, and monitor configuration

apps netflow

/apps/ssl

Secure Socket Layer (SSL) decryption keystore and decryption key configuration

apps ssl

/apps/saApfProfiles

Session-aware APF profile configuration

apps sapf

/apps/gtp/whitelists

GTP Whitelist operations

apps gtp-whitelist

/inline/networks

Inline network configuration

inline-network

/inline/networkGroups

Inline network group configuration

inline-network-group

/inline/tools

Inline tool configuration

inline-tool

/inline/toolGroups

Inline tool group configuration

inline-tool-group

/inline/serialToolGroups

Inline tool series configuration

inline-serial

/inline/hbProfiles

Heartbeat profile configuration

hb-profile

/inline/negativeHbProfiles

Negative heartbeat profile configuration

inline-tool negative-heart-beat

/inline/hbPackets

Heartbeat packet upload configuration

hb-profile custom-packet

hb-profile packet-format

/inline/reduncancyProfiles

Inline tool group redundancy

inline-network

/system/config

Configuration files upload and download

configuration fetch

configuration upload

/system/time

Time settings

ntp, ptp

/system/syslog

Syslog retrieval and update

logging

/system/sysdump

Sysdump file generation, download, and delete

debug generate dump

/system/diag

Retrieves the diagnostic info about the device like build version, software version, port configuration, and so on.

 

/system/localUsers

Local user account management

username

/system/security

System security policy settings

system

/system/aaa

Authorization and roles

aaa authentication

system/ldapServers

LDAP servers for authentication

ldap

/system/radiusServers

RADIUS servers for authentication

radius-server

/system/tacacsServers

TACACS+ servers for authentication

tacacs-server

/system/snmp

SNMP settings, v3 users, notification targets

snmp-server host

/system/email/notifications

Email notification settings

email

/system/uboot

Install binary bootloader code included with the active/booted image

uboot install

/clusterConfig

Physical cluster reboot and image upgrade

reload

/system/interfaces

Retrieves system interface information

show interface

/clusterConfig/backup

Cluster configuration backup and restore

 

/clusterConfig/bulk

Bulk replicate configuration

 

/imageServers

Image file servers

FM only

/licensing

Licensing management for FM

FM only

/events

Manage events

FM only

/auditLog

Audit log of user actions on FM

FM only

/trending

Time series information for ports, maps, GS groups, virtual ports, GVM ports, and GVM maps

FM only

/trafficAnalyzer

Flow mapping analytics for dropped traffic

FM only

/tunnelEndpoints

Tunnel endpoint information

tunneled-port

/topology

Create, update, and delete manual nodes and links in Topology Visualization

FM only

/fmSystem

Reboot, backup, and restore GigaVUE-FM. Provide the image server and file path to the upgrade image on the server.

FM only

/fmSystem/archiveServers

Manage archive server and archive files.

FM only

Starting with GigaVUE-FM 3.5, Public Cloud Visibility APIs are available for use with the Gigamon Visibility Platform for AWS. These resources do not have any equivalent CLI commands. Table 2: Gigamon Visibility Platform for AWS API Resources lists the resources for Public Cloud Visibility. For details about these APIs, refer to the GigaVUE-FM 3.5 API Reference.

Table 2: Gigamon Visibility Platform for AWS API Resources

Resource

Description

vfm/configParams

Retrieves and redefines configuration parameters.

vfm/proxyServers

Creates, updates, and deletes Proxy Servers

vfm/tunnelSpecs

Retrieves, creates, modifies, or deletes tunnel specification.

vfm/tunnelEndpoints

Retrieves tunnel endpoints.

vfm/maps

Retrieves, creates, modifies, or deletes maps.

vfm/mapFolders

Retrieves, creates, modifies, or deletes map folders and retrieves maps associated with a folder.

vfm/apps

Retrieves, registers, updates, or deletes GigaSMART applications.

vfm/monitoringSessions

Retrieves, creates, modifies, or deletes monitoring sessions.

vfm/statistics

Retrieves monitoring session traffic statistics.

vfm/ats/

Retrieves a list of VMs selected for a monitoring session.

vmm/aws/connections

Retrieves, updates, adds, or connects to AWS connections.

vfm/aws/fabricDeployment

Manages AWS fabric deployment, G-vTAP Controllers, V Series Controllers, and V Series nodes

vfm/openstack/connections

Retrieves, adds, updates, and removes OpenStack Connection details.

vfm/openstack/fabricDeployment

Manages OpenStack fabric deployment that includes G-vTAP Controllers, V Series Controllers, and V Series nodes.

HTTP

The Hypertext Transfer Protocol (HTTP) is the protocol used in REST for communication between the client and the server. This section provides a description of the HTTP methods supported by the GigaVUE-FM APIs, HTTP headers, and status codes that can be returned in response to a request.

This section covers the following topics:

HTTP Headers
HTTP Methods
HTTP Status Codes

HTTP Headers

HTTP headers are part of requests and responses and provide information about the client and the server. The headers contain authorization information and specify the format of the content in a request or response body.

The following are the basic headers:

Authorization—Specifies the authentication used in the request. Basic authorization sends the user name and password as unencrypted base64 encoded text. Digest authorization sends the password to the server in a hashed form. (The GigaVUE-FM APIs use only Basic authorization.)
Accept—Specifies the format of the data expected in the response to a request.
Content-Type—Specifies the format of the data in a request or response body. This header is used in POST, PUT, and PATCH operations. It is not used with a GET operation.
Content-Length—Specifies the number of bytes in the content body of a request.

Note:  In the current release, the Content-Type and Accept headers should always specify application/json.

HTTP Methods

REST applications use HTTP methods to perform create, read, update, and delete operations on resources, otherwise known as CRUD operations. The GigaVUE-FM REST APIs support the following HTTP methods:

GET
POST
PUT
PATCH
DELETE

These operations are idempotent. In the context of REST, this means that the same request always produces the same result on the server. However, the response from the server may be different because it may have changed state between requests.

GET

A GET operation requests a resource for a representation of that resource.GET requests only retrieve data.

The following example retrieves a port by port ID:

GET <fmip>/api/<api_version>/inventory/ports/5_2_x8
Authorization: Basic 'dXNlcm5hbWU6cGFzc3dvcmQ='
Accept: application/json

The previous request returns the following response in JSON format:

{
   "port" : {
   "portId" : "5/2/x8",
      "alias" : "Map_Source",
      "comment" : "",
      "portType" : "network",
      "adminStatus" : "up",
      "operStatus" : "up",
      "licensed" : true,
      "medium" : "OPTICAL",
      "sfp" : {
         "sfpType" : "sfp+ sr",
         "sfpPower" : " -1.86 ",
         "vendorName" : "GIGAMON SFP-532",
         "vendorSn" : "APM0M2D        ",
         "vendorPn" : "GMON8571D3BCL-G"
      },
      "configSpeed" : "10G",
      "duplex" : "full",
      "autoNeg" : false,
      "forceLinkUp" : false,
      "mtu" : 9600,
   }
}

POST

A POST operation creates a new resource. The resource is created at the location specified in the request. For example, the following request adds a GigaSMART operation at /api/<api_version>/gsops:

POST <fmip>/api/<api_version>/gsops?clusterId=10.115.152.54
Authorization: Basic 'dXNlcm5hbWU6cGFzc3dvcmQ='
Content-Type : application/json
Accept : application/json
Content-Length : 129

The following is an example of a body used in the previous request:

{
   "alias" : "masking",
   "gsGroup" : "GS1",
   "gsApps" : {
      "masking" : {
         "protocol" : "tcp",
         "offset" : 4,
         "pattern" : "b" ,
         "length" : 13
      }
   }
}

PUT

A PUT operation modifies a resource with data provided in the request. The resource is created with the given data at the URI in the request if the resource does not already exist.

For example, the following request replaces an existing map definition defined by its alias.

PUT <fmip>/api/<api_version>/maps/AASlice_Level1
Authorization: Basic 'dXNlcm5hbWU6cGFzc3dvcmQ='
Content-Type : application/json
Accept: application/json
Content-Length : 597

The following is an example of a body used in the previous request:

{
   "maps" : [ {
      "alias" : "AASlice_Level1",
      "clusterName" : "10.115.152.54",
      "type" : "firstLevel",
      "subType" : "byRule",
      "srcPorts" : [ "10/1/g10", "10/1/g11", "10/1/g12", "10/1/g13"],
      "dstPorts" : [ "vp" ],
      "order" : 1,
      "rules" : {
         "dropRules" : [ ],
         "passRules" : [ {
            "ruleId" : 1,
            "bidi" : true,
            "matches" : [ {
               "type" : "portSrc",
               "value" : 80
         } ]
      }, {
         "ruleId" : 2,
         "bidi" : true,
         "matches" : [ {
            "type" : "portSrc",
            "value" : 20
         } ]
      }, {
         "ruleId" : 3,
         "bidi" : true,
         "matches" : [ {
            "type" : "portSrc",
            "value" : 21
         } ]
      } ]
   },
   "roles" : {
      "owners" : [ "admin" ],
         "viewers" : [ ],
         "editors" : [ ],
         "listeners" : [ ]
      }
   } ]
}

PATCH

A PATCH operation modifies individual properties of a resource according to the instructions in the request.

For example, the following request changes a tool port to a network port and enables the administrative status:

PATCH <fmip>/api/<api_version>/inventory/ports/3_1_x1
Authorization: Basic 'dXNlcm5hbWU6cGFzc3dvcmQ='
Content-Type: application/json
Accept: application/json
Content-Length : 62

The following is an example of the body used in the previous request:

{
   'adminStatus': 'up',
   'portType': 'network',
   'portId': '3/1/x1'
}

DELETE

A DELETE operation removes a resource.

For example, the following request deletes a map by its alias:

DELETE <fmip>/api/<api_version>/maps/AASlice_Level1
Authorization: Basic 'dXNlcm5hbWU6cGFzc3dvcmQ='
Content-Type: application/json
Accept: application/json

HTTP Status Codes

A response to a request provides a status code indicating to the client whether the request was successful or failed. Table 3: HTTP Status Codes lists some of the status codes that the GigaVUE-FM APIs can return.

Table 3: HTTP Status Codes

Status Code

Meaning

200 OK

The request succeeded.

201 Created

The request was accepted and a new resource was created.

202 Accepted

The server accepted the request.

204 No Content

The response did not have any content.

400 Bad Request

The request is invalid.

401 Unauthorized

The request was not authenticated.

403 Forbidden

Access denied.

404 Not Found

The entity was not found.

409 Conflict

The entity already exists.

500 Internal Server

An error occurred on the server.

For 400 and 500 series status codes, the response from GigaVUE-FM contains a body in JSON format that provides a description of the error.

GigaVUE-FM API Reference

You can access the descriptions of the GigVUE-FM Core APIs from GigaVUE-FM by clicking on the appropriate link under Support. The help page lists the APIs for the different types of operations. Each description provides the methods available, the JSON model and model schema for the requests and responses, and the applicable HTTP status codes returned in error messages. You can also connect to the on-line GigaVUE-FM API Reference through the following URL:

<FM IP address>/apiref/apiref.html

Response Error Messages

Starting with GigaVUE-FM version 3.4, REST API requests return a global error message if an error occurs. Prior to GigaVUE-FM version 3.4, if an error occurred the error message presented was the error returned by the device, which could vary from device to device for the same error condition. The global error message returned by GigaVUE-FM APIs have an error response body that contains a unique code and a message. The following is an example:

"errors": 
[{    "code":"0x800200b",
    "msg": “Invalid alias 'Test Space'. ''is a reserved character."
}]

The following tables list the possible error codes and their descriptions.

Table 4: Gigamon Device Error Codes

Error Code

Description

0x80020000

initialization failure

0x80020001

TMS internal failure

0x80020002

Null Objects

0x80020003

No more resource

0x80020004

uninitialized param

0x80020005

Unsupported Product Code

0x80020006

Unsupported Operation

0x80020007

Configuration Failed

0x80020008

Configuration exists

0x80020009

Configuration not found

0x8002000a

Operation not allowed on reserved object

0x8002000b

invalid argument

0x8002000c

invalid net addr/mask

0x8002000d

invalid ip addr/mask

0x8002000e

GV DB query failed

0x8002000f

GVO internal failure

0x80020010

Objects exceeds maximum range

0x80020011

Config in progress

0x80020012

User invalid

0x80020013

User role Invalid

0x80020014

User Permission Insufficent for Operation

0x80020015

Unlicensed Feature

0x80020016

Feature License expired

0x80020017

Chassis is in SAFE mode! No new traffic configuration is allowed.

0x80020018

Chassis is in LIMITED mode! The configuration is not allowed.

0x80020020

Chassis not valid

0x80020021

Card not valid

0x80020022

Card Mode Invalid

0x80020023

Slot not valid

0x80020024

Slot State Invalid

0x80020025

Slot not configured

0x80020026

Unconfigured box-id

0x80020027

Chassis mode is not supported

0x80020028

CC card does not support this card

0x80020030

Port Invalid

0x80020031

Port Type Invalid

0x80020032

Port not configured

0x80020033

Port Mode Invalid

0x80020034

Port Inactive

0x80020035

Port SFP Unsupported

0x80020036

Port Config is invalid

0x80020037

Port Config exists

0x80020038

Port conflict in config

0x80020039

Portpair update disallowed. Config exists

0x8002003a

Portpair object mismatch

0x8002003b

Portpair cross-box not supported

0x8002003c

Portpair cross-card not supported

0x8002003d

Portpair with tunnel not supported

0x8002003e

Portpair Linktimer failed

0x8002003f

Port Group in Use

0x80020040

Port Group Object Mismatch

0x80020041

Port Group has Tunnel config

0x80020042

Port Group resource exceeds range

0x80020043

Stacklink in Use

0x80020044

Stacklinks cannot be in same box

0x80020045

Stacklinks not found

0x80020046

Stacklinks will cause loops

0x80020047

Port in Use

0x80020048

Invalid port to break out

0x80020060

GSOP required for operation

0x80020061

GSOP SSL requires order of operation

0x80020062

GSOP invalid

0x80020063

GSOP invalid GSAPP combination

0x80020064

GSOP Configuration exists

0x80020065

GSOP object mismatch

0x80020066

GSOP AFP needs VPORT

0x80020067

GSOP and VPORT not in same group

0x80020068

GSOP and GSGroup mismatch

0x80020069

GSOP needs flow filter

0x80020070

GS:internal error

0x80020071

GS:gsrule object mismatch

0x80020072

GS:gsrule and flowrule mismatch

0x80020073

GS: no tunnel-port

0x80020074

GS: Tunnel Config exits

0x80020075

GS: Tunnel object mismatch

0x80020076

GS: Tunnel feature not supported

0x80020077

GS: Tunnel resource not available

0x80020078

GS: Tunnel incomplete config

0x80020079

GS:SSL Error

0x8002007a

GS:SSL app not found

0x8002007b

GSGROUP SSL passwd not set

0x8002007c

GS:SSL key error

0x8002007d

GS:SSL Max key object

0x8002007e

GS:SSL duplicate key object

0x8002007f

GS:SSL failed to decrypt key object

0x80020080

GS:SSL failed to decrypt key object

0x80020081

GS:SSL Server config exists

0x80020090

GSGROUP not valid

0x80020091

GSGROUP Filter has more e-ports

0x80020092

GSGROUP Max num or GSRULES exceeds

0x80020093

GSGROUP Config exits

0x80020094

GSGROUP object not found

0x80020095

GSGROUP object mismatch

0x80020096

GSGROUP Flow-sampling has more e-ports

0x80020097

GSGROUP Ports are not in same chassis

0x80020098

GSGROUP Netflow object mismatch

0x80020099

GSGROUP Netflow object not found

0x8002009a

GSGROUP Netflow feature not support on V9

0x80020100

GigaStream config exists

0x80020101

GigaStream config in use

0x80020102

GigaStream config object mismatch

0x80020103

GigaStream not on same resource or entity

0x80020104

GigaStream resource exceeds range

0x80020180

Invalid rule

0x80020181

MAP object mismatch

0x80020182

MAP Max num or RULES exceeds

0x80020183

MAP: Passall with map objects not allowed

0x80020184

MAP rules with collector not allowed

0x80020185

MAP invalid gsrules

0x80020186

MAP config exists

0x80020187

MAP config invalid

0x80020188

MAP: VPORT object mismatch

0x80020189

MAP: VPORT config exists

0x8002018a

MAP inline port-list invalid

0x8002018b

MAP inline port config exists

0x8002018c

MAP inline source in port-list

0x8002018d

MAP: gsop in inline not allowed

0x8002018e

MAP:app in inline not allowed

0x8002018f

MAP: VPORT in inline not allowed

0x80020190

MAP: inline destination conflict

0x80020191

MAP: inline source conflict

0x80020192

MAP invalid gsrules

0x80020193

GSOP apps require reboot to take effect

0x80020194

GSOP Duplicate SSL configuration

0x80020195

GS: Tunnel Exporter Config exits

0x80020196

GS: Exporter Alias not found

0x80030000

initialization failure

0x80030001

invalid argument

0x80030002

uninitialized param

0x80030003

Unsupported Product Code

0x80030004

incomplete port string

0x80030005

port not found

0x80030006

Unknown error

0x80050000

initialization failure

0x80050001

invalid argument

0x80050002

uninitialized param

0x80050003

Unsupported Product Code

0x80050004

Unknown error

0x80070000

initialization failure

0x80070001

invalid argument

0x80070002

uninitialized param

0x80070003

Unsupported Product Code

0x80070004

Unknown error

0x80090000

initialization failure

0x80090001

invalid argument

0x80090002

uninitialized param

0x80090003

Unsupported Product Code

0x80090004

Unknown error

0x800a0000

initialization failure

0x800a0001

invalid argument

0x800a0002

uninitialized param

0x800a0003

invalid param

0x800a0004

User provided buffer is NULL

0x800a0005

Stats Buffer Overflow(less that require buffer size)

0x800a0006

Port number out of Range

0x800a0007

Out of Range (Parameter)

0x800a0008

Unknown Stat type

0x800a0009

Provided History count does not match Stat type

0x800a000a

Stat Query: for Device failed

0x800a000b

Stat Query: send request timed out

0x800a000c

Stat Query: recv request timed out

0x800a000d

Stat Query: remote node query failed

0x800a000e

Stat Query: remote node returned nothing

0x800b0000

initialization failure

0x800b0001

invalid argument

0x800b0002

uninitialized param

0x800b0003

Unsupported Product Code

0x800b0004

Unknown error

0x800c0000

initialization failure

0x800c0001

invalid argument

0x800c0002

uninitialized param

0x800c0003

invalid param

0x800c0004

incomplete port string

0x800c0005

invalid port type

0x800c0006

mod_id is out of range

0x800c0007

mod_id un-assigned

0x800c0008

box-id out of range

0x800c0009

slot-id out of range

0x800c000a

card-index out of range

0x800c000b

port not found

0x800c000c

Unknown error

0x800d0000

command terminated - not shown to the user.

0x800d0001

Unknown error

0x800e0000

ugw invalid request

0x800e0001

ugw session not authentication

0x800e0002

ugw access denied

0x800e0003

ugw entity no found

0x800e0004

ugw entity already exists

0x800e0005

ugw invalid cookie

0x800e0006

mgmtd internal error

0x800e0007

ugw not implemented

0x800e0008

Unknown error


Table 5: REST API Errors

Error Code

Description

0x800f0000

general: The requested URL was not found on this server

0x800f0001

general: Login failure

0x800f0002

general: Session ID not valid. No need to logout.

0x800f0003

general: Failed to connect to the unified gateway.

0x800f0004

general: The Content-Type is application/json but the request body is not valid JSON.

0x800f0005

general: Only application/json Content-Type is supported for this operation.

0x800f0006

general: JSON schema validation failed on request body

0x800f0007

general: No request body present. This operation requires a JSON request body.

0x800f0008

general: The request body is not valid JSON object. This operation requires a JSON object request body.

0x800f0009

general: Not implemented

0x800f000a

general: Unauthorized

0x800f000b

general: Forbidden

0x800f000c

general: Resource not found

0x800f000d

general: Incorrect alias

0x800f000e

general: Invalid alias

0x800f000f

general: Resource exists

0x800f0010

general: Invalid action

0x800f0011

general: Missing required param

0x800f0012

general: The page query parameter must be in the form '(pageNum:pageSize)'.

0x800f0013

general: Invalid sort query

0x800f0014

general: Writing to a readonly property

0x800f0015

general: Cli error

0x800f0016

apps/netflow/exporter/filter: Bid/sid of valueMax must equal bid/sid of value

0x800f0017

apps/netflow/exporter/filter: Input port error

0x800f0018

apps/netflow/exporter/filter: Ipv6 requires a value for one of 'netMask' or 'valueMax'.

0x800f0019

system/snmp: Incorrect notif target address

0x800f001a

system/snmp: Incorrect username

0x800f001b

system/config/text: Username and password is required

0x800f001c

portConfig/portConfigs: Invalid port threshold

0x800f001d

portConfig/portConfigs: Invalid tool port

0x800f001e

mapChains: Incorrect map chain id

0x800f001f

inventory/chassis: Incorrect slotid

0x800f0020

inventory/chassis: Invalid slotid

0x800f0021

apps/netflow/records: Record invalid

0x800f0022

portConfig/portGroups: If portWeights is included, the list size must match the size of the 'ports' list.

0x800f0023

apps/ssl/keystore: Keystore password is already set

0x800f0024

apps/ssl/keystore: Keystore password is not set

0x800f0025

apps/ssl/keyMaps: Alias in the SslDecryptionKeyMapConfigSpec body must reference one of the existing GsGroups

0x800f0026

gsGroups: Invalid keymap

0x800f0027

general: 'time' must be in ISO-8601 date format 'yyyy-MM-dd'T'HH:mm:ssZ'

0x800f0028

maps: Invalid srcport

0x800f0029

maps: Invalid dstport

0x800f002a

maps: Incorrect ruleid

0x800f002b

maps: Only one of rules, gsRules, flowRules may be set.

0x800f002c

maps: Invalid ipv4

0x800f002d

maps: Invalid ipv6

0x800f002e

maps: Invalid cidrmask

0x800f002f

maps: Invalid mac

0x800f0030

maps: RuleMatching is only valid for regular/byRule map types

0x800f0031

maps: Asymmetric inlineTrafficType is only applicable for inline/passAll maps

0x800f0032

maps: InlineTrafficPath is only applicable for inline maps

0x800f0033

maps: TrafficType is only applicable to firstLevel map types

0x800f0034

maps/rules: Included rule elementes are mutually exclusive to each other

0x800f0035

maps/rules: 'valueMax' must be greater than 'value'

0x800f0036

maps/rules: Rule element is only allowed for gsRule.

0x800f0037

maps/rules: 'subset' is only valid when 'valueMax' is present.

0x800f0038

maps/rules: Value for pos is repeated

0x800f0039

gsops: TunnelDecap of type gmip requires value for gmipPort

0x800f003a

inline/networks: Invalid delete

0x800f003b

inline/serialToolGroups: Invalid inline tool

0x800f003c

inline/networkGroups: Invalid inline network

0x800f003d

gsops: FabricPath requires both fpSrcSwitchId and fpDstSwitchId

0x800f003e

gsops: Invalid gsapp

0x800f003f

gsops: Fm6000Ts requires timestampFormat

0x800f0040

system/aaa/auth: UnlockTime must be greater than or equal to lockTime

0x800f0041

apps/netflow/monitor: Invalid sampling space

0x800f0042

apps/saApfProfiles: Session field pos unhandled

0x800f0043

apps/saApfProfiles: Session field type unhandled

0x800f0044

apps/saApfProfiles: IPv4, and IPv6 field cannot be mixed in a session field

0x800f0045

inline/hbPackets: Size

0x800f0046

portConfig/portConfigs: Invalid ingress port vlan tag: 1

0x800f0047

portConfig/gigastreams: HC2 allows advanced-hash configuration for slot 'cc1' only. And it is shared across line-card modules.

0x800f0048

gsops: LbType 'gtpKeyHash' is only applicable when 'appType' is 'gtp'

0x800f0049

system/localUsers: Rsvd username

0x800f004a

apps/gtp/whitelists: System is busy processing GTP whitelist. Try again later.

0x800f004b

apps/gtp/whitelists: Exceed entry limit

0x800f004c

apps/gtp/whitelists: Exceed per file limit

0x800f004d

apps/gtp/whitelists: Cannot import file with invalid GTP whitelist entries or incorrect format

0x800f004e

apps/gtp/whitelists: Destroy in use

0x800f004f

apps/gtp/whitelists: The value for 'usage' must be one of 'create', 'delete'

0x800f0050

system/aaa/roles: A builtin role cannot be deleted or created.

0x800f0051

system/snmp: Invalid ipv4 ipv6

0x800f0052

apps/saApfProfiles: Invalid value for 'bufferSize': 1

0x800f0053

system/config: Directory not found

0x800f0054

system/snmp/notifTargets: V3User is required when version is 'v3'

0x800f0055

system/snmp: Only one communityString allowed when enableMultiCommunity is False

0x800f0056

gsops: Invalid offset

0x800f0057

gsops: Invalid combo

0x800f0058

gsops: FlowFilter, flowSample gtp, or gtpWhitelist must be configured for loadBalance stateful appType 'gtp'

0x800f0059

gsops: One and only one of stateful or stateless must be configured for loadBalance

0x800f005a

gsops: GsApp 'saApf' requires 'apf' to be enabled

0x800f005b

gsops: GsApp 'headerRemove' protocol 'isl' is not compatible with 'dedup' or 'tunnelDecap'

0x800f005c

system/license: Install error

0x800f005d

stats/port: Stat error

0x800f005e

apps/saApfProfiles: Redefine fail

0x800f005f

apps/netflow/exporters: Exporter in use

0x800f0060

inventory/chassis: Card mode fail

0x800f0061

gsGroups: Invalid watchdog timer

0x800f0062

general: Missing argument

0x800f0063

general: Unexpected exception

0x800f0064

general: Exception occurred in write_error(). Check the logs for more information.

0x800f0065

general: Method Not Allowed.

0x800f0066

general: Http error

0x800f0067

gsops: Erspan requires erspanFlowId

0x800f0068

/inline/negativeHbProfiles: Empty custom packet

0x800f0069

/inline/negativeHbProfiles: Invalid base64

0x800f006a

general: Admin account password must be changed via the CLI to a non-default value for security purposes.

0x800f006b

general: Bad filename

0x800f006c

Unknown error


Table 6: General Error Codes

Error Code

Description

0x80100000

No error

0x801036b0

Generic error

0x801036b1

Unexpected null

0x801036b2

Assertion failed

0x801036b3

Nyi

0x801036b4

Not found

0x801036b5

Exists

0x801036b6

Multiple

0x801036b7

Unexpected eof

0x801036b8

Unexpected arg

0x801036b9

Bad path

0x801036ba

Bad file

0x801036bb

No buffer space

0x801036bc

Parse error

0x801036bd

File not found

0x801036be

Io error

0x801036bf

Io blocking error

0x801036c0

Io closed

0x801036c1

Io timeout

0x801036c2

Io bad existence

0x801036c3

Io verify failed

0x801036c4

Io bad family

0x801036c5

Unexpected case

0x801036c6

Bad type

0x801036c7

Bad utf8 seq

0x801036c8

Divide by zero

0x801036c9

No fs space

0x801036ca

Decryption failure

0x801036cb

Read only

0x801036cc

Java exception

0x801036cd

Limit exceeded

0x801036ce

Too many fds

0x801036cf

Not initialized

0x801036d0

Lock busy

0x801036d1

Lock not locked

0x801036d2

Lock bad owner

0x801036d3

Range

0x801036d4

Invalid param

0x801036d5

Skip value

0x8010370a

Has children

0x8010370b

Not an ancestor

0x8010370c

No path

0x80103714

Foreach delete

0x80103715

Foreach remove

0x80103716

Foreach halt err

0x80103717

Foreach halt ok

0x8010371e

Reset timeout

0x8010371f

Event delete

0x80103723

Not cli shell

0x80103724

Cli cmd too long

0x80103728

Cancelled

0x80103729

Cancelled error

0x8010372d

Wrong num instances

0x80103779

Transient failure

0x801037dd

Db unrecognized type

0x801037de

Bw not available

0x801037df

Unknown error