Internet DRAFT - draft-davis-opsawg-some-refinements-to-rfc8345
draft-davis-opsawg-some-refinements-to-rfc8345
opsawg N. Davis
Internet-Draft Ciena
Intended status: Informational O. Havel
Expires: 13 July 2024 B. Claise
Huawei
10 January 2024
Some Refinements to Network Topologies (RFC8345)
draft-davis-opsawg-some-refinements-to-rfc8345-01
Abstract
This draft provides a brief analysis of the current unidirectional
point-to-point approach to modeling of the link in RFC8345,
highlights why this is not sufficient and makes a proposal to enhance
RFC8345 YANG to support multipoint uni/bi links. The two alternative
enhancement approaches proposed are backward compatible. The
enhancement is such that it provides a uniform solution to modeling
all links that could, over time, replace the current unidirectional
point-to-point approach. The rationale for the change is based on
many years of practical experience, including challenges using
RFC8345 in actual solution development, and insight gained through
other standardisation efforts and deployments.
About This Document
This note is to be removed before publishing as an RFC.
The latest revision of this draft can be found at
https://example.com/LATEST. Status information for this document may
be found at https://datatracker.ietf.org/doc/draft-davis-opsawg-some-
refinements-to-rfc8345/.
Discussion of this document takes place on the WG Working Group
mailing list (mailto:WG@example.com), which is archived at
https://example.com/WG.
Source for this draft and an issue tracker can be found at
https://github.com/USER/REPO.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Davis, et al. Expires 13 July 2024 [Page 1]
Internet-Draft SRNT January 2024
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 13 July 2024.
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Analysis of existing RFC8345 . . . . . . . . . . . . . . . . 4
3.1. RFC8345 section 4.2 Base Network Topology Data Model . . 4
3.2. RFC8345 section 4.4.5 Cardinality and Directionality of
Links . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. From the code: "list link {" . . . . . . . . . . . . . . 7
3.4. From the code: "container source {" . . . . . . . . . . . 8
3.5. From the code: "container destination {" . . . . . . . . 10
4. Enhancement approach . . . . . . . . . . . . . . . . . . . . 11
4.1. Observations . . . . . . . . . . . . . . . . . . . . . . 11
4.2. Essential Enhancement and usage . . . . . . . . . . . . . 11
5. Comparison of the existing point-to-point solution with this
multipoint proposal . . . . . . . . . . . . . . . . . . . 12
6. Basic enhancement . . . . . . . . . . . . . . . . . . . . . . 12
7. More sophisticated enhancement . . . . . . . . . . . . . . . 16
8. Further considerations . . . . . . . . . . . . . . . . . . . 21
8.1. Termination direction . . . . . . . . . . . . . . . . . . 22
8.2. Specification of capability . . . . . . . . . . . . . . . 22
8.3. Links between networks/subnetworks/domains . . . . . . . 22
Davis, et al. Expires 13 July 2024 [Page 2]
Internet-Draft SRNT January 2024
8.4. Richness of navigation . . . . . . . . . . . . . . . . . 23
8.5. Clarification of relationship roles . . . . . . . . . . . 23
8.6. More than just links and termination points . . . . . . . 24
8.7. Layering and sub-layering . . . . . . . . . . . . . . . . 24
9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 24
10. Implementation Status . . . . . . . . . . . . . . . . . . . . 24
10.1. Standards driven implementations . . . . . . . . . . . . 25
10.2. Proving the model . . . . . . . . . . . . . . . . . . . 25
11. Security Considerations . . . . . . . . . . . . . . . . . . . 25
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
13. Informative References . . . . . . . . . . . . . . . . . . . 25
Appendix A. Appendix A . . . . . . . . . . . . . . . . . . . . . 26
A.1. Examples of multipoint . . . . . . . . . . . . . . . . . 26
A.1.1. Root and leaf . . . . . . . . . . . . . . . . . . . . 26
A.1.2. Protected link (dual homing at one end) . . . . . . . 27
A.2. Augmentation pattern . . . . . . . . . . . . . . . . . . 28
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction
This draft examines the approach taken in RFC8345 to modeling the
link. The draft identifies why the current unidirectional approach
is not sufficient and proposes backward compatible enhancements to
allow appropriate support for multipoint and bidirectional cases.
The draft is broken into several key sections:
* Analysis of existing RFC8345: Highlighting the current
unidirectional point-to-point approach taken and providing various
practical examples of multipoint and highlighting experience in
other standard activities and deployments.
* Enhancement approach: Provides general details of the approach to
enhancement of RFC8345
* Basic enhancement: Provides details of YANG enhancements
* More sophisticated enhancement: Offers an alternative YANG
enhancement that further improves RFC8345
* Further considerations: Briefly examines other areas in RFC8345
where improvements could be made
* Conclusion: Points the way forward
* Implementation status: Points to some implementation experience in
this area
Davis, et al. Expires 13 July 2024 [Page 3]
Internet-Draft SRNT January 2024
* Appendix A.1: Provides some specific examples of multipoint links
that have been encountered and continue to be encountered
* Appendix A.2: Provides a summary pattern of the enhancement using
augmentation
The proposal in this draft could be used to advantage in the digital
map [Digital Map] work.
2. Key terms
uni/bi: > That a single model structure supports both unidirectional
and bidrectional forms where the directionality is stated by a simple
enumeration.
multipoint: > That the model structure has a list of points as
opposed to specifically identified individual points.
point-to-point: > That the model structure has only two points where
each point has a particular specific role
3. Analysis of existing RFC8345
This section examines the approach to modeling links in RFC8345.
Several snippets extracted from RFC8345 are examined. The text
snippets are bounded by [[RFCxxxx TEXT EXTRACT BEGINS]][[RFCxxxx TEXT
EXTRACT ENDS]] and the YANG snippets by [[RFC8345 CODE EXTRACT
BEGINS]][[RFC8345 CODE EXTRACT ENDS]].
3.1. RFC8345 section 4.2 Base Network Topology Data Model
The following text appears in the current RFC.
[[RFC8345 TEXT EXTRACT BEGINS]]
A link is identified by a link-id that uniquely identifies the link
within a given topology. Links are point-to-point and
unidirectional. Accordingly, a link contains a source and a
destination. Both source and destination reference a corresponding
node, as well as a termination point on that node. Similar to a
node, a link can map onto one or more links (which are terminated by
the corresponding underlay termination points) in an underlay
topology. This is captured in the list "supporting-link".
[[RFC8345 TEXT EXTRACT ENDS]]
Davis, et al. Expires 13 July 2024 [Page 4]
Internet-Draft SRNT January 2024
The existing RFC8345 makes a number of key points that are extracted
and quoted in bullets below. Each point is followed by an
observation that leads to the proposal.
* "Links are point-to-point and unidirectional."
- Observation: This restriction is the primary focus of this
draft. It is proposed here that the breadth of applications
can benefit significantly from a multipoint uni/bi definition
as described in this draft.
* ".. a link contains a source and a destination."
- Observation: But it is clear that, as the properties defined in
the current RFC are "require-instance false", a link can be
described in valid YANG that has no source and no destination,
i.e., no termination points.
* "Both source and destination reference a corresponding node, as
well as a termination point on that node."
- Observation: But in the YANG the reference can have a node
alone. Under some circumstances, this may be a valid choice,
although it is not clear whether the specific usages currently
defined can tolerate this.
3.2. RFC8345 section 4.4.5 Cardinality and Directionality of Links
The following text appears in the current RFC.
[[RFC8345 TEXT EXTRACT BEGINS]]
The topology data model includes links that are point-to-point and
unidirectional. It does not directly support multipoint and
bidirectional links. Although this may appear as a limitation, the
decision to do so keeps the data model simple and generic, and it
allows it to be very easily subjected to applications that make use
of graph algorithms. Bidirectional connections can be represented
through pairs of unidirectional links. Multipoint networks can be
represented through pseudonodes (similar to IS-IS, for example). By
introducing hierarchies of nodes with nodes at one level mapping onto
a set of other nodes at another level and by introducing new links
for nodes at that level, topologies with connections representing
non-point-to-point communication patterns can be represented.
[[RFC8345 TEXT EXTRACT ENDS]]
Davis, et al. Expires 13 July 2024 [Page 5]
Internet-Draft SRNT January 2024
The existing RFC8345 text above provides an argument for the
unidirectional solution and also provides a "work round" for more
complex cases.
In the existing RFC8345 text, above, there are a number of key points
that are extracted and quoted in bullets below. Each point is
followed by an observation that leads to the proposal.
* "[the model] does not directly support multipoint and
bidirectional links. Although this may appear as a limitation,
the decision to do so keeps the data model simple and generic"
- Observation: But, as will become apparent, the multipoint uni/
bi model is equally generic and arguably as simple whilst
covering all cases of link including unidirectional point to
point. Hence, this draft considers the restriction of the
current RFC, to allow only point to point unidirectional, a
limitation, not an efficiency.
- Observation: Multipoint uni/bi supports point to point (only
two points declared) unidirectional (directionality selection)
and hence can cover all cases covered by RFC8345 today as well
as multipoint cases.
- Observation: Existing models could be transformed to the
multipoint uni/bi form and, where appropriate, the multipoint
uni/bi form could be used to represent multipoint cases as a
set of point to point links (as is done using the current
model).
* "it allows it to be very easily subjected to applications that
make use of graph algorithms"
- Observation: The model is targeted at interface transfer. From
practical experience it is clearly always necessary to perform
some level of graph transformation prior to use by an algorithm
in an application. The transformation from multipoint uni/bi
has been shown to be straight forward in real solutions.
- Observation: Other transformations that are required include
the interface entity becoming one or more transitional links in
the topology (so as to produce a flat topology for multilayer
routing). These transformation, whilst still quite straight
forward are clearly more complex than the multipoint uni/bi
transformation.
Davis, et al. Expires 13 July 2024 [Page 6]
Internet-Draft SRNT January 2024
- Observation: Some graph applications work with bidirectional
multipoint models. The multipoint construct, the hyperedge,
appears in hypergraph theory which actually better reflect the
reality of networking.
* "Bidirectional connections can be represented through pairs of
unidirectional links."
- Observation: Whilst true, this doubles the number of instances
for many applications, which is especially significant
considering that bidirectional usages are very common.
* "Multipoint networks can be represented through pseudonodes
(similar to IS-IS, for example)."
- Observation: But multipoint link constructs appear from
multipoint servers. There are many practical/real cases of
multipoint links. Many years of deployment of management/
control solutions have exposed both the reality and the benefit
of multipoint constructs which is why TM Forum developed the
concept and adopted it in interface models and why ONF took the
lessons and adopted the same construct pattern both in the core
model [ONF TR-512] and in TAPI [ONF TAPI].
- Observation: Adding a pseudo node further increases the number
of instances and does not address the challenge of the partial
connectability of many constructs such as root-leaf. The
multipoint solution is essentially the pseudo node without the
need for the links. The connectability restrictions need to be
described in associated metadata (specification such as
described in [ONF TR-512.7] (in the sections on
ForwardingConstruct specification).
- Observation: The relative efficiency of the multipoint uni/bi
solution will become clear in later sections.
3.3. From the code: "list link {"
The description for link reiterates the source destination definition
and notes that the link does not model "multipoint".
[[RFC8345 CODE EXTRACT BEGINS]]
Davis, et al. Expires 13 July 2024 [Page 7]
Internet-Draft SRNT January 2024
augment "/nw:networks/nw:network" {
description
"Add links to the network data model.";
list link {
key "link-id";
description
"A network link connects a local (source) node and
a remote (destination) node via a set of the respective
node's termination points. It is possible to have several
links between the same source and destination nodes.
Likewise, a link could potentially be re-homed between
termination points. Therefore, in order to ensure that we
would always know to distinguish between links, every link
is identified by a dedicated link identifier. Note that a
link models a point-to-point link, not a multipoint link.";
leaf link-id {
type link-id;
description
"The identifier of a link in the topology.
A link is specific to a topology to which it belongs.";
}
[[RFC8345 CODE EXTRACT ENDS]]
3.4. From the code: "container source {"
The code continues with a definition of the source. This definition
allows, via "require-instance false;" for either source-node or
source-tp or both to be absent. Clearly, considering the definition
'path "../../../nw:node[nw:node-id=current()/../"+"source-
node]/termination-point/tp-id";' the source-tp cannot be present
without the source-node, but the source-node can be present without
the source-tp. This may be useful in some applications, although it
is not clear whether particular applications were considered (and if
a link end only resolved to a node were not intentional, then it is
not clear why a simple TP path was not all that was provided (as that
would locate the node as well as the TP)). It is also not clear
whether the opportunity to not report a source end was intended to
cover a single ended link case where the destination is stated alone
as the source is unknown/unresolvable. This approach has been used
in other solutions where a string carried the information about the
far end (as the point was outside the scope of the controller and
hence the identifier was "foreign"). No description of this was
found in RFC8345 and a string form of the end has not been provided.
Davis, et al. Expires 13 July 2024 [Page 8]
Internet-Draft SRNT January 2024
The code provides a description for source which is ambiguous and
would benefit from some improvement "Source node identifier. Must be
in the same topology.". It is assumed that this "same" means must be
the "same topology as the link that it is the source of". This could
be stated more clearly.
[[RFC8345 CODE EXTRACT BEGINS]]
container source {
description
"This container holds the logical source of a particular
link.";
leaf source-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Source node identifier. Must be in the same topology.";
}
leaf source-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"source-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the source node
and terminates the link.";
}
}
[[RFC8345 CODE EXTRACT ENDS]]
When both source-node and source-tp are not present the structure
"container source {" can be omitted from the instance as it is not a
"presence container" as described in RFC6020.
[[RFC6020 TEXT EXTRACT BEGINS]]
7.5.1. Containers with Presence
YANG supports two styles of containers, those that exist only for
organizing the hierarchy of data nodes, and those whose presence in
the configuration has an explicit meaning.
In the first style, the container has no meaning of its own, existing
only to contain child nodes. This is the default style.
Davis, et al. Expires 13 July 2024 [Page 9]
Internet-Draft SRNT January 2024
For example, the set of scrambling options for Synchronous Optical
Network (SONET) interfaces may be placed inside a "scrambling"
container to enhance the organization of the configuration hierarchy,
and to keep these nodes together. The "scrambling" node itself has
no meaning, so removing the node when it becomes empty relieves the
user from performing this task.
[[RFC6020 TEXT EXTRACT ENDS]]
3.5. From the code: "container destination {"
The code continues with a definition of the destination. This is of
the same form as the source and can also be absent such that a link
with no ends is valid in YANG. It is not clear what case this would
apply to (perhaps some transitional state).
The destination definition differs from the source in that the
description for the node indicates that it must be in the "same
network" and not "same topology" as in the source. One is clearly in
error (minor).
[[RFC8345 CODE EXTRACT BEGINS]]
container destination {
description
"This container holds the logical destination of a
particular link.";
leaf dest-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Destination node identifier. Must be in the same
network.";
}
leaf dest-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"dest-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the
destination node and terminates the link.";
}
}
Davis, et al. Expires 13 July 2024 [Page 10]
Internet-Draft SRNT January 2024
[[RFC8345 CODE EXTRACT ENDS]]
4. Enhancement approach
4.1. Observations
As noted, a link can have no source and no destination. This leads
to an opportunity for a simple approach to enhancement by providing
an additional optional link end definition in the structure. The
addition appears to be YANG backward compatible as existing point-to-
point unidirectional solutions can continue to operate unchanged.
4.2. Essential Enhancement and usage
The additional optional link end definition is effectively a list of
point references where the point reference definition is the same as
the point reference definition in the existing source and destination
structures. Each list member has, in addition to the point
reference, a point-direction and a point-role.
The link also gains a link-type property that essentially references
a definition of the effective internal structure of the link. The
point-role is meaningful with respect to this link-type. For
example, a ROOT_AND_LEAF link-type would have point-roles ROOT and
LEAF and the definition of ROOT_AND_LEAF would express that
information can flow from any LEAF to the ROOT and from the ROOT to
any LEAF, but that flow from LEAF to LEAF is not allowed. Ideally
the link-type would reference a machine interpretable specification
of capability that would express these capabilities and limitations.
The point-direction property in each end definition would express the
flow with respect to the link boundary so EGRESS_FROM_LINK is flowing
out of the link and INGRESS_TO_LINK is flowing into the link. A
BIDIRECTIONAL point supports both ingress and egress flows.
A point could be augmented with properties where appropriate for a
particular application. Where the point is BIDIRECTIONAL there could
be unidirectional augments, one for ingress and one for egress. A
link-direction property is also added to simplify interpretation of
some common cases. This property takes the values BIDIRECTIONAL
(where all points are BIDIRECTIONAL), UNIDIRECTIONAL (where each
point is either INGRESS_TO_LINK or EGRESS_FROM_LINK) and
MIXED_DIRECTION (where there is no restriction on the mix of point-
direction such that some points may be BIDIRECTIONAL and others
INGRESS_TO_LINK etc.).
Davis, et al. Expires 13 July 2024 [Page 11]
Internet-Draft SRNT January 2024
The machine interpretable specification is not fundamentally
necessary as a traditional approach of coding an understanding of
each standard link-type would work reasonably well. However, a
machine interpretable specification would enable a client to deal
with link-types that it had not encountered but through
interpretation of the specification could "understand". The
specification could take a, somewhat verbose, form of connectivity
matrix or could take the, more sophisticated and compact, form of
rule system to describe interior arrangement and the effect of the
link. An example rule system can be found in [ONF TR-512.7]. A
fully generalized solution would need to take advantage of concepts
set out in [mobo].
5. Comparison of the existing point-to-point solution with this
multipoint proposal
As noted earlier, the current version of RFC8345 proposes the use of
a pseudonode to deal with multipoint cases. This adds complexity and
does not convey any flow restrictions without the addition of the
equivalent of the specification discussed above. Clearly, if the
pseudo-node is enriched to include a specification it needs to then
have explicit points with roles etc. and then becomes of the form of
the multipoint link discussed here, but it also requires a mass of
point-to-point unidirectional links to connect it.
The multipoint uni/bi solution degenerates to point to point
unidirectional where the list has only two points with one point as
INGRESS_TO_LINK and the other as EGRESS_FROM_LINK. The link-type
would indicate that the link is point to point unidirectional and the
link-direction would be UNIDIRECTIONAL.
On this basis the multipoint solution proposed here covers all
scenarios in an efficient and uniform fashion and hence the
recommendation.?
6. Basic enhancement
The existing YANG solution is enhanced to include a point-list, link-
type and link-direction. The YANG below also includes the correction
to the source description (to say "same network"):
[[CODE BEGINS]]
Davis, et al. Expires 13 July 2024 [Page 12]
Internet-Draft SRNT January 2024
augment "/nw:networks/nw:network" {
description
"Add links to the network data model.";
list link {
key "link-id";
description
"A network link connects a local (source) node and
a remote (destination) node via a set of the respective
node's termination points. It is possible to have several
links between the same source and destination nodes.
Likewise, a link could potentially be re-homed between
termination points. Therefore, in order to ensure that we
would always know to distinguish between links, every link
is identified by a dedicated link identifier. Note that a
link may model a point-to-point link or a multipoint
link.";
leaf link-id {
type link-id;
description
"The identifier of a link in the topology.
A link is specific to a topology to which it belongs.";
}
container source {
description
"This container holds the logical source of a particular
link.";
leaf source-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Source node identifier. Must be in the same network.";
}
leaf source-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"source-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the source node
and terminates the link.";
}
}
container destination {
description
"This container holds the logical destination of a
Davis, et al. Expires 13 July 2024 [Page 13]
Internet-Draft SRNT January 2024
particular link.";
leaf dest-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Destination node identifier. Must be in the same
network.";
}
leaf dest-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"dest-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the
destination node and terminates the link.";
}
}
container point-list {
description
"This container holds the points of a particular link.";
list points
key "point-id";
leaf point-id {
type string;
description
"Identifier of point in link.";
}
leaf linked-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"node identifier. Must be in the same network as the
link.";
}
leaf linked-tp { // note that still need to deal with uni/bi
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"linked-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the
Davis, et al. Expires 13 July 2024 [Page 14]
Internet-Draft SRNT January 2024
node and terminates the link.";
}
leaf point-role {
type role-of-point;
require-instance false;
description
"The role of the point in the link defined in the
link-type spec.";
}
leaf point-name {
type string;
require-instance false;
description
"The name of the point in the link";
}
leaf point-direction {
type direction-of-point;
require-instance false;
description
"The direction of the point in the link";
}
}
leaf link-type
type type-of-link;
require-instance false;
description
"The reference to the specification for the internal
structure of the link.";
}
leaf link-direction;
type direction-of-link;
require-instance false;
description
"The collective direction of the points of the link.";
}
list supporting-link {
key "network-ref link-ref";
description
"Identifies the link or links on which this link depends.";
leaf network-ref {
type leafref {
path "../../../nw:supporting-network/nw:network-ref";
require-instance false;
}
description
"This leaf identifies in which underlay topology
the supporting link is present.";
Davis, et al. Expires 13 July 2024 [Page 15]
Internet-Draft SRNT January 2024
}
leaf link-ref {
type leafref {
path "/nw:networks/nw:network[nw:network-id=current()/"+
"../network-ref]/link/link-id";
require-instance false;
}
description
"This leaf identifies a link that is a part
of this link's underlay. Reference loops in which
a link identifies itself as its underlay, either
directly or transitively, are not allowed.";
}
}
}
}
[[CODE ENDS]]
In addition to the main body of YANG, there are several new types.
The enumerations should be extensible and therefore need to be
modelled as identities. The base model will have general identities
which may then be augmented for use in specific cases. The
definition sketches below highlight the base model and, where
applicable, some possible augmentations:
* role-of-point is an identity which includes SYMMETRIC, SOURCE,
DESTINATION in the base model. This may be extended with ROOT,
LEAF, PROTECTED, PROTECTING etc. It is likely that the property
will need to be a list as there are potentially several roles and
even a "named list" where the role is declared as protection-role
etc.
* direction-of-point is an identity that includes INGRESS_TO_LINK,
EGRESS_FROM_LINK, BIDIRECTIONAL in the base model.
* type-of-link is an identity that includes SYMMETRIC,
POINT_TO_POINT in the base model. This may be extended with
ROOT_AND_LEAF, DUAL_HOMED_PROTECTION etc.
* direction-of-link is an identity that includes UNIDIRECTIONAL,
BIDIRECTIONAL and MIXED_DIRECTION in the base model.
7. More sophisticated enhancement
Whilst the basic enhancement appears simple and sufficient, a more
sophisticated approach that improves the integrity of the existing
model is also proposed here.
Davis, et al. Expires 13 July 2024 [Page 16]
Internet-Draft SRNT January 2024
In this approach the existing source and destination structures are
extracted and then augmented back into the link. As the augment is
in the same module there is no namespace change. Whilst not simply
YANG backward compatible, this will produce the same instance
structures (in JSON etc.) and will support any augmentation of source
and destination in any current usage.
The benefit of this adjustment is that the inclusion of the points
can be controlled based upon feature support which better separates
the structures that support the existing capability from those that
support the new capability.
The new point-list is also added in via augmentation but with a
different feature control. The existing YANG solution is enhanced to
include a point-list, link-type and link-direction. The YANG below
also includes the correction to the source description (to say "same
network"):
[[CODE BEGINS]]
augment "nw:networks/nw:network/nw:link" {
description
"Add source to link where the link is traditional
uni-point-to-point";
when 'derived-from-or-self(some useful property,
"UNI_POINT_TO_POINT")';
if-feature uni-point-to-point;
container source {
uses source-properties;
description "none";
}
augment "nw:networks/nw:network/nw:link" {
description
"Add destination to link where the link is traditional
uni-point-to-point";
when 'derived-from-or-self(some useful property,
"UNI_POINT_TO_POINT")';
if-feature uni-point-to-point;
container destination {
uses destination-properties;
description "none";
}
augment "nw:networks/nw:network/nw:link" {
description
"Add point-list for uniform support of point-to-point and
Davis, et al. Expires 13 July 2024 [Page 17]
Internet-Draft SRNT January 2024
multipoint";
when 'derived-from-or-self(some useful property, "UNI_BI_MULTI")';
if-feature uni-bi-multi;
container point-list {
uses point-list-properties;
description "none";
}
augment "nw:networks/nw:network/nw:link" {
description
"Add multipoint properties for uniform support of
point-to-point and multipoint";
when 'derived-from-or-self(some useful property, "UNI_BI_MULTI")';
if-feature uni-bi-multi;
container multipoint-link-properties {
uses multipoint-link-properties;
description "none";
}
augment "/nw:networks/nw:network" {
description
"Add links to the network data model.";
list link {
key "link-id";
description
"A network link connects a local (source) node and
a remote (destination) node via a set of the respective
node's termination points. It is possible to have several
links between the same source and destination nodes.
Likewise, a link could potentially be re-homed between
termination points. Therefore, in order to ensure that we
would always know to distinguish between links, every link
is identified by a dedicated link identifier. Note that a
link may model a point-to-point link or a multipoint
link.";
leaf link-id {
type link-id;
description
"The identifier of a link in the topology.
A link is specific to a topology to which it belongs.";
}
list supporting-link {
key "network-ref link-ref";
description
"Identifies the link or links on which this link depends.";
leaf network-ref {
type leafref {
Davis, et al. Expires 13 July 2024 [Page 18]
Internet-Draft SRNT January 2024
path "../../../nw:supporting-network/nw:network-ref";
require-instance false;
}
description
"This leaf identifies in which underlay topology
the supporting link is present.";
}
leaf link-ref {
type leafref {
path "/nw:networks/nw:network[nw:network-id=current()/"+
"../network-ref]/link/link-id";
require-instance false;
}
description
"This leaf identifies a link that is a part
of this link's underlay. Reference loops in which
a link identifies itself as its underlay, either
directly or transitively, are not allowed.";
}
}
}
}
grouping source-properties {
description
"This grouping holds the logical source of a particular
link.";
leaf source-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Source node identifier. Must be in the same network.";
}
leaf source-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"source-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the source node
and terminates the link.";
}
}
Davis, et al. Expires 13 July 2024 [Page 19]
Internet-Draft SRNT January 2024
grouping destination-properties {
description
"This container holds the logical destination of a
particular link.";
leaf dest-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"Destination node identifier. Must be in the same
network.";
}
leaf dest-tp {
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"dest-node]/termination-point/tp-id";
require-instance false;
}
description
"This termination point is located within the
destination node and terminates the link.";
}
}
grouping point-list-properties {
description
"This container holds the points of a particular link.";
list points
key "point-id";
leaf point-id {
type string;
description
"Identifier of point in link.";
}
leaf linked-node {
type leafref {
path "../../../nw:node/nw:node-id";
require-instance false;
}
description
"The node identifier. Must be in the same network.";
}
leaf linked-tp { // note that still need to deal with uni/bi
type leafref {
path "../../../nw:node[nw:node-id=current()/../"+
"linked-node]/termination-point/tp-id";
require-instance false;
Davis, et al. Expires 13 July 2024 [Page 20]
Internet-Draft SRNT January 2024
}
description
"This termination point is located within the
node and terminates the link.";
}
leaf point-role {
type role-of-point;
description
"The role of the point in the link";
}
leaf point-name {
type string;
description
"The name of the point in the link";
}
leaf point-direction {
type direction-of-point
description
"The direction of the point in in the link";
}
}
grouping multipoint-link-properties {
description
"This container holds the properties of a multipoint link.";
leaf link-type
type type-of-link;
require-instance false;
description
"The reference to the specification for internal
structure of the link";
}
leaf link-direction;
type direction-of-link;
require-instance false;
description
"The collective direction of the points of the link";
}
}
[[CODE ENDS]]
8. Further considerations
This section points to other related areas of consideration where
each one could either be covered by this draft as it evolves or could
be the basis for new drafts.
Davis, et al. Expires 13 July 2024 [Page 21]
Internet-Draft SRNT January 2024
8.1. Termination direction
The termination point could benefit from a direction statement as
some terminations are inherently unidirectional and others
bidirectional. Termination direction is a capability statement.
Termination state can be different for the ingress/receive direction
from the egress/transmit direction. Termination direction is
challenging in that a termination has both an upper and a lower side
(orientation as per overlay and underlay). Both sides may have both
ingress and egress. Work has been done in several external bodies
(e.g., ONF in [ONF TR-512] on this challenge and that input should be
sought prior to embarking on this addition.
8.2. Specification of capability
A termination point represents the presence of a capability to deal
with flows. The termination point is silent on the actual
capability. The capability of a termination point is dependent upon
the underlying functionality supporting it. Functionality tends to
be systematically deployed such that each termination point is of a
type where there are many instances of that type in a deployment and
where each termination point of a type has the same characteristic to
each other. For any particular type of termination, its capability
is invariant in specific value for some properties, invariant in
range of values for some properties and invariant in algorithm to
determine value for some properties. The statement of invariants per
type is best stated in a single place and referenced by each
instance. This statement could be called a type specification (as in
[ONF TR-512]). Clear statement of range etc. benefits from work
pointed to in [mobo]. It is suggested here that this aspect is vital
for other work such as that in the area of digital twin such that it
would potentially become part of the [Digital Map].
8.3. Links between networks/subnetworks/domains
The current definition in RFC8345 is limited to links within a
network. There are many cases where links pass between networks. A
challenge, tackled by other bodies in similar work, is the
representation of a link, within a controller, that passes from a
network that is in the view of that controller to a network that is
not (or between two parts of what could be considered as one network
by an external observer, where only one part is in the view of the
controller). Work should be carried out to develop inter-network
link modeling where that modeling accounts for both the case where
all ends of the link are in the view of a single controller and the
case where some ends are not in the view of a controller that is
having to provide the representation.
Davis, et al. Expires 13 July 2024 [Page 22]
Internet-Draft SRNT January 2024
Note that a "foreign" identifier in one or more ends may be the
appropriate solution as touched on earlier in this draft.
8.4. Richness of navigation
Not all possible navigations through the topology are defined in the
model. There is always a dilemma here. Should the model show all
possible navigations such that every relationship becomes two way
(e.g., termination point relates to link end and link end to
termination point), as of course, that may be what is required in an
application that navigates the topology, or should the model provide
only one direction and leave it to the application to populate the
other (obvious) reverse relationship if it needs it. When
considering transfer of information on an interface, it is redundant
to send both directions of navigation and, if the entities which now
refer to each other are propagated non-transactionally, there can be
a temporary inconsistency (which, of course, is where eventual
consistency comes in). There is a larger loop version of this
challenge where there is a minimal set of relationships that
sufficiently describes the topology, but where that may differ from
the specific incomplete set (necessary for a particular application).
As noted earlier, it is "always" the case that an application needs
to do some transformation on the representation of semantics received
from some other control component. It is important to agree where
the intention is to provide a minimal set of relationships from which
all others can be derived, a full set of all possible relationships
which can then be pruned, or something in between (which is where we
normally end up when the music stops).
8.5. Clarification of relationship roles
In this draft, it is recognised that there is a role of a point in
the link (e.g., root in a root/leaf configuration). Other
relationships may also require a similar role clarification. In work
in other bodies (e.g., [ONF TR-512]), it was recognised that the
fully functional representation of the termination/interface/etc. had
potentially complex relationships to other equivalents and to links/
connections. This leads to a consideration that all representations
of functional entities could benefit from a modeling treatment using
the component/system pattern [ONF TR-512.A.2]. This area has not
been fully explored and at this stage appears to add significant,
potentially opaque, complexity to many model areas. It should be
noted however, that this is the underpinning of the "points & roles"
model for link proposed here that is clearly highly beneficial and
very transparent.
Davis, et al. Expires 13 July 2024 [Page 23]
Internet-Draft SRNT January 2024
8.6. More than just links and termination points
In work in other bodies in this area, it has been recognised that
there is a general model of potential for flow consistent with that
set out in RFC8345, but that there is also a general model of
termination function and flow. Work on this area to improve
coherence in modeling would be highly beneficial for the [Digital
Map].
8.7. Layering and sub-layering
Other bodies have grappled with the challenge of defining what a
layer really is. This area requires further consideration to ensure
it is clear in RFC8345. As this is clarified, it may become apparent
that better indication of layering is required on the specific
entities of RFC8345.
9. Conclusion
This draft has provided a brief analysis of the current
unidirectional point-to-point approach to modeling of the link in
RFC8345, has highlighted why this is not sufficient and has made a
proposal to enhance RFC8345 YANG to support multipoint uni/bi links
where two alternative enhancement approaches were offered, both of
which are backward compatible.
It is recommended that the enhancement be made, however, whether to
use the simple or more sophisticated approach requires further
assessment. This assessment should be carried out without delay as
the enhancement could significantly benefit the digital map [Digital
Map] work as well as other modeling activities.
The points highlighted under "Further considerations" should also be
assessed for value and urgency, and work should be commenced to
define any necessary adjustments.
10. Implementation Status
This section has been included to emphasize implementation experience
in this area. There are currently no implementations of the specific
proposal detailed here, but there are many implementations that take
advantage of multipoint uni/bi connectivity and topology models.
Davis, et al. Expires 13 July 2024 [Page 24]
Internet-Draft SRNT January 2024
10.1. Standards driven implementations
Multipoint uni/bi appears in several TMF standards such as MTNM
(Multi-Technology Network Management) [TMF MTNM], which defines
interfaces for interaction between a network managers and sub-
network/element managers, where several entities including
TopologicalLink and SubNetworkConnection use a multipoint uni/bi
representation. These models date back to the early 2000s and the
standards were deployed by many vendors.
More recently ONF adopted the model in core work [ONF TR-512] and
TAPI [ONF TAPI] and there are implementations available that take
advantage of both multipoint uni/bi connections and multipoint uni/bi
links. Some implementations have been approved by TIP MUST [TIP
MUST]. Major implementations of TAPU are proprietary at this point,
but interoperability evaluations are ongoing between products from
various vendor using the TAPI standards initially hosted by OIF (as
proof-of-concept exercises) [OIF PoC] but more recently as part of
operator deployment. Many of these products also take advantage of
multipoint uni/bi models internally.
10.2. Proving the model
It is anticipated that a PoC activity to exercise the proposal be
carried out as part of the digital map work [Digital Map].
11. Security Considerations
None
12. IANA Considerations
This document has no IANA actions.
13. Informative References
[ONF TR-512] Open Networking Foundation TR-512 Core Information Model
(CoreModel) v1.5 - https://opennetworking.org/wp-
content/uploads/2021/11/TR-512_v1.5_OnfCoreIm-info.zip (also
published by ITU-T as G.7711 at https://www.itu.int/rec/T-REC-G.7711/
recommendation.asp?lang=en&parent=T-REC-G.7711-202202-I)
[ONF TR-512.7] (in [ONF TR-512] Model Description Document) TR-512.7
Specification
[ONF TR-512.8] (in [ONF TR-512] Model Description Document) TR-512.8
Control
Davis, et al. Expires 13 July 2024 [Page 25]
Internet-Draft SRNT January 2024
[ONF TR-512.A.2] (in [ONF TR-512] Model Description Document) TR-
512.A.2 Appendix: Model Structure, Patterns and Architecture
[ONF TAPI] Open Networking Foundation Transport API SDK 2.4.0 -
https://github.com/OpenNetworkingFoundation/TAPI/releases/tag/v2.4.0
[TMF MTNM] TeleManagement Forum MultiTechnology Network Management -
https://www.tmforum.org/resources/collection/mtnm-4-5/
[TIP MUST] Telecoms Infra Project Mandatory Use Cases for SDN
Transport -
https://cdn.brandfolder.io/D8DI15S7/at/kzt845vb2q9r2twr8jtgqm4/
TIP_OOPT_MUST_Use-Cases-and-Technical-Requirements-for-Wireless-
Backhaul-SDN-Domain-Controller--Network-Equipment-FINAL-GREEN-
ACCESSv20.pdf
[OIF PoC] Optical Interworking Forum Proof of Concepts -
https://www.oiforum.com/technical-work/2018-sdn-transport-api-
interoperability-demo/
[Digital Map] Digital Map - https://www.ietf.org/id/draft-havel-
opsawg-digital-map-00.txt
[mobo] Modelling Boundaries - https://datatracker.ietf.org/doc/draft-
davis-netmod-modelling-boundaries/
Appendix A. Appendix A
Note also that in some multipoint contexts there is a link scale
issue and tp referencing the link it belongs to may be a better
orientation. It would then need the role in the link etc.
A.1. Examples of multipoint
There are many examples of multipoint links
A.1.1. Root and leaf
The following diagram shows a sketch of a root and leaf link where
the bidirectional points of the connection are represented by the
pair of symbols ">" and "<" which indicate the ingress and egress
flows of the bidirectional point.
Davis, et al. Expires 13 July 2024 [Page 26]
Internet-Draft SRNT January 2024
+-------------------------+
| Root Leaf |
| ------------------<
| / --------------->
| / / |
| / / |
<---+---/----+------------<
>------+---+--\----------->
| \ \ |
| \ \ |
| \ ---------<
| ----------->
| |
+-------------------------+
Figure 1: A Root and Leaf Link
Flow from root to leaf and from leaf to root is allowed. Flow from
leaf to leaf is not allowed. These restrictions can be stated in a
root-leaf specification structure that defines the allowed flows in
terms of rules where the point role (root or leaf) is used to
identify applicable rules etc.
A.1.2. Protected link (dual homing at one end)
The following diagram shows a sketch of a protected link where the
bidirectional points of the connection are represented by the pair of
symbols ">" and "<" which indicate the ingress and egress flows of
the bidirectional point. The switch is shown as "x" at the common
point and "o" at the two selectable points. The swich is currently
set to take signal from the main protecting point.
+-------------------------+
| Protected Protecting |
| --------------<
| /o-/ ---------->
| ---X / main |
| / o-\ / |
<-- -/------ |
>-----------+ \ |
| \ \ |
| \ \ |
| \ ---<
| ---------->
| standby |
+-------------------------+
Figure 2: A Protected Link with exposed dual homing
Davis, et al. Expires 13 July 2024 [Page 27]
Internet-Draft SRNT January 2024
Flow from protected to protecting and from protecting to protected is
allowed. Flow from protecting to protecting is not allowed.
Depending upon the detailed type, it is possible for the protected
port to feed signal to both protecting ports. The protected port is
fed from either main or standby protecting port depending upon signal
quality.
A.2. Augmentation pattern
RFC 8345 pruned/adjusted snippet.
[[CODE BEGINS]]
augment "/nw:networks/nw:network" {
list link {
key "link-id";
leaf link-id {
type link-id;
}
container source {
leaf source-node {
type string;
}
}
}
}
[[CODE ENDS]]
Alternative form:
[[CODE BEGINS]]
Davis, et al. Expires 13 July 2024 [Page 28]
Internet-Draft SRNT January 2024
augment "nw:networks/nw:network/nw:link" {
container source {
uses source-properties;
}
}
augment "/nw:networks/nw:network" {
list link {
key "link-id";
leaf link-id {
type link-id;
}
}
}
grouping source-properties {
leaf source-node {
type string;
}
}
[[CODE ENDS]]
A JSON instance conformant to the first form above is also conformant
to the second, alternative, form.
Acknowledgments
Authors' Addresses
Nigel Davis
Ciena
Email: ndavis@ciena.com
Olga Havel
Huawei
Email: olga.havel@huawei.com
Benoit Claise
Huawei
Email: benoit.claise@huawei.com
Davis, et al. Expires 13 July 2024 [Page 29]