49
2016 SDN Transport API Interoperability Demonstration Jonathan Sadler (Coriant) Interop Working Group Chair OIF Technical Committee Open Networking Foundation

SDN Transport API Interoperability Demo with OIF and ONF

Embed Size (px)

Citation preview

Page 1: SDN Transport API Interoperability Demo with OIF and ONF

2016 SDN Transport APIInteroperability Demonstration

Jonathan Sadler (Coriant)Interop Working Group Chair

OIF Technical CommitteeOpenNetworkingFoundation

Page 2: SDN Transport API Interoperability Demo with OIF and ONF

Agenda

MotivationObjectivesOverview of TestsDeep Dive into API messaging• Topology• Connection Setup• Hierarchical Abstraction

Findings and Summary

Page 3: SDN Transport API Interoperability Demo with OIF and ONF

SDN improves Transport Control

Eliminate “One-size-fits-all” solutions• NE-behaviors may not match

carrier requirements• Example

• Combined Reroute and Protection

Programmability enables carrier requirements to be met

400% Capacity use50ms protection all the time

300% Capacity use50ms protection switch first fault~300ms switch second and subsequent

2

Page 4: SDN Transport API Interoperability Demo with OIF and ONF

Open APIs between SDN Components

How can programmability be provided?

3

ControlComponents

Service Management

ConnectionManagement Routing Control

Path Query Topology

Signaling Proto Dataplane ConfigLink Management

Discovery Routing Proto

Directory

Service Requests

Dataplane

http://www.oiforum.com/documents/framework-for-transport-sdn-components-and-apis

Page 5: SDN Transport API Interoperability Demo with OIF and ONF

Evaluate current state of SDN in Transport industry• Validate APIs in SDN Framework

• Useful:• Do the defined API solve a business problem?• Is the API consistent with business structural boundaries?

• Perform well:• Would a different API improve performance?

• Can be implemented

2016 SDN Transport API Interoperability Demonstration

4

Page 6: SDN Transport API Interoperability Demo with OIF and ONF

Joint activity of OIF and ONF• OIF

• API Framework• Prototype API experience – 2014 Interop Test event

• ONF – Standards Organization for SDN• SDN Architecture• Transport API Project

2016 SDN Transport API Interoperability Demonstration

5

Page 7: SDN Transport API Interoperability Demo with OIF and ONF

OIF SDN Framework

6

ControlComponents

Service Management

ConnectionManagement Routing Control

Path Query Topology

Signaling Proto Dataplane ConfigLink Management

Discovery Routing Proto

Directory

Service Requests

Dataplane

http://www.oiforum.com/documents/framework-for-transport-sdn-components-and-apis

Page 8: SDN Transport API Interoperability Demo with OIF and ONF

Participants from both OIF and ONF• OIF: ADVA, China Telecom, Ciena, Coriant, FiberHome, Huawei,

Juniper, NEC, Orange, Telus, Verizon, ZTE• ONF: ADVA, CATR, China Telecom, Ciena, FiberHome, Huawei, Juniper,

NEC, Sedona, SK Telecom, SMOptics, Telefonica, Verizon, ZTE• Interested 3rd Party: China Unicom

• OIF: ADVA, China Telecom, Ciena, Coriant, FiberHome, Huawei,Juniper, NEC, Orange, Telus, Verizon, ZTE

• ONF: ADVA, CATR, China Telecom, Ciena, FiberHome, Huawei, Juniper,NEC, Sedona, SK Telecom, SMOptics, Telefonica, Verizon, ZTE

• Interested 3rd Party: China Unicom

2016 SDN Transport API Interoperability Demonstration

7

Page 9: SDN Transport API Interoperability Demo with OIF and ONF

Timeline

8

Test end

May Jun2016

ONF Workday

Contract/NDA

Jul Aug

BCE

MarSep Oct Nov Dec Jan Feb

ECOC2016

