module ietf-detnet-topology {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-topology";
prefix "detnet-topology";
import ietf-te-types {
prefix "te-types";
}
import ietf-te-topology {
prefix "tet";
}
import ietf-network {
prefix "nw";
}
import ietf-network-topology {
prefix "nt";
}
organization
"IETF Deterministic Networking(DetNet)Working Group";
contact
"WG Web:
WG List:
WG Chair: Lou Berger
Janos Farkas
Editor: Xuesong Geng
Editor: Mach Chen
Editor: Zhenqiang Li
Editor: Reshad Rahman
";
description
"This YANG module augments the 'ietf-te-topology'
module with DetNet related capabilities and
parameters.";
revision "2018-09-10" {
description "Initial revision";
reference "RFC XXXX: draft-geng-detnet-config-yang-05";
}
grouping detnet-queuing-algorithms {
description
"Relationship with IEEE 802.1 TSN YANG models is TBD.";
}
grouping detnet-node-attributes{
description
"DetNet node related attributes.";
leaf minimum-packet-processing-delay{
type uint32;
description
"Minimum packet processing delay
in a node. The unit of the delay
is microsecond(us)";
}
leaf maximum-packet-processing-delay{
type uint32;
description
"Maximum packet processing delay
in a node. The unit of the delay
is microsecond(us)";
}
leaf maximum-packet-processing-delay-variation{
type uint32;
description
"Maximum packet processing delay
variation in a node. The unit of
the delay variation is microsecond(us)";
}
}
grouping detnet-link-attributes{
description
"DetNet link related attributes.";
container maximum-reservable-bandwidth{
uses te-types:te-bandwidth;
description
"This container specifies the maximum bandwidth
that is reserved for DetNet on this link.";
}
container reserved-detnet-bandwidth{
uses te-types:te-bandwidth;
description
"This container specifies the bandwidth that has
been reserved for DetNet on this link.";
}
container available-detnet-bandwidth{
uses te-types:te-bandwidth;
description
"This container specifies the bandwidth that is
available for new DetNet flows on this link.";
}
}
grouping detnet-terminate-point-attributes{
description
"DetNet terminate point related attributes.";
leaf elimination-capability{
type boolean;
description
"Indicates whether a node is able to do packet
elimination.";
reference
"Section 3.2.2.3 of
draft-ietf-detnet-architecture";
}
leaf replication-capability{
type boolean;
description
"Indicates whether a node is able to do packet
replication.";
reference
"Section 3.2.2.2 of
draft-ietf-detnet-architecture";
}
container in-ordering-capability {
description
"Indicates the parameters needed for
packet in-ordering.";
reference
"Section 3.2.2.1 of
draft-ietf-detnet-architecture";
leaf in-ordering-capability {
type boolean;
description
"Indicates whether a node is able to do packet
in-ordering.";
}
leaf maximum-out-of-order-packets {
type uint32;
description
"The maximum number of out-of-order packets.";
}
}
container queuing-algorithm-capabilities {
description
"All queuing algorithms that a LTP supports.";
uses detnet-queuing-algorithms;
}
list queues {
key "queue-identifier";
description
"A list of DetNet queues.";
leaf queue-identifier {
type uint32;
description
"The identifier of the queue.";
}
leaf queue-buffer-size {
type uint32;
description
"The size of the queue with unit of bytes.";
}
container enabled-queuing-algorithm {
description
"The queuing algorithms that are enabled on the queue.";
uses detnet-queuing-algorithms;
}
leaf minimum-queuing-delay{
type uint32;
description
"The minimum queuing delay of the queue.
The unit of the delay is microsecond(us)";
}
leaf maximum-queuing-delay{
type uint32;
description
"The maximum queuing delay of the queue.
The unit of the delay is microsecond(us)";
}
leaf maximum-queuing-delay-variation{
type uint32;
description
"The maximum queuing delay variation of the queue.
The unit of the delay variation is microsecond(us)";
}
}
}
augment "/nw:networks/nw:network/nw:network-types/tet:te-topology"{
description
"Introduce new network type for TE topology.";
container detnet-topology {
presence "Indicates DetNet topology.";
description
"Its presence identifies the DetNet topology type";
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes" {
when "../../../nw:network-types/tet:te-topology/"
+ "detnet-topology:detnet-topology" {
description
"Augmentation parameters apply only for networks with
DetNet topology type.";
}
description
"Augmentation parameters apply for DetNet node attributes.";
container detnet-node-attributes {
description
"Attributes for DetNet node.";
uses detnet-node-attributes;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes" {
when "../../../nw:network-types/tet:te-topology/"
+ "detnet-topology:detnet-topology" {
description
"Augmentation parameters apply only for networks with
DetNet topology type.";
}
description
"Augmentation parameters apply for DetNet link attributes.";
container detnet-link-attributes {
description
"Attributes for DetNet link.";
uses detnet-link-attributes;
}
}
augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
+ "tet:te" {
when "../../../nw:network-types/tet:te-topology/"
+ "detnet-topology:detnet-topology" {
description
"Augmentation parameters apply only for networks with
DetNet topology type.";
}
description
"Augmentation parameters apply for DetNet
link termination point.";
container detnet-terminate-point-attributes {
description
"Attributes for DetNet link terminate point.";
uses detnet-terminate-point-attributes;
}
}
} //topology module