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.
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 |
|
/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.
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.
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.
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 |
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 |
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 |