alto extension: path vector · pdf filealto extension: path vector...

22
ALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016 IETF96

Upload: trandan

Post on 06-Mar-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

ALTO Extension: Path Vector

draft-yang-alto-path-vector-03draft-gao-alto-routing-state-abstraction-03

Presenter:Y.RichardYang

July21,2016IETF96

Page 2: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

Overview• Goingbeyond“single-switch”topologyabstractionislargelyagreeduponintheWGwitha charteritem

• WGhasmultipledesignsrelatedonnetworkgraph,e.g.,– [NL] node/linkgraphs– [NLP]node/linkgraph+pathvector– [AP] Pathvectorw/abstractnetworkelements

– ECMPcomplexity

• Proposal:FirstfinishtheAPdesignasadelivery

2

ALTO

Raw State

Abstract State

Application

Page 3: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

Application-LayerTrafficOptimization(TO)Framework

• ApphasasetofKflowsf[i]=si ->di• Pathf[i].pathforflowf[i]iscomputedbynetwork• AppTOcandoistocontroltrafficvolume(f[i].x)forflowf[i]– x=[f[1].x,f[2].x,…,f[K].x]– Appneedspathproperties(e.g.,cost)off[i]whencomputingf[i].x

3

Value of ALTO is to provide hard-to-obtain, easy to use network information to

applications.

Page 4: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

MainUseCaseofNetworkGraphisCapacityRegion

4

sw1

sw2

eh1 eh3

eh2 eh4

sw5 sw8

sw6

sw4sw7

s1

s2

d1

d2

link1

link7 link12

• Apprequestsavailablebandwidthfortwoflows(s1->d1;s2->d2)

• Costmapreturnsf[1].bw =100Mbps;f[2].bw =100Mbps• Buttheresultcanbeambiguous

sw3link6

Page 5: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

MainUseCaseofNetworkGraphisCapacityRegion

5

sw1

sw2

eh1 eh3

eh2 eh4

sw5 sw8

sw6

sw4sw7

s1

s2

d1

d2

link1

link7 link12

sw3link6

Each core link: 100 Mbps; edge 1G

x1

x2

100

100

Capacity region

Page 6: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

MainUseCaseofNetworkGraphisCapacityRegion

6

sw1

sw2

eh1 eh3

eh2 eh4

sw5 sw8

sw6

sw4sw7

s1

s2

d1

d2

link1

link7 link12

sw3link6

Each core link: 100 Mbps; edge 1G

x1

x2100

100

Capacity region

Page 7: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

MainUseCaseofNetworkGraphisCapacityRegion

7

sw1

sw2

eh1 eh3

eh2 eh4

sw5 sw8

sw6

sw4

s1

s2

d1

d2

link1

link7 link12

sw3link6

Each core link: 100 Mbps; edge 1G

x1

x2100

100

Capacity region

Page 8: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

DesignChoice

• [NL] node/linkgraphs:– Notenoughinformation

• [NLP]node/linkgraph+pathvector– Noneedforalltheinformation

• [AP] Pathvectorw/abstractnetworkelements– Sweetspot

8

ALTO

Raw State

Abstract State

Application

Page 9: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue1:EncodePVinCostMaps

• CostMapw/PV:

• KeyIssue:Whatisthecost-metricandcostmode

9

HTTP/1.1 200 OK…application/alto-costmap+json