3Q OIF 4Q OIFL123 SDN

Test start Readouts

OECC

2Q16 OIF

ETSI NFVMWC20171Q OIF OFC

2017

ONF Interim

Tech Spec Start

Page 10: SDN Transport API Interoperability Demo with OIF and ONF

2016 SDN Transport APIInteroperability Demonstration

9

Page 11: SDN Transport API Interoperability Demo with OIF and ONF

Intra-lab PairingsCarrier A• Orchestrators: Ca, Ra• Dataplane: Vd, Ve, Vf

Carrier B• Orchestrators: Cb• Dataplane: Ve, Vf

Carrier C• Orchestrators: Cc, Va• Datraplane: Va, Vg

Carrier D• Orchestrators: Vb, Vc• Dataplane: Vh, Vi, Vk, Va, Vg, Vb

Carrier E• Orchestrators: Vb• Dataplane: Vh, Vj, Vb

6 pairings

4 pairings

4 pairings

10 pairings

3 pairings

27 Pairs10

Page 12: SDN Transport API Interoperability Demo with OIF and ONF

Inter-lab PairingsCarrier A – Carrier C• Orchestrators: Ra• Dataplane: Va, Vg

Carrier C – Carrier E• Orchestrators: Ra• Dataplane: Vh

Carrier A – Carrier E• Orchestrators: Vb• Dataplane: Vd, Ve, Vf

Carrier C – Carrier D• Orchestrators: Cc• Dataplane: Vb, Vi

Carrier D – Carrier E• Orchestrators: Vb, Sedona• Dataplane: Vh, Vj, Vb

Carrier C – Carrier E• Orchestrators: Vb• Dataplane: Va, Vg

2 pairings

3 pairings

2 pairings

2 pairings

1 pairing

6 pairings

16 Pairs11

Page 13: SDN Transport API Interoperability Demo with OIF and ONF

Test Case tracking

12

Page 14: SDN Transport API Interoperability Demo with OIF and ONF

Use Case: MultiDomain Orchestration

Service provider equipment is in different domains• Different Geographies• Different Vendors• Different Technologies

Services cross domain boundaries• Orchestration across domains is necessary

13

Page 15: SDN Transport API Interoperability Demo with OIF and ONF

NFV POC

Multi-domain Orchestration isnecessary in NFV deploymentsinvolving the transport layer• Best technology for carrying service• Support multiple provider networks

T-API provides interface requiredby WAN Infrastructure Manager• Integrates Transport into MANO

14

Page 16: SDN Transport API Interoperability Demo with OIF and ONF

INTERFACES IN ACTION

Page 17: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture

HTTP/1.1 201 CreatedServer: Apache-Coyote/1.1Content-Type: application/jsonDate: Tue, 12 Dec 2016 4:41:37 GMTConnection: close

{"itemlist": [

"/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_link/55c7c8b9-3b87-4822-9c9b-3392f0109065/",

"/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_link/e7eb128a-82a5-4fa1-b030-e386ec93c30f/",

"/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_link/76fd27f4-e4f0-42a8-8b1a-909302b426ce/"

]}

NE

NE

NE

GET /restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_link/ HTTP/1.1User-Agent: Faraday v0.9.0Content-Type: application/jsonAccept: application/jsonAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3Connection: closeHost: 10.131.22.2:8081Content-Length: 183

16

Page 18: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture

NE

NE

NE

GET /restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_link/55c7c8b9-3b87-4822-9c9b-3392f0109065/ HTTP/1.1User-Agent: Faraday v0.9.0Content-Type: application/jsonAccept: application/jsonAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3Connection: closeHost: 10.131.22.2:8081Content-Length: 183

17

Page 19: SDN Transport API Interoperability Demo with OIF and ONF

Topology API CaptureHTTP/1.1 201 CreatedContent-Type: application/jsonServer: Werkzeug/0.11.11 Python/2.7.5Date: Tue, 12 Dec 2016 4:41:37 GMT

