< draft-yang-alto-topology-05.txt   draft-yang-alto-topology-06.txt >
ALTO WG G. Bernstein ALTO WG G. Bernstein
Internet-Draft Grotto Networking Internet-Draft Grotto Networking
Intended status: Standards Track Y. Lee Intended status: Standards Track Y. Lee
Expires: April 30, 2015 Huawei Expires: September 10, 2015 Huawei
W. Roome W. Roome
M. Scharf M. Scharf
Alcatel-Lucent Alcatel-Lucent
Y. Yang Y. Yang
Yale University Yale University
October 27, 2014 March 9, 2015
ALTO Topology Extensions ALTO Topology Extensions: Node-Link Graphs
draft-yang-alto-topology-05.txt draft-yang-alto-topology-06.txt
Abstract Abstract
The Application-Layer Traffic Optimization (ALTO) Service has defined The Application-Layer Traffic Optimization (ALTO) Service has defined
network and cost maps to provide basic network information. In this network and cost maps to provide basic network information. In this
document, we discuss designs to provide abstracted graph document, we discuss designs to provide abstracted (node-link) graph
representations of network topology. We start with a basic representations of network topology.
application use case of multi-flow scheduling using ALTO. We show
that ALTO cost maps alone cannot provide sufficient information. We
then define one key, generic component to address the issues:
introducing path vectors in cost maps. We specify two approaches to
complement path vectors and achieve a complete design: an approach
using opaque network elements and another using a graph (node-link)
representation.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 2, line 7 skipping to change at page 1, line 45
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 30, 2015. This Internet-Draft will expire on September 10, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Review: the Base Single-Node Representation . . . . . . . . . 4 2. Review: the Base Single-Node Representation . . . . . . . . . 3
3. The Multi-flow Scheduling Use Case . . . . . . . . . . . . . 5 3. Topology using a Graph (Node-Link) Representation . . . . . . 4
4. Path-Vector as Cost Metric Representation . . . . . . . . . . 6 3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Minimal Topology through Network Element Properties Map . . . 9 3.2. A Node-Link Schema . . . . . . . . . . . . . . . . . . . 5
6. Topology using a Graph (Node-Link) Representation . . . . . . 10 3.3. Discussions . . . . . . . . . . . . . . . . . . . . . . . 9
6.1. Use Case: Compact Representation . . . . . . . . . . . . 10 4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
6.2. Use Case: Application Path Selection . . . . . . . . . . 10 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
6.3. A Node-Link Schema . . . . . . . . . . . . . . . . . . . 11 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
6.4. Discussions . . . . . . . . . . . . . . . . . . . . . . . 14 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7.1. Normative References . . . . . . . . . . . . . . . . . . 10
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 7.2. Informative References . . . . . . . . . . . . . . . . . 10
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.1. Normative References . . . . . . . . . . . . . . . . . . 16
10.2. Informative References . . . . . . . . . . . . . . . . . 16
Appendix A. Graph Transformations and Operations to Build Appendix A. Graph Transformations and Operations to Build
Topology Representation for Applications . . . . . . 16 Topology Representation for Applications . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction 1. Introduction
Topology is a basic information component that a network can provide Topology is a basic information component that a network can provide
to network management tools and applications. Example tools and to network management tools and applications. Example tools and
applications that can utilize network topology include traffic applications that can utilize network topology include traffic
engineering, network services (e.g., VPN) provisioning, PCE, engineering, network services (e.g., VPN) provisioning, PCE,
application overlays, among others [RFC5693,I-D.amante-i2rs-topology- application overlays, among others [RFC5693,I-D.amante-i2rs-topology-
use-cases, I-D.lee-alto-app-net-info-exchange]. use-cases, I-D.lee-alto-app-net-info-exchange].
skipping to change at page 3, line 19 skipping to change at page 3, line 10
infrastructure, and each representation may be better suited for its infrastructure, and each representation may be better suited for its
own set of deployment scenarios. For example, the current ALTO base own set of deployment scenarios. For example, the current ALTO base
protocol [RFC7285] is designed for a setting of exposing network protocol [RFC7285] is designed for a setting of exposing network
topology using the extreme "my-Internet-view" representation, which topology using the extreme "my-Internet-view" representation, which
abstracts a whole network as a single node that has a set of access abstracts a whole network as a single node that has a set of access
ports, with each port connects to a set of endhosts called endpoints. ports, with each port connects to a set of endhosts called endpoints.
The base protocol refers to each access port as a PID. This "single- The base protocol refers to each access port as a PID. This "single-
node" abstraction achieves simplicity and provides flexibility. A node" abstraction achieves simplicity and provides flexibility. A
problem of this abstraction, however, is that the base protocol as problem of this abstraction, however, is that the base protocol as
currently defined does not provide sufficient information for use currently defined does not provide sufficient information for use
cases such as the multi-flow scheduling use case (see Section 2) cases such as the multi-flow scheduling use case (see [draft-yang-
defined in this document. alto-path-vector]).
An opposite of the single-node representation is the complete raw An opposite of the single-node representation is the complete raw
topology, spanning across multiple layers, to include all details of topology, spanning across multiple layers, to include all details of
network states such as endhosts attachment, physical links, physical network states such as endhosts attachment, physical links, physical
switch equipment, and logical structures (e.g., LSPs) already built switch equipment, and logical structures (e.g., LSPs) already built
on top of the physical infrastructural devices. A problem of the raw on top of the physical infrastructural devices. A problem of the raw
topology representation, however, is that its exposure may violate topology representation, however, is that its exposure may violate
privacy constraints. Also, a large raw topology may be overwhelming privacy constraints. Also, a large raw topology may be overwhelming
and unnecessary for specific applications. Since the target of ALTO and unnecessary for specific applications. Since the target of ALTO
is general applications which do not want or need to understand is general applications which do not want or need to understand
detailed routing protocols or raw topology collected in routing detailed routing protocols or raw topology collected in routing
information bases (RIB), raw topology does not appear to be a good information bases (RIB), raw topology does not appear to be a good
fit for ALTO. fit for ALTO.
A main objective of this document is to specify a new type of ALTO A main objective of this document is to specify a new type of ALTO
Information Resources, which provide abstracted graph representations Information Resources, which provide abstracted graph (node-link)
of a network to provide only enough information for applications. We representations of a network to provide only enough information for
call such Information Resources ALTO topology maps, or topology maps applications. We call such Information Resources ALTO topology maps,
for short. Different from the base single-node abstraction, a or topology maps for short. Different from the base single-node
topology map includes multiple network nodes. Different from the raw abstraction, a topology map includes multiple network nodes.
topology representation that uses real network nodes, a topology map Different from the raw topology representation that uses real network
may use abstract nodes, although they will be constructed from the nodes, a topology map may use abstract nodes, although they will be
real, raw topology, in order to provide grounded information. The constructed from the real, raw topology, in order to provide grounded
design of this document is based on the ALTO WG discussions at IETF information. The design of this document is based on the ALTO WG
89, with summary slides at http://tools.ietf.org/agenda/89/slides/ discussions at IETF 89, with summary slides at
slides-89-alto-2.pdf. http://tools.ietf.org/agenda/89/slides/slides-89-alto-2.pdf.
The organization of this document is organized as follows. We first The organization of this document is organized as follows. We first
review the ALTO base protocol in Section 2. Then in Section 3, we review the ALTO base protocol in Section 2. In Section 3, we give a
give the multi-flow scheduling use case as an example. In Section 4, node-link representation.
we specify path vector as a key component to handle multi-flow
scheduling. In Sections 5 and 6, we give two graph representations
to complete the design. Section 7 gives a framework of topology
transformations to help with the understanding of deriving multiple
representations of the topology of the same network infrastructure,
for applications.
2. Review: the Base Single-Node Representation 2. Review: the Base Single-Node Representation
We distinguish between endhosts and the network infrastructure of a We distinguish between endhosts and the network infrastructure of a
network. Endhosts are sources and destinations of data that the network. Endhosts are sources and destinations of data that the
network infrastructure carries. The network itself is neither the network infrastructure carries. The network itself is neither the
source nor the destination of data. source nor the destination of data.
For a given network, it provides "access ports" (interfaces, or For a given network, it provides "access ports" (interfaces, or
access points) where data signal from endhosts enter and leave the access points) where data signal from endhosts enter and leave the
skipping to change at page 5, line 8 skipping to change at page 4, line 41
Figure 1: Base Single-Node Topology Abstraction. Figure 1: Base Single-Node Topology Abstraction.
There can be multiple ways to partition the set AP. Each partition There can be multiple ways to partition the set AP. Each partition
is called a network map. Given a complete partition of AP, the ALTO is called a network map. Given a complete partition of AP, the ALTO
base protocol introduces PID to represent each partition subset. The base protocol introduces PID to represent each partition subset. The
ALTO base protocol then conveys the pair-wise connection properties ALTO base protocol then conveys the pair-wise connection properties
between one PID and another PID through the "single-node". This is between one PID and another PID through the "single-node". This is
the cost map. the cost map.
3. The Multi-flow Scheduling Use Case 3. Topology using a Graph (Node-Link) Representation
There are use cases where simple cost metrics cannot convey enough
information to the applications about pair-wise connection properties
between one PID and another PID. See [I-D.bernstein-alto-topo] for a
survey of use-cases where extended network topology information is
needed. This document uses a simple use case to illustrate the idea.
Consider an application overlay (e.g., a large data analysis system)
which needs to schedule the traffic among a set of endhost source-
destination pairs, say eh1 -> eh2, and eh3 -> eh4. A simple cost
metric such as 'available bw' for eh1 -> eh2 and eh3 -> eh4 may not
reflect whether the two paths for eh1 -> eh2 and eh3 -> eh4 share a
bottleneck.
More concretely, assume that the network has 7 switches (sw1 to sw7)
forming a dumb-bell topology. Switches sw1/sw3 provide access on one
side, s2/s4 provide access on the other side, and sw5-sw7 form the
backbone. Endhosts eh1 to eh4 are connected to access switches sw1
to sw4 respectively. Assume that the bandwidth of each link is 100
Mbps. Assume that the network is abstracted with 4 PIDs, with each
representing the hosts at one access switch.
+------+
| |
--+ sw6 +--
/ | | \
PID1 +-----+ / +------+ \ +-----+ PID2
eh1__| |_ / \ ____| |__eh2
| sw1 | \ +--+---+ +---+--+ / | sw2 |
+-----+ \ | | | |/ +-----+
\_| sw5 +---------+ sw7 |
PID3 +-----+ / | | | |\ +-----+ PID4
eh3__| |__/ +------+ +------+ \____| |__eh4
| sw3 | | sw4 |
+-----+ +-----+
Figure 2: Base Single-Node Topology Abstraction.
Now, consider a cost map providing end-to-end available bandwidth.
There can be two possible interpretations on the semantics of the
value of PIDi -> PIDj reported by the cost map: (1) it represents
reserved bandwidth from PIDi -> PIDj, or (2) it represents possible
bandwidth for PIDi -> PIDj, if no other applications use shared
resources. The common understanding is (2), just as when we look at
the number of available seats on a flight.
Assume that the application receives from the cost map that both PID1
-> PID2 and PID3 -> PID4 have bandwidth 100 Mbps. It cannot
determine that if it schedules the two flows together, whether it
will obtain a total of 100 Mbps or 200 Mbps. This depends on whether
the flows share a bottleneck:
o Case 1: If PID1 -> PID2 and PID3 -> PID4 use different paths, for
example, when the first uses sw1 -> sw5 -> sw7 -> sw2, and the
second uses sw3 -> sw5 -> sw6 -> sw7 -> sw4. Then the application
will obtain 200 Mbps.
o Case 2: If PID1 -> PID2 and PID3 -> PID4 share the bottleneck, for
example, when both use the direct link sw5 -> sw7, then the
application will obtain only 100 Mbps.
To allow applications to distinguish the two possible cases, the
network needs to provide more details.
4. Path-Vector as Cost Metric Representation
A key component to address the problem in the preceding section is to
introduce path vectors as a cost metric, which is a set of path
vectors from a source PID to a destination PID, where each path
vector is a sequence (array) of network elements. Note that this
design does not specify that a path vector is a sequence of network
links. Rather, as a general design, a path is a sequence of network
elements.
A schema for introducing path vectors in cost maps is the following
extension of Section 11.2.3.6 of [RFC7285]:
object {
cost-map.DstCosts.JSONValue -> JSONString<0,*>;
meta.cost-mode = "path-vector";
} InfoResourcePVCostMap : InfoResourceCostMap;
Specifically, the preceding specifies that InfoResourcePVCostMap
extends InfoResourceCostMap. The body specifies that the first
extension is achieved by changing the type of JSONValue defined in
DstCosts of cost-map to be an array of JSONString; the second
extension is that the cost-mode of meta MUST be "path-vector".
An example cost map using path-vector is the following:
GET /costmap/pv HTTP/1.1
Host: alto.example.com
Accept: application/alto-costmap+json,application/alto-error+json
HTTP/1.1 200 OK
Content-Length: TDB
Content-Type: application/alto-costmap+json
{
"meta" : {
"dependent-vtags" : [
{ "resource-id": "my-default-network-map",
"tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
},
{"resource-id": "my-topology-map", // See below
"tag": "4xee2cb7e8d63d9fab71b9b34cbf76443631554de"
}
],
"cost-type" : {"cost-mode" : "path-vector"
}
},
"cost-map" : {
"PID1": { "PID1":[],
"PID2":["ne56", "ne67"],
"PID3":[],
"PID4":["ne57"]
},
"PID2": { "PID1":["ne75"],
"PID2":[],
"PID3":["ne75"],
"PID4":[]
},
"PID3": { "PID1":[],
"PID2":["ne57"],
"PID3":[],
"PID4":["ne57"]
},
"PID4": { "PID1":["ne75"],
"PID2":[],
"PID3":["ne75"],
"PID4":[]}
}
}
The example illustrates that there are two key extensions to the ALTO
base protocol:
o It introduces a new "cost-mode" named "path-vector";
o To indicate the resource that provides information on the elements
of path vectors (e.g., ["ne5", "ne67"] for the path vector from
PID1 to PID2, it introduces a new dependency. In the example, it
is indicated by a resource named "my-topology-map".
5. Minimal Topology through Network Element Properties Map
A missing piece to complete the path-vector design to resolve the
ambiguity in the use case is how to provide information on the
elements of the path vectors. A minimal approach is to introduce
network element properties (NEP) maps, where each NEP map provides a
mapping from a network element to its properties such as bandwidth or
shared risk link group (srlg).
A schema of an NEP map is:
object-map {
JSONString -> NetworkElementProperties; // name to properties
} NetworkElementMapData;
object-map {
JSONString bw;
JSONString srlg<0,*>;
[JSONString type;] // should be from an enumeration only
} NetworkElementProperties;
An example network element property map:
GET /nepmap HTTP/1.1
Host: alto.example.com
Accept: application/alto-nepmap+json,application/alto-error+json
HTTP/1.1 200 OK
Content-Length: TBD
Content-Type: application/alto-nepmap+json
{
"meta" : {
"vtag": {
"resource-id": "my-topology-map",
"tag": "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4785"
}
},
"nep-map" : {
"ne57" : {"bw" : 100, "srlg" : [1, 3]}, // link sw5->sw7
"ne75" : {"bw" : 100, "srlg" : [1, 3]}, // link sw7->sw5
"ne56" : {"bw" : 100, "srlg" : [1]}, // link sw5->sw6
"ne65" : {"bw" : 100, "srlg" : [1]}, // link sw6->sw5
"ne67" : {"bw" : 100, "srlg" : [3]}, // link sw6->sw7
"ne76" : {"bw" : 100, "srlg" : [3]}, // link sw7->sw6
}
}
An advantage of the representation is that it does not need to
distinguish between network nodes vs network links, as an application
in typical cases do not need to make the distinction between network
nodes and network links. At the same time, the design introduces an
optional "type" field, which can indicate the type (e.g., link, layer
2 switch, layer 3 router), of the network element.
6. Topology using a Graph (Node-Link) Representation
6.1. Use Case: Compact Representation
A potential problem of the path vector representation is its lacking 3.1. Use Cases
of compactness. For example, suppose a network has N PIDs, then it
will need to represent N * (N-1) paths, if each source-destination
pair has one path computed using a shortest-path algorithm. On the
other hand, the underlying graph may have only O(F * N) elements,
where F is the average degree of the topology, and hence can be a
much smaller value than N. For such settings, in particular, when
privacy protection is not an issue (e.g., in the same-trust domain
setting), a node-link representation can be more compact.
6.2. Use Case: Application Path Selection [draft-yang-alto-path-vector] proposes path vectors to extend the
preceding topology to expose network elements. A potential problem
of the path vector representation, however, is its lacking of
compactness. For example, suppose a network has N PIDs, then it will
need to represent N * (N-1) paths, if each source-destination pair
has one path computed using a shortest-path algorithm. On the other
hand, the underlying graph may have only O(F * N) elements, where F
is the average degree of the topology, and hence can be a much
smaller value than N. For such settings, in particular, when privacy
protection is not an issue (e.g., in the same-trust domain setting),
a node-link representation can be more compact.
Another setting where a node-link graph approach is more complete Another setting where a node-link graph approach is beneficial is
(than the partial NEP approach) can be motivated by the multi-flow application guided path selection. With a topology graph, an
scheduling use case discussed in Section 3. In particular, consider application can compute maximum flows to discover the desired paths
that the network routing is Case 2 (only 100 Mbps total bandwidth), and signal (out the scope of this document) to the network to set up
and the application can benefit from the routing in Case 1 (200 the paths. The computation can be done by the application itself, or
Mbps). With a topology graph, the application can compute maximum through a third entity such as a PCE server. The recent development
flows to discover the desired paths and signal (out the scope of this of SDN makes this use case more possible. A requirement of realizing
document) to the network to set up the paths. The computation can be this use case is that the path computed by the application is
done by the application itself, or through a third entity such as a realizable, in particular, when the topology is an abstract topology.
PCE server. The recent development of SDN makes this use case more By realizable, we mean that a path computed on the abstract topology
possible. A requirement of realizing this use case is that the path can be converted to configurations on network devices to achieve the
computed by the application is realizable, in particular, when the properties in the abstract topology.
topology is an abstract topology. By realizable, we mean that a path
computed on the abstract topology can be converted to configurations
on network devices to achieve the properties in the abstract
topology.
6.3. A Node-Link Schema 3.2. A Node-Link Schema
A schema for the graph (node-link) representation, based on the types A schema for the graph (node-link) representation, based on the types
already defined in the base ALTO protocol, is the following: already defined in the base ALTO protocol, is the following:
object { object {
TopologyMapData topology-map; TopologyMapData topology-map;
} InfoResourceTopologyMap : ResponseEntityBase; } InfoResourceTopologyMap : ResponseEntityBase;
object { object {
NodeMapData nodes; NodeMapData nodes;
skipping to change at page 12, line 39 skipping to change at page 6, line 39
JSONString dst; JSONString dst;
JSONString type; JSONString type;
CostValue costs<0,*>; CostValue costs<0,*>;
} LinkProperties; } LinkProperties;
object { object {
CostMetric metric; CostMetric metric;
JSONValue value; // value type depends on metric type JSONValue value; // value type depends on metric type
} CostValue; } CostValue;
An example using the schema: In particular, the schema distinguishes two types of links: edge-
attach, and core, where the former is for a link between a network
element and a group of endhosts (PID), and the later is between two
network elements.
An example using the schema is:
GET /topologymap HTTP/1.1 GET /topologymap HTTP/1.1
Host: alto.example.com Host: alto.example.com
Accept: application/alto-topologymap+json,application/alto-error+json Accept: application/alto-topologymap+json,application/alto-error+json
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Length: TBD Content-Length: TBD
Content-Type: application/alto-topologymap+json Content-Type: application/alto-topologymap+json
{ {
"meta" : { "meta" : {
"dependent-vtags" : [ "dependent-vtags" : [
{ "resource-id": "my-default-network-map", { "resource-id": "my-default-network-map",
"tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e" "tag": "3ee2cb7e8d63d9fab71b9b34cbf764436315542e"
} }
skipping to change at page 14, line 44 skipping to change at page 9, line 4
"type": "core", "type": "core",
... ...
}, },
"e67" : {"src" : "sw6", "e67" : {"src" : "sw6",
"dst" : "sw7", "dst" : "sw7",
"type": "core", "type": "core",
... ...
} }
} }
} }
} }
6.4. Discussions 3.3. Discussions
The node-link schema specified in the preceding section is still a The node-link schema specified in the preceding section is still a
standard graph representation of a network (graph). An alternative standard graph representation of a network (graph). An alternative
design, which may provide substantial benefit, is using a property design, which may provide substantial benefit, is using a property
graph design. In particular, in a property graph based design, it is graph design. In particular, in a property graph based design, it is
unnecessary that a node in the property graph represents a network unnecessary that a node in the property graph represents a network
node, a link in the property graph represents a network link. node, a link in the property graph represents a network link.
Instead, network nodes, network links and network paths can all be Instead, network nodes, network links and network paths can all be
represented as nodes in a property graph, and links represent their represented as nodes in a property graph, and links represent their
relationship. This design can be flexible in modeling settings such relationship. This design can be flexible in modeling settings such
skipping to change at page 15, line 22 skipping to change at page 9, line 30
Property-graph frameworks such as Gremlin can provide powerful and Property-graph frameworks such as Gremlin can provide powerful and
compact querying languages for application's usage. compact querying languages for application's usage.
Using either the standard node-link graph in the preceding section or Using either the standard node-link graph in the preceding section or
the property graph abstraction, one may not use a rigid hierarchical the property graph abstraction, one may not use a rigid hierarchical
design. Consider a model that uses a strict hierarchy, and a higher design. Consider a model that uses a strict hierarchy, and a higher
layer node can specify a set of nodes in the lower layer as layer node can specify a set of nodes in the lower layer as
supporting nodes; a higher layer link can specify a set of links in supporting nodes; a higher layer link can specify a set of links in
the lower layer as supporting links [draft-clemm-i2rs-yang-network- the lower layer as supporting links [draft-clemm-i2rs-yang-network-
topo-01]. To test the problem of that model, consider a simple topo-01]. To test the problem of that model, consider a simple
topology such as our topology in Section 3. Assume that the network topology. Assume that the network consists of 3 data centers (dc1,
consists of 3 data centers (dc1, dc2, and dc3). dc1 has two routers dc2, and dc3). dc1 has two routers dc11 and dc12; dc2 has dc21 and
dc11 and dc12; dc2 has dc21 and dc22; and dc3 has dc31 and dc32. The dc22; and dc3 has dc31 and dc32. The connections are that (1) two
connections are that (1) two routers in the same data center are routers in the same data center are connected; (2) dc11, dc21 and
connected; (2) dc11, dc21 and dc31 are mutually connected; same for dc31 are mutually connected; same for dc12, dc22, and dc32.
dc12, dc22, and dc32.
The network can provide different abstract topologies: for tenants in The network can provide different abstract topologies: for tenants in
dc1, they see dc11, dc12, and dc2, dc3; same for tenants in dc2, and dc1, they see dc11, dc12, and dc2, dc3; same for tenants in dc2, and
dc3. In other words, each tenant in a DC sees the detailed topology dc3. In other words, each tenant in a DC sees the detailed topology
of its DC and the other data centers are abstracted to be single of its DC and the other data centers are abstracted to be single
nodes. nodes.
This case turns out to be not doable for their pure hierarchical This case turns out to be not doable for their pure hierarchical
layer approach, where a top layer node/link has supporting nodes/ layer approach, where a top layer node/link has supporting nodes/
links. Specifically, thee model cannot have cross-layer links such links. Specifically, thee model cannot have cross-layer links such
as dc11 -> dc2. as dc11 -> dc2.
7. Security Considerations 4. Security Considerations
This document has not conducted its security analysis. This document has not conducted its security analysis.
8. IANA Considerations 5. IANA Considerations
This document does not specified its IANA considerations, yet. This document does not specified its IANA considerations, yet.
9. Acknowledgments 6. Acknowledgments
The author thanks discussions with Xiao Shi, Xin Wang, Erran Li, The author thanks discussions with Xiao Shi, Xin Wang, Erran Li,
Tianyuan Liu, Andreas Voellmy, Haibin Song, and Yan Luo. Tianyuan Liu, Andreas Voellmy, Haibin Song, and Yan Luo.
10. References 7. References
10.1. Normative References 7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
10.2. Informative References 7.2. Informative References
[I-D.amante-i2rs-topology-use-cases] [I-D.amante-i2rs-topology-use-cases]
Medved, J., Previdi, S., Lopez, V., and S. Amante, Medved, J., Previdi, S., Lopez, V., and S. Amante,
"Topology API Use Cases", draft-amante-i2rs-topology-use- "Topology API Use Cases", draft-amante-i2rs-topology-use-
cases-01 (work in progress), October 2013. cases-01 (work in progress), October 2013.
[I-D.clemm-i2rs-yang-network-topo] [I-D.clemm-i2rs-yang-network-topo]
Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N.,
and H. Ananthakrishnan, "A YANG Data Model for Network and H. Ananthakrishnan, "A YANG Data Model for Network
Topologies", draft-clemm-i2rs-yang-network-topo-01 (work Topologies", draft-clemm-i2rs-yang-network-topo-01 (work
 End of changes. 27 change blocks. 
295 lines changed or deleted 82 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/