import helm charts from sdran-helm-charts
- Fixed licensing issues
Change-Id: Ib4f726a6359e340884d329a801eb0b498d7bbb38
diff --git a/config-models/aether-3.x/files/yang/vcs.yang b/config-models/aether-3.x/files/yang/vcs.yang
new file mode 100755
index 0000000..ab4e370
--- /dev/null
+++ b/config-models/aether-3.x/files/yang/vcs.yang
@@ -0,0 +1,171 @@
+// SPDX-FileCopyrightText: 2021 Open Networking Foundation
+//
+// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+module vcs {
+ namespace "http://opennetworking.org/aether/vcs";
+ prefix sl;
+
+ import template{ prefix vt; }
+ import upf { prefix upf; }
+ import ap-list{ prefix apl; }
+ import application{ prefix app; }
+ import aether-types{ prefix at; }
+ import device-group{ prefix dg; }
+ import traffic-class{ prefix tc; }
+ import ietf-yang-types{ prefix yg; }
+ import enterprise{ prefix ent; }
+
+ organization "Open Networking Foundation.";
+ contact "Scott Baker";
+ description
+ "An Aether Virtual Cellular Service (VCS) is
+ used to connect UE devices with applications";
+
+ revision "2021-06-02" {
+ description "An Aether Virtual Cellular Service";
+ reference "RFC 6087";
+ }
+
+ typedef vcs-id {
+ type yg:yang-identifier {
+ length 1..32;
+ }
+ }
+
+ container vcs {
+ description "The top level container";
+
+ list vcs {
+ key "id";
+ description
+ "List of virtual cellular services";
+
+ leaf id {
+ type vcs-id;
+ description "ID for this vcs.";
+ }
+
+ leaf display-name {
+ type string {
+ length 1..80;
+ }
+ description "display name to use in GUI or CLI";
+ }
+
+ list device-group {
+ key "device-group";
+ leaf device-group {
+ type leafref {
+ path "/dg:device-group/dg:device-group/dg:id";
+ }
+ description
+ "Link to device group";
+ }
+ leaf enable {
+ type boolean;
+ default true;
+ description
+ "Enable this device group";
+ }
+ description
+ "A list of device groups. Groups will only participate in
+ the VCS if the enable field is set to True";
+ }
+
+ leaf template {
+ type leafref {
+ path "/vt:template/vt:template/vt:id";
+ }
+ description
+ "Link to user vcs template that was used to initialize
+ this VCS";
+ }
+
+ list application {
+ key "application";
+ leaf application {
+ type leafref {
+ path "/app:application/app:application/app:id";
+ }
+ mandatory true;
+ description
+ "Link to application";
+ }
+ leaf allow {
+ type boolean;
+ default true;
+ description
+ "Allow or deny this application";
+ }
+ description
+ "An ordered list of applications to allow and deny. The deny rules
+ will be executed first, followed by the allow rules. The first rule
+ to match is returned. An implicit DENY ALL lies at the end.";
+ }
+
+ leaf upf {
+ type leafref {
+ path "/upf:upf/upf:upf/upf:id";
+ }
+ description
+ "Link to user plane that implements this vcf";
+ }
+
+ leaf ap {
+ type leafref {
+ path "/apl:ap-list/apl:ap-list/apl:id";
+ }
+ description
+ "Link to access-point list";
+ }
+
+ leaf description {
+ type at:description;
+ description "description of this vcs";
+ }
+
+ leaf enterprise {
+ type leafref {
+ path "/ent:enterprise/ent:enterprise/ent:id";
+ }
+ mandatory true;
+ description
+ "Link to enterprise that owns this VCS";
+ }
+
+ // the following are populated from the template
+ leaf sst {
+ type at:sst;
+ mandatory true;
+ description "Slice/Service type. Immutable.";
+ }
+
+ leaf sd {
+ type at:sd;
+ mandatory true;
+ description "Slice differentiator. Immutable.";
+ }
+
+ leaf uplink {
+ type uint32;
+ description "Uplink data rate in mbps";
+ }
+
+ leaf downlink {
+ type uint32;
+ description "Downlink data rate in mbps";
+ }
+
+ leaf traffic-class {
+ type leafref {
+ path "/tc:traffic-class/tc:traffic-class/tc:id";
+ }
+ mandatory true;
+ description
+ "Link to traffic class";
+ }
+ // end of items populated from the template
+ }
+ }
+}