{"_linkPort": [

{"_nodeEdgePoint": "/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_node/07d7ad4c-

4214-4d98-8be8-4e6826cece43/_ownedNodeEdgePoint/37a03a6b-3e95-48bb-a253-fd5b3d2f597b/","direction": "BIDIRECTIONAL","localId": "lp13","role": "SYMMETRIC"

}, {"_nodeEdgePoint": "/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_node/019ac632-

20d6-4750-b77c-80852ee60ed6/_ownedNodeEdgePoint/a4b58599-58af-4c38-862b-6c4a46ca9ec7/","direction": "BIDIRECTIONAL","localId": "lp31","role": "SYMMETRIC"

}],"_node": [

"/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_node/07d7ad4c-4214-4d98-8be8-4e6826cece43/",

"/restconf/config/Context/_topology/7a360591-5561-421f-abf2-4c48c4ab9d3e/_node/019ac632-20d6-4750-b77c-80852ee60ed6/"

],"_state": {

"administrativeState": "UNLOCKED","lifecycleState": "INSTALLED","operationalState": "ENABLED"

},

NE

NE

NE

Response continued on the next page18

Page 20: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_transferCapacity": {

"availableCapacity": {"totalSize": "100MBPS"

},"totalPotentialCapacity": {

"totalSize": "100MBPS"}

},"_transferCost": {

"costCharacteristic": [{

"costName": "cost","costValue": "1"

}]

},"_transferTiming": {

"latencyCharacteristic": [{

"fixedLatencyCharacteristic": "1","trafficPropertyName": "fixedLatencyCharacteristic"

}]

},"label": [

{"value": "link13","valueName": "label"

}],"uuid": "55c7c8b9-3b87-4822-9c9b-3392f0109065"

}

NE

NE

NE

19

Page 21: SDN Transport API Interoperability Demo with OIF and ONF

Service Invocation Flow

NE

NE

NE

POST /restconf/config/Context/_connectivityService/ HTTP/1.1Content-Type: application/json; charset=utf-8Authorization: Basic YWRtaW46YWRtaW4=Content-Length: 521Host: 10.141.6.5:8080Connection: close

{"_servicePort":[

{"_serviceEndPoint":"/restconf/config/Context/_serviceEndPoint/59bf8bbf-1a9c-46d5-b607-7099f1cfc60c","role":"SYMMETRIC","direction":"BIDIRECTIONAL","serviceLayer":"ETH","localId":"sp1“

},{"_serviceEndPoint":"/restconf/config/Context/_serviceEndPoint/ce3684ae-329c-42e5-ab72-9cbfab67cde3",

"role":"SYMMETRIC","direction":"BIDIRECTIONAL","serviceLayer":"ETH","localId":"sp2“

}],"_connConstraint":{

"serviceType":"POINT_TO_POINT_CONNECTIVITY","serviceLayer":["OCH"],"_includePath":[]

},"layerProtocolName":"ETH“

}

20

Page 22: SDN Transport API Interoperability Demo with OIF and ONF

Service Invocation FlowHTTP/1.1 201 CreatedContent-Length: 976Content-Type: application/jsonServer: Werkzeug/0.11.11 Python/2.7.5Date: Wed, 07 Dec 2016 04:10:51 GMT

{"_connConstraint": {

"serviceLayer": [ "OCH" ],"serviceType": "POINT_TO_POINT_CONNECTIVITY"

},"_connection": [

"/restconf/config/Context/_connection/91f23537-fb40-491a-ba72-ac2d360ca67e/"],"_servicePort": [ {

"_serviceEndPoint": "/restconf/config/Context/_serviceEndPoint/59bf8bbf-1a9c-46d5-b607-7099f1cfc60c","direction": "BIDIRECTIONAL","localId": "sp1","role": "SYMMETRIC","serviceLayer": "ETH"

}, {"_serviceEndPoint": "/restconf/config/Context/_serviceEndPoint/ce3684ae-329c-42e5-ab72-9cbfab67cde3","direction": "BIDIRECTIONAL","localId": "sp2","role": "SYMMETRIC","serviceLayer": "ETH"

} ],"_state": {

"lifecycleState": "POTENTIAL"},"layerProtocolName": "ETH","uuid": "e44a5d04-e1fe-432b-9d2c-803681838d57"

}