{ "meta" : {

"dependent-vtags" : […],"cost-type" : {“cost-metric”: ?, "cost-mode" : ? }

},"cost-map" : {

"PID1": { "PID1":[], "PID2":["ne56", "ne67"], "PID3":[], "PID4":["ne57”]},"PID2": { "PID1":["ne75"], "PID2":[], "PID3":["ne75"], "PID4":[]}, …

}}

Page 10: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

APDesignIssue1:EncodePVinCostMaps

• Authorsof[RFC7285]anticipatedthatelementsofaCostMapmayneedtobegenericandhenceusedJSONValue=>CostMap andEndpointCostMap arepolymorphic(generic)typesthatneedtypeindicator,toindicatesyntaxandsemantics– CostMap<T>– EndpointCostMap<T>

10

object {CostMapData cost-map;

} InfoResourceCostMap: ResponseEntityBase;

object-map {PIDName -> DstCosts;

} CostMapData;

object-map {PIDName -> JSONValue;

} DstCosts;

object {EndpointCostMapData endpoint-cost-map;

} InfoResourceEndpointCostMap: ResponseEntityBase;

object-map {TypedEndpointAddr -> EndpointDstCosts;

} EndpointCostMapData;

object-map {TypedEndpointAddr -> JSONValue;

} EndpointDstCosts;

Page 11: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

Issue1:DesignChoices

• I1-choice1– Introducespecificcost-modeandcost-metric toindicateaPVCostMap

• I1-Choice2– Aunifyingcost-typescheme alsohandlingmulti-cost,costcalendar

11

Page 12: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue2:QueryPrecision

• Issue:– CurrentCostMap andEndpointCostMap aredesignedfor cross-productqueries{s1,s2,….,sn}->{d1,d2,...,dm}===s1->d1,s1->d2,...,s1->dm,s2->d1,...,sn->dm

– butsuchqueriescaninvolvealargenumberofpaths,whichmaynotbenecessarybutlimittheopportunityforcomputingcompact,abstracttopology

12

Page 13: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue2:QueryPrecision

• Possibility:Make PVquerytobenon-crossproduct,e.g.,aqueryenumeratesthesetofflows

• Proposal:– Coordinatewithflowcostserviceor moregenerally,doweproceedw/

RoutingStateAbstractionw/DeclaredEquivalence

13

POST /capacityregion/lookup HTTP/1.1 Host: alto.example.comContent-Length: TBD Content-Type: application/alto-flowparams+jsonAccept: application/alto-costmap+json,application/alto-error+json

{ "flows" : [

{"src": "ipv4:192.0.1.1", "dst": "ipv4:192.0.1.2"}, {"src": "ipv4:192.0.1.3", "dst": "ipv4:192.0.1.4"}, {"src": "ipv4:192.0.1.1", "dst": "ipv4:192.0.1.4"}

] … }

Page 14: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

Issue2:DesignChoices

• I2-choice1– Usenative CostMapforPIDsandEndpointCostMapqueries

• I2-Choice2– Introduceflows,andmoregeneral,introduceroutingstateabstractionquerylanguageasageneralquerymechanism

14

Page 15: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue3:ProvidePVElem.Properties

• Designchoices1. Inline:Embedinthesamecostmap2. Reference:Usedependent-vtag torefertoa

separatemap(e.g.,unifiedelementproperties)

15

Page 16: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue3:Inline

16

HTTP/1.1 200 OK…application/alto-costmap+json

{ "meta" : {

"dependent-vtags" : […],"cost-type" : {“cost-metric”: “ane”, "cost-mode" : ”path-vector” }

},"cost-map" : {

"PID1": { "PID1":[], "PID2":["ne56", "ne67"], "PID3":[], "PID4":["ne57”]},"PID2": { "PID1":["ne75"], "PID2":[], "PID3":["ne75"], "PID4":[]}, …

}“nep-map” : {

“ne56”: {“bw”: 10, … }}

}

• Keyremainingissue:– Howtoindicatetheproperties/valuesspecifiedinthenep-map?– Needtoindicatemulti-costmapforthenep-mapinmeta

Page 17: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue3:Reference

17

HTTP/1.1 200 OK…application/alto-costmap+json

{ "meta" : {

"dependent-vtags" : […refer to an nep map

],"cost-type" : {“cost-metric”: “ane”, "cost-mode" : ”path-vector” }

},"cost-map" : {

"PID1": { "PID1":[], "PID2":["ne56", "ne67"], "PID3":[], "PID4":["ne57”]},"PID2": { "PID1":["ne75"], "PID2":[], "PID3":["ne75"], "PID4":[]}, …

}}

Page 18: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

RoadMap:DecisionPoints

18

NLGraph

NLGraph+PV

APV

Issue 1 Issue2 Issue3

SpecificCostType NativeCostMapQuery Inline

Schemetogetherw/MC,CC

FlowQuery+RSA Reference

Page 19: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

BackupSlides

Page 20: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

Q:HowtoSupportECMPPath

20

• ECMPforeh1->eh3,singlepaththroughsw6foreh2->eh4– PID1->PID3:[{“ne”:“sw5-6”,“w”:0.5},

{“ne”:“sw6-8”,“w”:0.5},{“ne”:“sw5-7”,“w”:0.5},{“ne”:“sw7-8”,“w”:0.5}]

– PID2->PID4::[{“ne”:“sw5-6”,“w”:1},{“ne”:“sw6-8”,“w”:1}]

sw1

sw2

sw3eh1 eh3

eh2 eh4

sw5 sw8

sw6

sw4

PID1

PID2

PID3

PID4 sw7

object {JSONNumber w; // flow weightJSONString ne; // network element

} FlowElement;

object {cost-map.DstCosts.JSONValue

-> FlowElement<0,*>;meta.cost-mode = ”flow”;

} InfoResourcePVCostMap : InfoResourceCostMap;

Page 21: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

OneMoreExample• Howdoweallowstatisticsonacostmetric(e.g.,routingcost)

21

HTTP/1.1 200 OK…application/alto-costmap+json

{ "meta" : {

"dependent-vtags" : […],"cost-type" : {“cost-metric”: “latency-stat”, "cost-mode" : ”basic-stat-object” }

},"cost-map" : {

"PID1": { "PID1”:{“min”; 1, “max”: 2, “avg”: 1.5} , "PID2”:{“min”; 2, “max”: 5, “avg”: 2.5} , …

...}

}

Page 22: ALTO Extension: Path Vector · PDF fileALTO Extension: Path Vector draft-yang-alto-path-vector-03 draft-gao-alto-routing-state-abstraction-03 Presenter: Y. Richard Yang July 21, 2016

PathVectorDesignIssue1:EncodePVinCostMaps

• The“cost-mode” fieldofthe“cost-type”fieldof“meta”ofeachCostMap isthetypeindicator– CostMap<cost-mode>,i.e.,CostMap<numerical>and

CostMap<ordinal>• “numerical”indicatesfloatingpointnumbers{6.1.2.1}• “ordinal”indicates“non-negative”integers{6.1.2.2}

– “cost-metric”:indicatesthesemantics(routingcost, bw,…)• CostMap<numerical>routingcost,bw• CostMap<ordinal>routingcost,bw• EndpointCostMap<numerical>routingcost,bw• EndpointCostMap<ordinal>routingcost,bw

22

object {CostMetric cost-metric;CostMode cost-mode;[JSONString description;]

} CostType;