apic em apis: a deep dive

74
We’re ready. Are you? February 15 - 19, 2016 • Berlin, Germany

Upload: cisco-devnet

Post on 16-Apr-2017

475 views

Category:

Technology


1 download

TRANSCRIPT

We’re ready. Are you?

February 15 - 19, 2016 • Berlin, Germany

APIC-EM API Deep Dive DevNet-1093

Adam Radford Distinguished Systems Engineer

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

•  Introduction •  Tools

•  Authentication/Getting Started

•  Inventory/Topology

•  PnP

•  IWAN

•  Policy – QoS – Dynamic QoS

Agenda

3

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

6 C97-730626-02 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

`

APIC-EM - Platform Architecture

Network PnP Network Inventory Path Trace IWAN

Advanced Topology Visualizer

APIC-EM Applications

APIC-EM Controller Northbound REST APIs

APIC-EM Services

Grapevine

Inventory Manager RBAC Policy Analysis Policy

Programmer

Network PnP Data Access Service

Topology Services

IWAN Services

Elastic Service Infrastructure

APIC-EM Applications

APIC-EM Services

Addresses Scale Out

and HA Requirements

7 C97-730626-02 © 2015 Cisco and/or its affiliates. All rights reserved. Cisco Confidential

sandboxapic.cisco.com:9443

admin/C1sc0123

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Tools

8

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Swagger

9

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Try it out..

10

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Postman (now with JetPacks free)

11

Noun

verb

Body - JSON (with variables)

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Github Collection

12

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Authentication/Getting Started

13

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Roles Based Access Control

14

Three Roles Today Scope is for future use

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Getting a Ticket

15

https://adam-iwan:443/api/v1/ticket POST (need Content-Type header) {

"username":"admin", "password":"secrete"

}

{ "response": { "serviceTicket": "ST-2-e7PF7jy6GJ43JEhmCbKi-cas" }, "version": "0.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Getting/Using the authentication ticket

16

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Inventory/Topology

17

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Relationships

18

/discovery /network-device /location

/interface

/host

/link

/tag

/flow-analysis

/topology

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Network-device https://sandboxapic.cisco.com:9443/api/v1/network-device GET

{ "family": "Switches and Hubs","location": "e53d2525-6071-439b-b16d-17f92205a52b","type": "Cisco Catalyst 3850-48U-E Switch","serialNumber": "FOC1703V36B","role": "ACCESS","macAddress": "f0:29:29:5c:30:e2","softwareVersion": "03.03.00.SE","upTime": "12 days, 0:18:10.78","hostname": "CAMPUS-Access1","tagCount": "3","lastUpdated": "2015-10-28 21:44:50.936","locationName": "San Jose, CA","roleSource": "MANUAL","collectionStatus": "Managed","interfaceCount": "62","lineCardCount": "18","series": "Cisco Catalyst 3850 Series Ethernet Stackable Switch","apManagerInterfaceIp": "","bootDateTime": "2015-10-16 21:23:36.065","instanceUuid": "93a73198-850b-4002-bbf3-a224befae61d","id": "93a73198-850b-4002-bbf3-a224befae61d

"lineCardId": "6124970f-f0e8-42b9-9a3c-b3180b314729, 4066a0e5-c8ef-47dd-8db9-5bc8c11e3aab, 64e78af1-c910-4e79-8320-ffd6f97c3192, 1ed983ae-956c-45c8-ab0b-a0fa92e2b129, aeb9c8ae-573c-4d53-9f3e-6333071a9a39, b50fffb8-4841-4e02-948e-85fa0c0c1a60, 1e14c576-07f3-4bb6-a1d7-4e65821534ea, dc6d6fd4-8c03-45e0-96d5-dedd199fac9d, 2e543e11-71e0-4b6f-ac1a-be4afdcc4910, d83e1785-7e1c-4143-b075-decfc13caa63, 16635b81-2dba-4eed-9303-9f9fe7353e8b, 5943da96-5aeb-40f3-85b1-ff39ffa64b14, 77d9ca1c-ce5c-4be0-8beb-d8ec3246d6bc, 5b11cd8d-1801-42b5-ab38-521171f70d0e, e763c72c-7633-4b14-9184-87832c4c1c4d, 9ad4a2ed-a518-44a5-aa43-b3f63966dc19, d304ce80-02f6-4916-805c-65a60ba00f3e, abd72d26-f078-479e-a477-decdb259f4c9","managementIpAddress": "212.1.10.1","memorySize": "536870912","platformId": "WS-C3850-48U","reachabilityFailureReason": "Completed","reachabilityStatus": "Reachable","snmpContact": "","snmpLocation": "","tunnelUdpPort": null,

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Host

https://sandboxapic.cisco.com:9443/api/v1/host?limit=100&offset=1GET

{"id": "8c989306-818e-488f-9974-1476be6ca7b5","hostIp": "212.1.10.20","hostMac": "5c:f9:dd:52:07:78","hostType": "wired","connectedNetworkDeviceId": "93a73198-850b-4002-bbf3-a224befae61d","connectedNetworkDeviceIpAddress": "212.1.10.1","connectedInterfaceId": "0c429f3d-776d-40c6-96b1-17f460545764","connectedInterfaceName": "GigabitEthernet1/0/47","vlanId": "200","lastUpdated": "1446068511023","source": "200"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Topology

21

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Topology

https://sandboxapic.cisco.com:9443/api/v1/topology/physical-topology GET

{"deviceType": "wired","label": "212.1.10.20","ip": "212.1.10.20","nodeType": "HOST","family": "WIRED","role": "HOST","customParam":{},"id": "8c989306-818e-488f-9974-1476be6ca7b5"}

{"deviceType": "Cisco Catalyst 3850-48U-E Switch","label": "CAMPUS-Access1","ip": "212.1.10.1","softwareVersion": "03.03.00.SE","nodeType": "device","family": "Switches and Hubs","platformId": "WS-C3850-48U","tags":["Company-ABC", "Campus-Site", "POC-Site"],"role": "ACCESS","roleSource": "MANUAL","customParam":{},"id": "93a73198-850b-4002-bbf3-a224befae61d"}

Nodes[]

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Topology https://sandboxapic.cisco.com:9443/api/v1/topology/physical-topology GET

{"source": "93a73198-850b-4002-bbf3-a224befae61d","startPortID": "0c429f3d-776d-40c6-96b1-17f460545764","target": "8c989306-818e-488f-9974-1476be6ca7b5","linkStatus": "UP"},

/host/8c989306-818e-488f-9974-1476be6ca7b5

network-device/93a73198-850b-4002-bbf3-a224befae61d

interface/0c429f3d-776d-40c6-96b1-17f460545764

links[]

{"source": "93a73198-850b-4002-bbf3-a224befae61d","startPortID": "ea919b9d-cf40-41b9-83bc-42e1ea07806e","startPortName": "GigabitEthernet1/0/1","startPortSpeed": "1000000","target": "b3aa8311-62f5-44a3-b432-fa857324f447","endPortID": "07132e28-404b-4335-8682-28fd294c06cf","endPortName": "GigabitEthernet5/5","endPortSpeed": "1000000","linkStatus": "up","id": "60067"},

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Location

24

See examples in POSTMAN

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Path Trace

25

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Path Trace

26

https://sandboxapic.cisco.com:9443/api/v1/flow-analysis POST{ "sourceIP" : "65.1.1.83", "destIP" : "212.1.10.20"}

{ "response": { "taskId": "c7896f2e-ee65-40c7-8213-a32e314eceb2", "url": "/api/v1/task/c7896f2e-ee65-40c7-8213-a32e314eceb2" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Path Trace – get TASK

27

https://sandboxapic.cisco.com:9443/api/v1/task/c7896f2e-ee65-40c7-8213-a32e314eceb2 GET

{ "response": { "progress": "9238c613-b5cc-4db5-b7df-bb1c1eca6306", "version": 1454732293035, "startTime": 1454732293035, "endTime": 1454732294870, "serviceType": "Policy Analysis Service", "rootId": "c7896f2e-ee65-40c7-8213-a32e314eceb2", "isError": false, "id": "c7896f2e-ee65-40c7-8213-a32e314eceb2" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Path Trace – get result

28

https://sandboxapic.cisco.com:9443/api/v1/flow-analysis/9238c613-b5cc-4db5-b7df-bb1c1eca6306 GET

{ "response": { "request": { "sourceIP": "65.1.1.83","destIP": "212.1.10.20" }, "lastUpdate": "Sat Feb 06 04:18:14 UTC 2016", "properties": [], "networkElementsInfo": [ { "id": "cf05d21e-29bc-4b9d-8a32-12f7877a8355", "type": "wireless", "ip": "65.1.1.83", "linkInformationSource": "Switched" }, { "id": "0a15fd77-44ba-4858-b3b1-0df37c4328e0", "name": "AP7081.059f.19ca", "type": "Unified AP", "ip": "55.1.1.3", "role": "ACCESS", "linkInformationSource": "Switched", "tunnels": [ "CAPWAP Tunnel" ] },

{ "id": "93a73198-850b-4002-bbf3-a224befae61d", "name": "CAMPUS-Access1", "type": "Switches and Hubs", "ip": "212.1.10.1", "ingressInterface": { "physicalInterface": { "id": "101550de-e72c-4071-81f7-3e2f4f3fbf62", "name": "GigabitEthernet1/0/26" } }, "egressInterface": { "physicalInterface": { "id": "ea919b9d-cf40-41b9-83bc-42e1ea07806e", "name": "GigabitEthernet1/0/1" } }, "role": "ACCESS", "linkInformationSource": "Switched", "tunnels": [ "CAPWAP Tunnel" ] },

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

PnP

29

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

5 apps that use the PNP API today •  APIC-EM GUI

•  IWAN App in APIC-EM

•  Mobile PnP App (android/iphone)

•  Prime Infrastructure (3.x)

•  ESA

30

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Relationships

31

/file/image

/pnp-project

/file/config

/pnp-project/{project-id}/device

/pnp-device

Pre-provisioned Ad-Hoc Post-provisioned

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

PnP

32

/file/config /file/image

1

/pnp-project 2

/pnp-project/{project-id}/device 3

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

File upload

33

No Content-type : application/json

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Get List of Config files

34

https://sandboxapic.cisco.com:9443/api/v1/file/namespace/config GET

{ "response": [ { "nameSpace": "config", "name": "README.md", "downloadPath": "/file/a95f7952-7eee-40cc-8664-d1abfa560611", "fileSize": "2174", "fileFormat": "text/x-markdown", "md5Checksum": "ae20d2b1ca4302e2bd7d9d3b2bfca907", "sha1Checksum": "888b09e200c9e25e13e563df10e7a101a959e648", "id": "a95f7952-7eee-40cc-8664-d1abfa560611" } ], "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Create a Project

35

https://sandboxapic.cisco.com:9443/api/v1/pnp-project POST

[{"siteName": "Sydney"}]

{ "response": { "taskId": "49f44442-9808-4341-98b7-be65c8b7197d", "url": "/api/v1/task/49f44442-9808-4341-98b7-be65c8b7197d" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Look at the Task

36

https://sandboxapic.cisco.com:9443/api/v1/task/49f44442-9808-4341-98b7-be65c8b7197d GET

{"response": { "progress": "{\"message\":\"Success creating new site\",\"siteId\":\"91bf82f8-99b3-4908-9145-19a435ee86e8\"}", "version": 1454811170949, "startTime": 1454811170949, "endTime": 1454811170969, "serviceType": "Ztd Service", "rootId": "49f44442-9808-4341-98b7-be65c8b7197d", "isError": false, "id": "49f44442-9808-4341-98b7-be65c8b7197d" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

GET list of projects

37

https://sandboxapic.cisco.com:9443/api/v1/pnp-project GET

{ "response": [ { "state": "PRE_PROVISIONED", "siteName": "Sydney", "deviceCount": 0, "pendingDeviceCount": 0, "provisionedBy": "admin", "provisionedOn": "2016-02-07 02:12:50.949", "id": "91bf82f8-99b3-4908-9145-19a435ee86e8" } ], "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Create a project rule

38

https://sandboxapic.cisco.com:9443/api/v1/pnp-project/91bf82f8-99b3-4908-9145-19a435ee86e8/device POST

[{ "serialNumber": "12345678901", "platformId": "C2960X", "hostName": "syd-sw1", "pkiEnabled": true}]

{ "response": { "taskId": "81689911-1eb4-4bf9-a98a-cb0e23be49d1", "url": "/api/v1/task/81689911-1eb4-4bf9-a98a-cb0e23be49d1" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Mobile App – create a rule with no serial number

39

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Look at the Task

40

https://sandboxapic.cisco.com:9443/api/v1/task/81689911-1eb4-4bf9-a98a-cb0e23be49d1 GET

{ "response": {"progress": "{\"message\":\"Success creating new site device(rule)\",\"ruleId\":\"a0ec4fe5-ba3b-49ef-8ff4-ac5b41f7c0cd\"}", "version": 1454811570096, "startTime": 1454811570096, "endTime": 1454811570163, "serviceType": "Ztd Service", "rootId": "81689911-1eb4-4bf9-a98a-cb0e23be49d1", "isError": false, "id": "81689911-1eb4-4bf9-a98a-cb0e23be49d1" }, "version": "1.0"

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

GET list of project rules

41

https://sandboxapic.cisco.com:9443/api/v1/pnp-project/91bf82f8-99b3-4908-9145-19a435ee86e8/device GET

{"response": [{ "hostName": "syd-sw1", "platformId": "C2960X", "serialNumber": "12345678901", "site": "Sydney", "pkiEnabled": true, "sudiRequired": false, "apCount": "0", "isMobilityController": "false", "state": "PENDING", "stateDisplay": "Pending",

<contined next page>

<continuation>

"authStatus": { "type": "Unknown", "status": "None", "errorMessage": null, "timestamp": 1454811700178, "certInfo": null }, "attributeInfo": {}, "id": "a0ec4fe5-ba3b-49ef-8ff4-ac5b41f7c0cd" }],"version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

DELETE project (and rules)

42

https://sandboxapic.cisco.com:9443/api/v1/pnp-project/91bf82f8-99b3-4908-9145-19a435ee86e8deleteRule=1&deleteDevice=1 DELETE

{ "response": { "taskId": "cd9d7e8a-78a8-4512-a905-14671a23d535", "url": "/api/v1/task/cd9d7e8a-78a8-4512-a905-14671a23d535" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Look at the Task

43

https://sandboxapic.cisco.com:9443/api/v1/task/cd9d7e8a-78a8-4512-a905-14671a23d535 GET

{ "response": { "progress": "Success Deleting ZTD Site: id# 91bf82f8-99b3-4908-9145-19a435ee86e8", "version": 1454812176855, "startTime": 1454812176855, "endTime": 1454812176907, "serviceType": "Ztd Service", "rootId": "cd9d7e8a-78a8-4512-a905-14671a23d535", "isError": false, "id": "cd9d7e8a-78a8-4512-a905-14671a23d535" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Unclaimed devices

44

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

GET unclaimed devices

45

https://adam-iwan/api/v1/pnp-device?state=UNCLAIMED&matchDeviceState=true GET

[{"platformId": "WS-C3650-48PQ", "hostName": "Switch", "bootVariable": "flash:packages.conf", "id": "02b0adcf-dd6b-4945-a703-44b5b0bc187e", "configReg": "0x102", "pnpProfileUsedAddr": "10.10.10.140", "state": "UNCLAIMED", "pnpProfileAutoCreated": true, "unclaimedHint": "new-device","deviceDetailsLastUpdate": "2016-02-07 04:11:24","lastStateTransitionTime": "2016-02-07 04:11:25", "firstContact": "2016-02-07 04:06:05.000906", "versionCompatible": "supported", "attributeInfo": {}, "topologyInfo": "neighborLink: Local Interface=null Local MacAddress=6c41.6a0d.e781 Remote Interface=null Remote MacAddress=7c95.f3bd.2a05 Remote DeviceName=null Remote Platform=null;\n", "imageFile": "flash:packages.conf", "versionString": "15.2(2)E3", "apCount": "0",

<continuation> "pkiEnabled": true, "stateDisplay": "Unclaimed", "returnToRomReason": "reload", "serialNumber": "FDO1732Q00B", "sudiRequired": false, "filesystemInfo": "fileSystem: name=crashinfo type=disk size=248354816 freespace=248353792;\n", "certificateNeededState": "NULL_STATE", "mainMemSize": "0", "authStatus": { "status": "Unsupported", "timestamp": 1454818039783, "errorMessage": null, "type": "Unsupported", "certInfo": null }, "lastContact": "2016-02-07 04:11:25.000051", "ipAddress": "10.10.14.4", "isMobilityController": "false" },

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Claim a device -- PUT

46

https://sandboxapic.cisco.com:9443/api/v1/pnp-device PUT

[{"state" : "START_PROVISIONING","id" : "02b0adcf-dd6b-4945-a703-44b5b0bc187e","pkiEnabled" : true,"configId" : "ac828621-dd47-4201-856d-be605413f33b"

}]

{ "response": {

"taskId": "d8502137-5d2b-4e81-a0e6-e0e71a07abc9", "url": "/api/v1/task/d8502137-5d2b-4e81-a0e6-e0e71a07abc9"

}, "version": "1.0" }

Even though "pkiEnable is true by default, need to set this is want device certificate to be provisioned

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Look at the Task

47

https://adam-iwan/api/v1/task/d8502137-5d2b-4e81-a0e6-e0e71a07abc9 GET

{ "response": { "progress": "Success Updating Device: id# 02b0adcf-dd6b-4945-a703-44b5b0bc187e", "startTime": 1454819475470, "endTime": 1454819475594, "version": 1454819475470, "serviceType": "Ztd Service", "rootId": "d8502137-5d2b-4e81-a0e6-e0e71a07abc9", "isError": false, "id": "d8502137-5d2b-4e81-a0e6-e0e71a07abc9" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

State changes

48

./watch_provision.py FDO1732Q00BWatching unclaimed for serial:FDO1732Q00B19:49:35: Duration (0) Unclaimed19:49:43: Duration (9) Waiting for Resource19:50:02: Duration (28) Start Provisioning19:51:08: Duration (94) Deploying Device Certificate19:52:09: Duration (155) Deploying Config19:54:09: Duration (275) Provisioned19:54:09: Completed (275): PROVISIONED

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

GET provisioned device

49

https://adam-iwan/api/v1/pnp-device?serialNumber=FDO1732Q00B GET

[{"platformId": "WS-C3650-48PQ", "hostName": "3650-dhcp", "bootVariable": "flash:packages.conf", "id": "02b0adcf-dd6b-4945-a703-44b5b0bc187e", "configId": "ac828621-dd47-4201-856d-be605413f33b", "configReg": "0x102", "pnpProfileUsedAddr": "10.10.10.140", "unclaimedHint": "new-device", "pnpProfileAutoCreated": true, "state": "PROVISIONED", "provisioningType": "new-device-adhoc", "deviceDetailsLastUpdate": "2016-02-07 04:31:39", "lastStateTransitionTime": "2016-02-07 04:34:46", "firstContact": "2016-02-07 04:06:05.000906", "versionCompatible": "supported", "attributeInfo": {}, "topologyInfo": "neighborLink: Local Interface=null Local MacAddress=6c41.6a0d.e781 Remote Interface=null Remote MacAddress=7c95.f3bd.2a05 Remote DeviceName=null Remote Platform=null;\n",

<continuation>"imageFile": "flash:packages.conf","versionString": "15.2(2)E3","apCount": "0","pkiEnabled": false,"stateDisplay": "Provisioned","returnToRomReason": "reload","serialNumber": "FDO1732Q00B","sudiRequired": false,"filesystemInfo": "fileSystem: name=crashinfo type=disk size=248354816 freespace=248353792;\n","certificateNeededState": "NULL_STATE","mainMemSize": "0","authStatus": {"status": "Unsupported", "timestamp": 1454818039783, "errorMessage": null, "type": "Unsupported", "certInfo": null}, "isMobilityController": "false", "ipAddress": "10.10.14.4", "lastContact": "2016-02-07 04:34:46.000425" }

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

UI

50

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Iwan

51

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Relationships

52

/relevance

/category

/application /policy QoS Path Selection

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Policy Construct - IWAN

/relevance /category

/application /policy

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

GET Policy

54

https://adam-iwan/api/v1/policy/323476c2-07d7-4065-9d01-151dfd01822f GET

{"policyName": "email", "instanceUuid": "323476c2-07d7-4065-9d01-151dfd01822f", "resource": { "categories": [ { "id": "07675131-e383-4e80-97a2-9ec503b9f6a4", "name": "email" }] }, "actions": [ "SET_PROPERTY"], "state": "Active", "taskId": "f861eb13-26ad-4911-90f1-76112a58a6df", "scope": "GLOBAL", "actionProperty": { "pathControlFlag": true, "PrimaryPathPref": [ "mpls"], "SecondaryPathPref": [ "interne"], "pathPreferenceFlag": true, "relevanceLevel": "Business-Critical" }, "id": "323476c2-07d7-4065-9d01-151dfd01822f"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

PUT Policy

55

https://adam-iwan/api/v1/policy/ PUT[{"policyName": "email", "instanceUuid": "323476c2-07d7-4065-9d01-151dfd01822f", "resource": { "categories": [ { "id": "07675131-e383-4e80-97a2-9ec503b9f6a4", "name": "email" }] }, "actions": [ "SET_PROPERTY"], "state": "Active", "taskId": "f861eb13-26ad-4911-90f1-76112a58a6df", "scope": "GLOBAL", "actionProperty": { "pathControlFlag": true, "PrimaryPathPref": [ "mpls"], "SecondaryPathPref": [ "interne"], "pathPreferenceFlag": true, "relevanceLevel": "Default" }, "id": "323476c2-07d7-4065-9d01-151dfd01822f"}]

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Get Task

56

https://adam-iwan/api/v1/task/b58dae3a-2702-4160-a6ef-5517c54af36c GET

{ "rootId": "b58dae3a-2702-4160-a6ef-5517c54af36c", "serviceType": "Policy Service", "id": "b58dae3a-2702-4160-a6ef-5517c54af36c", "operationIdList": [ "b3e9423c-ffa5-4869-a0db-6321310848d5" ], "version": 1454836724342, "startTime": 1454836724341, "endTime": 1454836732262, "isError": false}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

UI

57

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Get Policy count

58

https://adam-iwan/api/v1/policy/count GET

{ "response": 23, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Categories

59

https://adam-iwan/api/v1/category GET

[{ "id": "03326c93-6169-46c6-8b8b-5da0a6689e83", "name": "voice-and-video" }, { "id": "07675131-e383-4e80-97a2-9ec503b9f6a4", "name": "email" }, { "id": "11d04044-74c6-4e9c-9f6a-fffa8c8bcf78", "name": "business-and-productivity-tools" }, { "id": "170f7fba-a098-4b6f-8f63-83cfb7135be6", "name": "inter-process-rpc" }, { "id": "267f0bda-e545-4bc8-825f-13df9b1ded26", "name": "backup-and-storage" }, { "id": "3c5478e6-46cc-4417-a2e4-61b9109504a6", "name": "software-updates" }, <continued>

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Applications in Category

60

https://adam-iwan/api/v1/application?categoryId=07675131-e383-4e80-97a2-9ec503b9f6a4 GET

[{ "pfrThresholdOneWayDelay": 100, "tcpPorts": "143,220", "encrypted": "false", "references": "http://tools.ietf.org/html/rfc3501", "udpPorts": "143,220", "pfrThresholdJitter": 1, "applicationGroup": "imap-group", "pfrThresholdJitterPriority": 3, "category": "email", "instanceUuid": "1ba5312a-892e-4d59-b0c3-f403342766d6", "subCategory": "enterprise-transactional-apps", "pfrThresholdLossRate": 5, "helpString": "Internet Mail Access Protocol", "id": "1ba5312a-892e-4d59-b0c3-f403342766d6", "pfrThresholdLossRatePriority": 2, "indicativeUdpPorts": "143,220", "categoryId": "07675131-e383-4e80-97a2-9ec503b9f6a4", "nbarId": "17", "p2pTechnology": "false", "appProtocol": "tcp/udp", <continued>

"longDescription": "Internet Message Access protocol (IMAP) allows users to acess their email servers and to receive and send emails. The protocol simulates a local use when in fact it is a connection to a server. An IMAP server usually listens on port 143.", "pfrThresholdOneWayDelayPriority": 1, "name": "imap", "globalId": "L4:143", "tunnel": "false", "popularity": 9, "enabled": "true", "trafficClass": "BULK_DATA", "indicativeTcpPorts": "143,220", "selectorId": "143", "engineId": "3" },

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

EasyQoS/Dynamic QoS

61

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Relationships

62

/relevance

/application

/policy QoS

/policy/tag

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS

63

/policy/tag

/relevance

/application

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS -tags

64

https://ga-1/api/v1/policy/tag GET

{ "response": { "policyTags": [ "New-York-Branch", "Chicago-Campus", "San-Francisco-Branch" ] }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS –tag Association

65

https://ga-1/api/v1/policy/tag/association GET

{ "response": [ { "policyTag": "New-York-Branch", "networkDeviceIds": [ "69d11938-f1b6-40b5-a81c-12d19ed728b9", "b657086d-63a3-4052-bdbb-33d9638bec8b", "1cba8dd8-877b-466e-8e2d-9db83bd1c451" ] },{ "policyTag": "Chicago-Campus", "networkDeviceIds": [ "601d6cb7-a254-45cd-bb28-3193f7fc7e78", "acb3f02c-3101-478b-abed-0cba2d827c75", "0a4de2ea-23e4-4c01-a7b8-394b156c69e6", "fcd91e8e-c7ab-4e4e-87e1-aa87fa8b8756", "fbadfdb7-53b3-48c7-80fd-b06d8aac808d", "bea293d2-2b48-448a-9c2d-92074309151e", "13062fd6-4eb4-44be-b646-684015440b66", "2ac6c4f7-8975-4830-a03b-9dfe7448054a" ] }, <CONTINUED>

{ "policyTag": "San-Francisco-Branch", "networkDeviceIds": [ "f2a2c29c-ed9d-48ef-aab7-fa81c3035126", "219b0443-08e6-4bd6-a15c-74d9ea965ba2" ] } ], "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS - Relvance

66

https://ga-1/api/v1/relvance GET

{ "response": [ "Default", "Business-Irrelevant", "Business-Relevant" ], "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS – Specific Policy

67

https://ga-1/api/v1/policy/e0bd599a-2bfb-48b0-862e-dc11549c9dd8 GET

{ "policyName": "Enterprise-SanFran-QOS", "policyPriority": 4095, "policyScope": "San-Francisco-Branch", "resource": { "applications": [ { "id": "6fcf0f08-ad86-44bb-bffd-3eb946d5c749", "appName": "groove" },{ "id": "7172a1d9-b1eb-4629-9e3c-47ab5570882e", "appName": "streamwork" },{ "id": "6f509514-73a5-4486-a59e-499e4b5fc141", "appName": "secure-http" },{ "id": "77bfc7f7-da7d-40dd-a0d2-328a03905acb", "appName": "ripng" },{ "id": "708743aa-5033-4497-b1d5-a7d68eab157d", "appName": "xdmcp" } ]},

"actions": [ "SET_PROPERTY" ], "state": "Active", "taskId": "302da30f-11b7-438b-be58-00f51c703d9f", "instanceUuid": "e0bd599a-2bfb-48b0-862e-dc11549c9dd8", "actionProperty": { "pathControlFlag": false, "pathPreferenceFlag": false, "relevanceLevel": "Business-Relevant" }, "id": "e0bd599a-2bfb-48b0-862e-dc11549c9dd8"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Easy QoS – Specific Policy Task

68

https://ga-1/api/v1/task/302da30f-11b7-438b-be58-00f51c703d9f GET

{ "rootId": "302da30f-11b7-438b-be58-00f51c703d9f", "serviceType": "Policy Service", "version": 1454515356826, "id": "302da30f-11b7-438b-be58-00f51c703d9f", "operationIdList": [ "4e3a182f-e583-441b-bc69-a25b3169d0b3" ], "startTime": 1454515356826, "endTime": 1454515357098, "isError": false}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Current Differences between IWAN and EQ Policy

69

IWAN EasyQoS

Scope Global (until May) Tag based

Relevance Categorization

Per Application Category Per Application

Devices Supported Routers – IWAN deployed

Routers/switches/WLAN

Dynamic Policy NA Yes, Voice, Video

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Dynamic QoS

70

Dynamic QoS Enabled

Dynamic QoS Policies

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Dynamic QoS

71

https://ga-1/api/v1/policy/flow POST{ "sourceIP" : "172.28.97.54", "destIP" : "10.10.10.51", "sourcePort" : "30952", "destPort" : "22754", "protocol" : "tcp", "flowType" : "VOICE", "averageBandwidth": "64", "peakBandwidth": "64", "qosClassName": "conversational.audio.avconf.aq",

"appId": "e40d4836-45aa-39b2-e46b-84018b289e15",

"codec": "g.711u"}

https://ga-1/api/v1/task/5a8b0c01-b944-4ea5-aa66-7f9c44dafc37 GET{ "response": { "progress": "3c24b97b-c417-4a49-adcc-870209b81fcd", "startTime": 1455440014855, "endTime": 1455440014858, "version": 1455440014855, "serviceType": "Policy Service", "isError": false, "operationIdList": [ "4441f491-ab3b-41eb-a382-c9e6ef4ff6f5" ], "rootId": "5a8b0c01-b944-4ea5-aa66-7f9c44dafc37", "id": "5a8b0c01-b944-4ea5-aa66-7f9c44dafc37" }, "version": "1.0"}

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Dynamic Policy

72

https://ga-1/api/v1/policy/flow GET

"response": [ { "id": "3c24b97b-c417-4a49-adcc-870209b81fcd", "sourceIP": "172.28.97.54", "destIP": "10.10.10.51", "sourcePort": "30952", "destPort": "22754", "protocol": "tcp", "flowType": "VOICE", "averageBandwidth": "64", "peakBandwidth": "64", "codec": "g.711u", "status": "CONFIG_ADD_SUCCESS" } ]

© 2016 Cisco and/or its affiliates. All rights reserved. Cisco Public Presentation ID

Delete Dynamic Policy

73

https://ga-1/api/v1/policy/flow/3c24b97b-c417-4a49-adcc-870209b81fcd DELETEhttps://ga-1/api/v1/task/ce0e653c-9bc2-4ab0-9783-ef6505bd1d2f GET

{ "response": { "progress": "3c24b97b-c417-4a49-adcc-870209b81fcd", "startTime": 1455440274442, "endTime": 1455440274446, "version": 1455440274446, "serviceType": "Policy Service", "isError": false, "operationIdList": [ "d38a1716-2b90-4fd1-9032-17ed47dd0661" ], "rootId": "ce0e653c-9bc2-4ab0-9783-ef6505bd1d2f", "id": "ce0e653c-9bc2-4ab0-9783-ef6505bd1d2f" }, "version": "1.0"}

We’re ready. Are you?