NE

NE

NE

21

Page 23: SDN Transport API Interoperability Demo with OIF and ONF

Network abstraction

Abstract Node Representation

Abstract Link Representation

NE

NE

NE

NE

NE

NE

NENE

NE

NE

NE

NE

NE

NE

NE

NE

Parent Controller

DomainController

Parent Controller

DomainController

22

Page 24: SDN Transport API Interoperability Demo with OIF and ONF

Topology API CaptureGET /restconf/config/Context/_topology/TOPContent-Type: application/json; charset=utf-8Host: 10.141.6.5:8080

NE

NE

NENE

NE

NE

23

Page 25: SDN Transport API Interoperability Demo with OIF and ONF

Topology API CaptureHTTP/1.1 200 OKContent-Type: application/jsonDate: Tue, 20 Dec 2016 10:58:06 GMT

{"_extensions": [ ],"label": [ ],"uuid": "TOP","name": [ {

"value": "TOP","valueName": "name"

} ],"_node": [ {

"_extensions": [ {"extensionsSpecTarget": [ "sm" ],"extensionsSpecification": "vendor"

}, {"extensionsSpecTarget": [ "SM\/00000031-0000-0000-0031-000000736d6f\/" ],"extensionsSpecification": "domainId"

} ],"label": [ ],"uuid": "tsdn:sm:script","name": [ {

"value": "tsdn:sm:script","valueName": "name"

} ],"_encapTopology": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"_transferTiming": null,

NE

NE

NENE

NE

NE

Response continued on the next page

24

NE NENE

Page 26: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_ownedNodeEdgePoint": [ {"_extensions": [ ],"label": [ ],"uuid": "tsdn:sm:script::1","name": [ { "valueName": "name", "value": "OGBE10-1-3-6" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:sm:script::1\/" ]

}, {"_extensions": [ ],"label": [ ],"uuid": "tsdn:sm:script::2","name": [ { "valueName": "name", "value": "OGBE10-1-3-5" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:sm:script::2\/" ]

},

NE

NE

NENE

NE

NE

Response continued on the next page

25

NE NE

Page 27: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{"_extensions": [ ],"label": [ ],"uuid": "tsdn:sm:script::3","name": [ { "valueName": "name", "value": "OGBE10-1-3-5" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ ]

}, {"_extensions": [ ],"label": [ ],"uuid": "tsdn:sm:script::4","name": [ { "valueName": "name", "value": "OGBE10-1-3-5",} ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ ]

} ],"layerProtocolName": [ "OCH" ],"_transferCapacity": null,"_transferCost": null,"_aggregatedNodeEdgePoint": [ ],"_transferIntegrity": null

},

NE

NE

NENE

NE

NE

Response continued on the next page

26

NE NE

Page 28: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{"_extensions": [ {

"extensionsSpecTarget": [ "adva" ],"extensionsSpecification": "vendor"

}, {"extensionsSpecTarget": [ "ADVA\/00000000-a13d-0000-0000-000000000000" ],"extensionsSpecification": "domainId"

} ],"label": [ ],"uuid": "tsdn:adva:script","name": [ { "valueName": "name", "value": "tsdn:adva:script" } ],"_encapTopology": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"_transferTiming": null,

"_ownedNodeEdgePoint": [ {"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::1","name": [ { "valueName": "name", "value": "10.95.86.196:PTP-2-10-NE",} ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::1\/" ]

},

NE

NE

NENE

NE

NE

Response continued on the next page

27

NE NENE

Page 29: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::2","name": [ { "valueName": "name", "value": "10.95.86.196:PTP-2-10-NW" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::2\/" ]

}, {"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::3","name": [ { "valueName": "name", "value": "10.95.86.197:PTP-2-10-NE", } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ ]

},

NE

NE

NENE

NE

NE

Response continued on the next page

28

NE NE

Page 30: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::4","name": [ { "valueName": "name", "value": "10.95.86.197:PTP-2-10-NW" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ ]

}, {"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::5","name": [ { "valueName": "name", "value": "10.95.86.198:PTP-2-10-NE" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::5\/" ]

},

NE

NE

NENE

NE

NE

Response continued on the next page

29

NE NE

Page 31: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [ ],"label": [ ],"uuid": "tsdn:adva:script::6","name": [ { "valueName": "name", "value": "10.95.86.198:PTP-2-10-NW" } ],"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"direction": "BIDIRECTIONAL","_layerProtocol": [ ],"_clientNodeEdgePoint": [ ],"_mappedServiceEndPoint": [ "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::6\/" ]

}],"layerProtocolName": [ "OCH" ],"_transferCapacity": null,"_transferCost": null,"_aggregatedNodeEdgePoint": [ ],"_transferIntegrity": null

} ],NE

