Skip to content

ANC configuration

Alan Lei edited this page Aug 15, 2017 · 21 revisions

Service: com.cisco.ise.config.anc

This is Adaptive Network Control configuration service

Service properties

Name Description Example
restBaseUrl https://ise-host1:8910/pxgrid/ise/config/anc
wsPubsubService com.cisco.ise.pubsub
policyTopic /topic/com.cisco.ise.config.anc.policy
endpointTopic /topic/com.cisco.ise.config.anc.endpoint
statusTopic /topic/com.cisco.ise.config.anc.status

Policy REST APIs

These are the set of APIs to manipulate ANC policies, which can be then applied to endpoints.

POST [restBaseUrl]/getPolicies

This is used to get policies.

An empty json structure must be sent as the request. If no policy is found, policies will have an empty array.

Request
{
}
Reponse
{
  "policies": [
    array of policy object      
  ]
}

POST [restBaseUrl]/getPolicyByName

If policy does not exist, HTTP status "204 No content" will be returned with empty body

Request
{
  "name": string (required)
}
Reponse
{
  policy object
}

POST [restBaseUrl]/createPolicy

This is no response body for this query. If policy is created, HTTP status "200" will be returned. If name is already used in an existing policy, HTTP status "409 Conflict" will be returned.

Request
{
  policy object
}
Reponse
(empty)

POST [restBaseUrl]/updatePolicy

This is no response body for this query. If policy is updated, HTTP status "200" will be returned. If policy does not exist, HTTP status "204 No content" will be returned.

Request
{
  policy object
}
Reponse
(empty)

POST [restBaseUrl]/deletePolicyByName

This is no response body for this query. If policy is deleted, HTTP status "200" will be returned. If policy does not exist, HTTP status "204 No content" will be returned.

Request
{
  "name": string (required)
}
Reponse
(empty)

Endpoint REST APIs

The Endpoint REST APIs provides the ability to assign policies to endpoints. The terms "apply/clear" are used. They do more than just "create/delete". They look up endpoints and trigger Radius Disconnect if active. Since Radius Disconnect involves remote calls and retries, the activity may take a while. Thus, "apply/clear" endpoint calls are asynchronous. When triggered, they return a status object with operation ID and status. One can either subscribe to statusTopic for updates of operation status. Or periodically query the operation with getOperationStatus.

Operation will always finish and set status to success or failure. If it takes too long, it will timeout and set status to failure. getOperationStatus can query operations for up to an hour. Older operation status are purged from the system.

POST [restBaseUrl]/getEndpoints

This is used to get endpoints with policies applied

An empty json structure must be sent as the request. If no endpoint policy is found, endpointPolicies will have an empty array.

Request
{
}
Reponse
{
  "endpoints": [
    array of endpoint object      
  ]
}

POST [restBaseUrl]/getEndpointByPolicyName

If endpoint does not exist, HTTP status "204 No content" will be returned.

Request
{
  "policyName": string (required)
}
Reponse
{
  endpoint object
}

POST [restBaseUrl]/applyEndpointPolicyByIpAddress

Request
{
  "policyName": string (required),
  "ipAddress": string (required)
}
Reponse
{
  status object
}

POST [restBaseUrl]/applyEndpointPolicyByMacAddress

Request
{
  "policyName": string (required),
  "macAddress": string (required)
}
Reponse
{
  status object
}

POST [restBaseUrl]/clearEndpointPolicyByIpAddress

Request
{
  "policyName": string (required),
  "ipAddress": string (required)
}
Reponse
{
  status object
}

POST [restBaseUrl]/clearEndpointPolicyByMacAddress

Request
{
  "policyName": string (required),
  "macAddress": string (required)
}
Reponse
{
  status object
}

POST [restBaseUrl]/getOperationStatus

If operation does not exist, HTTP status "204 No content" will be returned.

Request
{
  "operationId": string (required)
}
Reponse
{
  status object
}

WS STOMP messaging

policyTopic

{
  policy object
}

endpointTopic

{
  endpoint object
}

statusTopic

{
  status object
}

Objects

"operation" type

"operation" type one of the following strings:

  • CREATE
  • UPDATE
  • DELETE

"policy" object

Name Type Description
name string
actions array of action type

"endpoint" object

Name Type Description
policyName string
macAddress string

"action" type

"action" type can be on of the following strings:

  • QUARANTINE
  • SHUT_DOWN
  • PORT_BOUNCE

"status" object

Name Type Description
operationId string
status string RUNNING, SUCCESS or FAILURE
failureReason string The reason if it fails
Clone this wiki locally