blob: 7d05600b52e021f26dcf64060ceae5e1d07679fa [file] [log] [blame]
// SPDX-FileCopyrightText: 2021 Open Networking Foundation
//
// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
module onf-template {
namespace "http://opennetworking.org/aether/template";
prefix tp;
import ietf-yang-types{ prefix yg; }
import onf-aether-types{ prefix at; }
import onf-traffic-class{ prefix tc; }
organization "Open Networking Foundation.";
contact "Scott Baker";
description
"The aether vcs-template holds common parameters used
by a virtual connectivity service. Templates are used to
populate a VCS.";
revision "2021-06-02" {
description "An Aether Virtual Cellular Service Template";
reference "RFC 6087";
}
typedef template-id {
type yg:yang-identifier {
length 1..32;
}
}
container template {
description "The top level container";
list template {
key "id";
description
"List of vcs templates";
leaf id {
type template-id;
description "ID for this vcs template.";
}
leaf display-name {
type string {
length 1..80;
}
description "display name to use in GUI or CLI";
}
leaf sst {
type at:sst;
description "Slice/Service type";
}
leaf sd {
type at:sd;
description "Slice differentiator";
}
container device {
description "Per-device QOS Settings";
container mbr {
description "Maximum bitrate";
leaf uplink {
type at:bitrate;
units bps;
description "Per-device mbr uplink data rate in mbps";
}
leaf downlink {
type at:bitrate;
units bps;
description "Per-device mbr downlink data rate in mbps";
}
}
}
container slice {
description "Per-Slice QOS Settings";
container mbr {
description "Maximum bitrate";
leaf uplink {
type at:bitrate;
units bps;
description "Per-Slice mbr uplink data rate in mbps";
}
leaf downlink {
type at:bitrate;
units bps;
description "Per-Slice mbr downlink data rate in mbps";
}
}
}
leaf traffic-class {
type leafref {
path "/tc:traffic-class/tc:traffic-class/tc:id";
}
description
"Link to traffic class";
}
leaf description {
type at:description;
description "description of this vcs template";
}
}
}
}