NE

NENE

NE

NE

Response continued on the next page

30

NE NE

Page 32: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"layerProtocolName": [ "OCH" ],"_link": [

{"_extensions": [

{"extensionsSpecTarget": [

"0.0"],"extensionsSpecification": "utilization"

},{

"extensionsSpecTarget": ["10000.0"

],"extensionsSpecification": "bandwidth"

}],"label": [ ],"uuid": "tsdn:adva:script::4--tsdn:sm:script::3","name": [ { "valueName": "name“, "value": "tsdn:adva:script::4--tsdn:sm:script::3" } ],"direction": "UNIDIRECTIONAL","layerProtocolName": [ ],"_validation": null,"_lpTransition": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},

NE

NE

NENE

NE

NE

Response continued on the next page

31

NE NE

Page 33: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_linkPort": [

{"_extensions": [ ],"localId": "tsdn:adva:script::4","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::4\/",

"direction": "INPUT","role": null

}, {"_extensions": [ ],"localId": "tsdn:sm:script::3","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::3\/","direction": "OUTPUT","role": null

}],"_node": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/"

],"_transferCapacity": null,"_transferCost": null,"_riskParameter": null,"_transferTiming": null,"_transferIntegrity": null

},

NE

NE

NENE

NE

NE

Response continued on the next page

32

NE NE

Page 34: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [{

"extensionsSpecTarget": ["0.0"

],"extensionsSpecification": "utilization"

},{

"extensionsSpecTarget": ["10000.0"

],"extensionsSpecification": "bandwidth"

}],"label": [ ],"uuid": "tsdn:adva:script::3--tsdn:sm:script::4","name": [ { "valueName": "name", "value": "tsdn:adva:script::3--tsdn:sm:script::4" } ],"direction": "UNIDIRECTIONAL","layerProtocolName": [ ],"_validation": null,"_lpTransition": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},

NE

NE

NENE

NE

NE

Response continued on the next page

33

NE NE

Page 35: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_linkPort": [

{"_extensions": [ ],"localId": "tsdn:adva:script::3","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::3\/",

"direction": "INPUT","role": null

}, {"_extensions": [ ],"localId": "tsdn:sm:script::4","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::4\/","direction": "OUTPUT","role": null

}],"_node": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/"

],"_transferCapacity": null,"_transferCost": null,"_riskParameter": null,"_transferTiming": null,"_transferIntegrity": null

},

NE

NE

NENE

NE

NE

Response continued on the next page

34

NE NE

