One document matched: draft-hares-i2rs-service-topo-dm-01.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC791 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0791.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY I-D.ietf-i2rs-yang-network-topo SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-yang-network-topo.xml">
<!ENTITY I-D.ietf-i2rs-yang-l3-topology SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-yang-l3-topology.xml">
]>
<rfc category="std" docName="draft-hares-i2rs-service-topo-dm-01.txt"
ipr="trust200902">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<front>
<title abbrev="I2RS Service Topology">A Yang model for I2RS service topology</title>
<author fullname="Susan Hares" initials="S" surname="Hares">
<organization>Huawei</organization>
<address>
<postal>
<street>7453 Hickory Hill</street>
<city>Saline</city>
<region>MI</region>
<code>48176</code>
<country>USA</country>
</postal>
<email>shares@ndzh.com</email>
</address>
</author>
<author fullname="Linda Dunbar" initials="L." surname="Dunbar">
<organization>Huawei</organization>
<address>
<postal>
<street></street>
<city> </city>
<region> </region>
<code></code>
<country>USA</country>
</postal>
<email>linda.dunbar@huawei.com</email>
</address>
</author>
<date year="2016" />
<area>Routing Area</area>
<workgroup>I2RS</workgroup>
<keyword>RFC</keyword>
<keyword>Request for Comments</keyword>
<keyword>Service Topology</keyword>
<keyword>Internet-Draft</keyword>
<keyword>I2RS</keyword>
<abstract>
<t>This document defines I2RS protocol-independent service layer
virtual topology data model. This data model utilizes the concepts in
the generic I2RS topology model of virtual networks (node, links, termination points) and cross-layer
topologies. This virtual service topology may be a composite layer created
from the combination of protocol-dependent service layers. Protocol-dependent
services layers include: L3VPN, L2VPN, EVPN, E-Tree, and others.
</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>Service topology in <xref target="I-D.ietf-i2rs-yang-network-topo"></xref> includes the
a virtual topology for a service layer above the L1, L2, and L3 layers. This virtual
topology has the generic topology elements of node, link, and terminating point.
The virtual service topology is a network-wide topology stored on one routing
system which an I2RS agent is connected to. </t>
<t> The virtual service topology is a composite of the available services
topologies IETF has standard virtual network topologies for L3VPN,
L2VPN, and EVPN services, E-TREE services, Seamless MPLS topologies within an As
and others. This yang module provides the composite protocol independent
service topology that these protocol dependent topologies plug into</t>
<section title="Conventions used in this document">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC2119</xref>.</t>
</section>
<section title="Base Model: the Service-Topology Component">
<t>The following diagram contains an informal graphical depiction of
the main elements of the information model:
<figure>
<artwork>
+----------------+
| network |
| topology |<...
+----------------+ :
* * : :
| | :...:
| |
+--------+ +--------+
...>| node |<.......|link |<...
: +--------+<.......+--------+ :
: : * : : * : :
:..... | : : | :...:
| : : |
.....>+--------+<........: : |
: | TP |<..........: |
: ...>+--------+ |
: : |
: : .....................+---------+
.........................|Direction|
+---------+
</artwork>
</figure>
</t>
</section>
</section>
<section title="High level Yang architecture">
<t>This section describes the Yang High level architecture.</t>
<section title="Network level">
<t>
The service topology network level defines
the following high-level yang architeture:
</t>
<t>
<figure>
<artwork>
module: i2rs-service-topologies
augment /nw:network/nw:network-types:
+--rw service-topologies-types
augment /nw:network:
+--rw service-topology-attributes
+--rw name? string
+--rw flag flag_type;
+--rw composite-flag identity-ref
+--rw service-topo-id network-id
+--rw node-count uint32
+--rw composite-flag_status identity-ref
</artwork>
</figure>
</t>
<t>
The service topology attributes for a network include the following
<list>
<t>name - name of the service topology, </t>
<t>flag - generic topology flag, </t>
<t> composite-flags - bit mask with flags of service layer
topologies network topology node available to create service
topology from. These topologies include: L3VPN, L2VPN, and EVPN services, E-TREE services,
Seamless MPLS topologies within an AS and others.
</t>
<t>service-topo-id - service topology identifier. </t>
<t>node-count - count of nodes in composite service topology,</t>
<t>composite-flag_status - status flag for each of the composite
topologies on whether portions of the topology are included in
the composite.</t>
</list>
</t>
</section>
<section title="Node level">
<t>
<figure>
<artwork>
module: i2rs-service-topologies
....
augment /nw:network/nw:node
+--rw node-service-attributes
+--rw name? inet:domain-name
+--rw composite_flag* identityref;
+--rw service-node-id uint32
+--rw node-svc_status* identityref;
</artwork>
</figure>
</t>
<t>
The additional fields in the service attributes
are the following:
<list>
<t>name - name of network node, </t>
<t> flag - generic topology node flag,</t>
<t>service-node-id - the id for the service node in the
composite network, </t>
<t>node-svc-type - the type of service node. The service
node can be a member of one of the existing topology type
(L3VPN, L2VPN, EVPN, E-TREE, Seamless MPLS, MPLS-TE, MPLS
node, or I2RS created).
</t>
</list>
</t>
</section>
<section title="Service Link and Termination point">
<t>
<figure>
<artwork>
augment /nw:network/nt:link:
+--rw service-link-attributes
+--rw name? string
+--rw svc-link-type identityref
+--rw metric? uint32
augment /nw:network/nw:node/nt:termination-point:
+--rw service-termination-point-attributes
+--rw tp-svc-id
+--rw (supporting-termination-point) ()
+--:(service)
| +--rw service-network-id leafref
| +--rw service-node-id leafref
| +--rw service-tp-id leafref
+--:(ip)
| +--rw ip-address inet:ip-address
+--:(unnumbered)
+--rw unnumbered-id? uint32
</artwork>
</figure>
</t>
<t>
The augmentation to the service topology is the service link
attributes which include:
<list>
<t>name - name of the link,</t>
<t>svc-link-type - the service link type used to
create this composite service link.
</t>
<t>metric - the metric of the service type</t>
</list>
</t>
<t>
The augmentation to the termination point include the following
<list>
<t>tp-svc-id - service id for the termination point, </t>
<t>supporting termination point* - with a)references to the
service network id, node id and termination point for service id, or
b) an ip address, or c) an unnumbered link address </t>
</list>
</t>
</section>
</section>
<section title="Yang Data Model">
<t>
<figure>
<artwork>
<CODE BEGINS> file "ietf-i2rs-service-topology@2016-01-03.yang"
module ietf-i2rs-service-topology{
namespace "urn:ietf:params:xml:ns:yang:ietf-i2rs-service-topology";
prefix i2rs-st;
import ietf-inet-types {
prefix inet;
}
import ietf-network {
prefix nw;
}
import ietf-network-topology {
prefix "nt";
}
organization "IETF";
contact
"email: shares@ndzh.com;
email: linda.dunbar@huawei.com;
";
description
"This module defines a model
for the service topology.";
revision 2016-01-03{
description
"Version 1 - initial version;
Version 2 - yang format fixed";
reference "draft-hares-i2rs-service-topo-dm-01.txt";
}
identity svc-topo-flag-identity {
description "Base type for svc flags";
}
identity l3vpn-svc-topo {
base svc-topo-flag-identity;
description "L3VPN service type";
}
identity l2vpn-svc-topo {
base svc-topo-flag-identity;
description "L2VPN service type";
}
identity EVPN-svc-topo {
base svc-topo-flag-identity;
description "EVPN service type";
}
identity Seamless-MPLS-svc-topo {
base svc-topo-flag-identity;
description "Seamless MPLS service type";
}
identity Etree-svc-topo {
base svc-topo-flag-identity;
description "Seamless MPLS service type";
}
identity I2rs-svc-topo {
base svc-topo-flag-identity;
description "I2RS create service topo";
}
identity svc-tp-type {
description "Base type for service
termination-point type flags";
}
identity svc-tp-type-service {
base svc-tp-type;
description "service type";
}
identity svc-tp-type-ip {
base svc-tp-type;
description "service IP";
}
identity svc-tp-type-unnum {
base svc-tp-type;
description "service unnumbered link";
}
identity service-topology-types{
description
"service topology type";
}
grouping service-topology-types {
leaf service-type {
type identityref {
base svc-topo-flag-identity;
}
description "list of service
topology type supported";
}
description
"service topology types";
}
grouping service-topology-attributes {
leaf name {
type string;
description "name of service
topology";
}
leaf composite-flag {
type identityref {
base service-topology-types;
}
description "other topologies
this topology is configured to
be a composite of
(L3VPN, L2VPN, I2RS only)";
}
leaf service-topo-id {
type nw:network-id;
description "service topology id
to a service topology instance.";
}
leaf service-id-number {
type uint32;
description "ID for topology";
}
leaf node-count {
type uint32;
description "count of service level nodes
in the network.";
}
leaf composite-flag-status {
type identityref {
base svc-topo-flag-identity;}
description "other topologies
this topology is currently a
composite of
(L3VPN, L2VPN, I2RS only)";
}
description "Group of attributes for
service topology";
}
grouping node-svc-attribute {
leaf domain-name{
type inet:domain-name;
description "Domain name for node";
}
leaf composite-flag {
type identityref {
base svc-topo-flag-identity;
}
description "virtual network
node can be composite of the
topologies list
(L3VPN, L2VPN, I2RS only)";
}
leaf service-node-id {
type uint32;
description "ID for node at
service level";
}
leaf node-svc_status {
type identityref {
base service-topology-types;
}
description "other topologies
this topology is currewntly
be composed of
(L3VPN, L2VPN, I2RS only)";
}
description
"grouping of composite flag";
}
grouping service-link-attributes {
leaf name {
type string;
description "name of
service link";
}
leaf link-id {
type uint32;
description "link id";
}
leaf svc-link-type {
type identityref {
base service-topology-types;
}
description "other topologies
this link is current a
composite of
(L3VPN, L2VPN, I2RS only)";
}
leaf metric {
type uint32;
description "link metric
which may need to expand or
link to TE topologies.";
}
description "grouping of
service link attribute";
}
grouping service-termination-point-attributes {
leaf svc-tp-id {
type uint32;
description "termination point id";
}
container supporting-termination-point {
leaf svc-tp-type {
type identityref {
base svc-tp-type;
}
description "other topologies
this link termination point is
part of (L3VPN, L2VPN,
or I2RS only)";
}
choice svc-tp-support-type{
case svc-tp-type-service {
leaf service-network-id {
type uint32;
description "service network id";
}
leaf service-node-id {
type uint32;
description "service node id";
}
leaf service-link-id {
type uint32;
description "service link id";
}
description "network, node,
tp that supports this
termination point";
}
case svc-tp-type-inet {
leaf ip-address{
type inet:ip-address;
description "ip address";
}
description "inet svc tp";
}
case svc-tp-type-unnum {
leaf unnumbered-id {
type uint32;
description "unnumbered id";
}
description "unnumber svc tp";
}
description "service termination
point type cases";
}
description "container of
supporting termination point";
}
description
"grouping of service-termination-point-attributes";
}
/*
* Data nodes
*/
augment "/nw:networks/nw:network/nw:network-types"{
uses service-topology-types;
description
"augment the network-tpyes with
the service-topology-types grouping";
}
augment "/nw:networks/nw:network/nw:node" {
leaf name {
type inet:domain-name;
description "service name.";
}
list composite_fag {
key "service-node-id";
leaf service-node-id{
type uint32;
description "service node id.";
}
leaf node-svc-type{
type string;
description "node service type.";
}
leaf-list next-hop{
type uint32;
description "next hop id.";
}
description
"the list of composite flag.";
}
description "augments node list";
}
augment "/nw:networks/nw:network"{
uses service-topology-attributes;
description
"augment the network with
the servcie-topolgoy-attributes";
}
augment "/nw:networks/nw:network/nw:node"{
uses node-svc-attribute;
description
"augment the node with the node-svc-attribute";
}
augment "/nw:networks/nw:network/nt:link" {
uses service-link-attributes;
description
"augment the link with
service-link-attributes";
}
augment "/nw:networks/nw:network/nw:node/nt:termination-point"{
uses service-termination-point-attributes;
description
"augment the termination-point with
service-termination-point-attributes";
}
} // module i2rs-service-topology
<CODE ENDS>
<CODE BEGINS> file "ietf-i2rs-service-topology@2016-01-03.yang"
module ietf-i2rs-service-topology{
namespace "urn:ietf:params:xml:ns:yang:ietf-i2rs-service-topology";
prefix i2rs-st;
import ietf-network {
prefix nw;
}
import ietf-network-topology {
prefix "nt";
}
import ietf-inet-types {
prefix inet;
}
organization "TBD";
contact "TBD";
description
"This module defines a model for the service topology.";
revision 2016-01-03{
description
"Version 1 - initial version;
Version 2 - yang format fixed;"
reference "draft-draft-ietf-i2rs-yang-network-topo-01.txt";
}
identity svc-topo-flag-identity {
description "Base type for svc flags";
}
identity l3vpn-svc-topo {
base svc-topo-flag-identity;
description "L3VPN service type";
}
identity l2vpn-svc-topo {
base svc-topo-flag-identity;
description "L2VPN service type";
}
identity EVPN-svc-topo {
base svc-topo-flag-identity;
description "EVPN service type";
}
identity Seamless-MPLS-svc-topo {
base svc-topo-flag-identity;
description "Seamless MPLS service type";
}
identity Etree-svc-topo {
base svc-topo-flag-identity;
description "Seamless MPLS service type";
}
identity I2rs-svc-topo {
base svc-topo-flag-identity;
description "I2RS create service topo";
}
identity svc-tp-type {
description "Base type for service
termination-point type flags";
}
identity svc-tp-type-service {
base svc-tp-type;
description "service type";
}
identity svc-tp-type-ip {
base svc-tp-type;
description "service IP";
}
identity svc-tp-type-unnum {
base svc-tp-type;
description "service unnumbered link";
}
identity service-topology-types{
description
"service topology type";
}
grouping service-topology-types {
leaf service-type {
type identityref {
base svc-topo-flag-identity;
}
description
"list of topology type
supported";
}
description
"service topology types";
}
grouping service-topology-attributes {
description
"Grouping for the attribute for the
service topology";
leaf name {
type string;
description
"name of service
topology";}
leaf composite-flag {
type identityref {
base service-topology-types;}
description
"other topologies
this topology is configured to
be a composite of
(L3VPN, L2VPN, I2RS only)";
}
leaf service-topo-id {
type leafref {
path "/nw:network/nw:network-id";
}
description "An absolute
reference to a network topology instance.";
}
leaf service-id-number {
type uint32;
description "ID for topology";
}
leaf node-node {
type uint32;
description "count of service level nodes
in the network.";
}
leaf composite-flag-status {
type identityref {
base svc-topo-flag-identity;}
description "other topologies
this topology is currently a
composite of
(L3VPN, L2VPN, I2RS only)";
}
}
grouping node-svc-attribute {
leaf domain-name{
type inet:domain-name;
description "Domain name for node";
}
leaf composite-flag {
type identityref {
base svc-topo-flag-identity;}
description "virtual network
node can be composite of the
topologies list
(L3VPN, L2VPN, I2RS only)";
}
leaf service-node-id {
type uint32;
description "ID for node at
service level";
}
leaf node-svc_status {
type identityref {
base service-topology-types;}
description "other topologies
this topology is currewntly
be a composite of
(L3VPN, L2VPN, I2RS only)";
}
description
"grouping of composite flag";
}
grouping service-link-attributes {
leaf name
{type string;
description
"name of
service link";}
leaf link-id
{type uint32;
description
"link id";}
leaf svc-link-type {
type identityref {
base service-topology-types;}
description "other topologies
this link is current a composite of
(L3VPN, L2VPN, I2RS only)";
}
leaf metric {
type uint32;
description "link metric";
// may need to expand with TE topologies
}
description
"grouping of service link attribute";
}
grouping service-termination-point-attributes {
leaf svc-tp-id {
type uint32;
description "termination point id";
}
container supporting-termination-point {
leaf svc-tp-type {
type identityref {
base svc-tp-type;
}
description "other topologies
this link termination point is
part of (L3VPN, L2VPN,
I2RS only)";}
choice svc-tp-support-type{
case svc-tp-type-service {
description "network, node,
tp that supports this
termination point";
leaf service-network-id {
type uint32;
description
"servce network id";
}
leaf service-node-id {
type uint32;
description
"service node id";
}
leaf service-link-id {
type uint32;
description
"service link id";
}
}
case svc-tp-type-inet {
leaf ip-address{
type inet:ip-address;
description
"ip address";
}
}
case svc-tp-type-unnum {
leaf unnumbered-id {
type uint32;
description
"unnumbered id";
}
}
description
"service termination
point type";
}
description
"container of supporting termination point";
}
description
"grouping of service-termination-point-attributes";
}
augment "/nw:network/nw:node"{
leaf name{
type inet:domain-name;
description
"service name.";
}
list composite_fag{
key "service-node-id";
leaf service-node-id{
type uint32;
description
"service node id.";
}
leaf node-svc-type{
type string;
description
"node service type.";
}
leaf-list next-hop{
type uint32;
description
"next hop id.";
}
description
"the list of composite flag.";
}
description
"augment the node list";
}
augment "/nw:network/nw:network-types"{
uses service-topology-types;
description
"augment the network-tpyes with
the servcie-topology-types grouping";
}
augment "/nw:network"{
uses service-topology-attributes;
description
"augment the network with
the servcie-topolgoy-attributes";
}
augment "/nw:network/nw:node"{
uses node-svc-attribute;
description
"augment the node with the node-svc-attribute";
}
augment "/nw:network/nt:link"{
uses service-link-attributes;
description
"augment the link with
service-link-attributes";
}
augment "/nw:network/nw:node/nt:termination-point"{
uses service-termination-point-attributes;
description
"augment the termination-point with
service-termination-point-attributes";
}
} // module i2rs-service-topology
<CODE ENDS>
</artwork>
</figure>
</t>
</section>
<section title="IANA Considerations">
<t>TBD</t>
</section>
<section title="Security Considerations">
<t>TBD</t>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&I-D.ietf-i2rs-yang-network-topo;
</references>
<references title="Informative References">
&I-D.ietf-i2rs-yang-l3-topology;
</references>
</back>
</rfc>| PAFTECH AB 2003-2026 | 2026-04-24 04:27:59 |