Page 36: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [{

"extensionsSpecTarget": ["0.0"

],"extensionsSpecification": "utilization"

},{

"extensionsSpecTarget": ["10000.0"

],"extensionsSpecification": "bandwidth"

}],"label": [ ],"uuid": "tsdn:sm:script::3--tsdn:adva:script::4","name": [ { "valueName": "name“, "value": "tsdn:sm:script::3--tsdn:adva:script::4" } ],"direction": "UNIDIRECTIONAL","layerProtocolName": [ ],"_validation": null,"_lpTransition": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},

NE

NE

NENE

NE

NE

Response continued on the next page

35

NE NE

Page 37: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_linkPort": [ {

"_extensions": [ ],"localId": "tsdn:sm:script::3","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::3\/","direction": "INPUT","role": null

}, {"_extensions": [ ],"localId": "tsdn:adva:script::4","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::4\/",

"direction": "OUTPUT","role": null

} ],"_node": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/"

],"_transferCapacity": null,"_transferCost": null,"_riskParameter": null,"_transferTiming": null,"_transferIntegrity": null

},

NE

NE

NENE

NE

NE

Response continued on the next page

36

NE NE

Page 38: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture{

"_extensions": [{

"extensionsSpecTarget": [ "0.0" ],"extensionsSpecification": "utilization"

},{

"extensionsSpecTarget": [ "10000.0" ],"extensionsSpecification": "bandwidth"

}],"label": [ ],"uuid": "tsdn:sm:script::4--tsdn:adva:script::3","name": [ { "valueName": "name", "value": "tsdn:sm:script::4--tsdn:adva:script::3" } ],"direction": "UNIDIRECTIONAL","layerProtocolName": [ ],"_validation": null,"_lpTransition": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},

NE

NE

NENE

NE

NE

Response continued on the next page

37

NE NE

Page 39: SDN Transport API Interoperability Demo with OIF and ONF

Topology API Capture"_linkPort": [ {

"_extensions": [ ],"localId": "tsdn:sm:script::4","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::4\/","direction": "INPUT","role": null

},{

"_extensions": [ ],"localId": "tsdn:adva:script::3","name": [ ],"_nodeEdgePoint":

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::3\/",

"direction": "OUTPUT","role": null

}],"_node": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/"

],"_transferCapacity": null,"_transferCost": null,"_riskParameter": null,"_transferTiming": null,"_transferIntegrity": null

}]

}

NE

NE

NENE

NE

NE

38

NE NE

Page 40: SDN Transport API Interoperability Demo with OIF and ONF

Service InvocationPOST /restconf/config/Context/_connectivityService/Content-Type: application/json

{"_servicePort": [

{"_serviceEndPoint":"\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:sm:script::2\/","direction": "INPUT","role": "ROOT"

},{

"_serviceEndPoint": "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::5\/","direction": "OUTPUT","role": "LEAF"

}],"_connConstraint": {

"serviceType": "POINT_TO_POINT_CONNECTIVITY","requestedCapacity": {},"_includePath": [

{"_node": ["\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/"

],"_nodeEdgePoint": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::4\/",

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::3\/"

],"localId": 0

}]

}

NE

NE

NENE

NE

NE

39

NE NE

Page 41: SDN Transport API Interoperability Demo with OIF and ONF

Service Invocation

NE

NE

NENE

NE

NE

HTTP/1.1 201 CreatedContent-Type: application/jsonDate: Tue, 20 Dec 2016 11:07:20 GMT

{"_extensions": [ ],"label": [ ],"uuid": "7a656a07-9fd4-43bc-bba5-390b4cde2b22","name": [ ],"_connection": [

"\/restconf\/config\/Context\/_connection\/4a115665-8aac-40b8-95e9-1cd154c9b506\/"],"_servicePort": [

{"_extensions": [],"localId": null,"name": [ ],"serviceLayer": null,"direction": "INPUT","role": "ROOT","_serviceEndPoint": "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:sm:script::2\/"

},{

"_extensions": [ ],"localId": null,"name": [ ],"serviceLayer": null,"direction": "OUTPUT","role": "LEAF","_serviceEndPoint": "\/restconf\/config\/Context\/_serviceEndPoint\/tsdn:adva:script::5\/"

}],

Response continued on the next page

40

NE NE

Page 42: SDN Transport API Interoperability Demo with OIF and ONF

Service Invocation

NE

NE

NENE

NE

NE

"direction": null,"layerProtocolName": null,"_schedule": null,"_state": {

"administrativeState": "UNLOCKED","operationalState": "ENABLED","lifecycleState": "INSTALLED"

},"_connConstraint": {

"_extensions": [ ],"localId": null,"name": [ ],"serviceType": "POINT_TO_POINT_CONNECTIVITY","_includePath": [

{"_extensions": [ ],"localId": "0","name": [ ],"_nodeEdgePoint": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/_ownedNodeEdgePoint\/tsdn:sm:script::4\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/_ownedNodeEdgePoint\/tsdn:adva:script::3\/"

],"_node": [

"\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:sm:script\/","\/restconf\/config\/Context\/_topology\/TOP\/_node\/tsdn:adva:script\/"

]}

],

Response continued on the next page

41

NE NE

Page 43: SDN Transport API Interoperability Demo with OIF and ONF

Service Invocation

NE

NE

NENE

NE

NE

"requestedCapacity": {"committedInformationRate": null,"peakBurstSize": null,"totalSize": null,"committedBurstSize": null,"packetBwProfileType": null,"peakInformationRate": null,"couplingFlag": null,"colorAware": null

},"costCharacteristic": [ ],"_avoidTopology": [ ],"serviceLayer": [ ],"serviceLevel": null,"latencyCharacteristic": [ ],"_corouteInclusion": [ ],"_diversityExclusion": [ ],"_includeTopology": [ ],"_excludePath": [ ]

}}

42

NE NE

Page 44: SDN Transport API Interoperability Demo with OIF and ONF

FINDINGS

Page 45: SDN Transport API Interoperability Demo with OIF and ONF

Findings

ONF’s T-API provides functions necessary for multi-domain orchestration• Topology view• Connection establishment• Topology abstraction

ONF’s T-API localizes interoperability to Orchestrator/Controller interface• GMPLS requires NEs in a sequence to have a consistent behavior in order to

achieve interoperability

ONF’s T-API supports multiple technologies• Ethernet• OTN• DWDM44

Page 46: SDN Transport API Interoperability Demo with OIF and ONF

Findings

Controllers abstract the network in different ways• E.g. Unidirectional vs Bidirectional links

Controllers provide/report different capabilities• E.g. Connectivity restrictions

Division of responsibility between controllers unclear• E.g. Multi-domain Path Computation

Maintaining RPC and REST styles is confusing• Not all implementations supported both styles

45

Page 47: SDN Transport API Interoperability Demo with OIF and ONF

Findings

T-API needs to be validated for additional use cases• Use of topology interface for Path Computation• Service Management interface

T-API evolution is needed to meet current Transport Network uses• Protected Services• Generalized Notification Service

Based on demo feedback, ONF will align T-API with YANG Best Practices• Object ID format and lifecycle• Separation of Configuration, Operational Data

46

Page 48: SDN Transport API Interoperability Demo with OIF and ONF

Summary

Demonstration shows:• Cooperation between 17 companies

• 7 Carriers (5 Host, 2 Consulting)• 10 Vendors• 2 Research Institutions

• Transport SDN is becoming real• ONF T-API Specification published, implemented and tested

• Testing is a success• Identified strengths and areas for further activity

Next step:• T-API 2.0

47

Page 49: SDN Transport API Interoperability Demo with OIF and ONF

2016 SDN Transport API Interoperability DemonstrationAccelerating Momentum on the Road to Next-Generation Architectures

www.opennetworking.org www.oiforum.com

OpenNetworkingFoundation