AETHER-2874 Bootstrap Aether-2.x models
Change-Id: Ia987596109584df696aaa57703f9148075569422
diff --git a/config-models/aether-2.0.x/files/yang/onf-site.yang b/config-models/aether-2.0.x/files/yang/onf-site.yang
new file mode 100755
index 0000000..b5f22c4
--- /dev/null
+++ b/config-models/aether-2.0.x/files/yang/onf-site.yang
@@ -0,0 +1,172 @@
+// SPDX-FileCopyrightText: 2021 Open Networking Foundation
+//
+// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+module onf-site {
+ namespace "http://opennetworking.org/aether/site";
+ prefix st;
+
+ import ietf-inet-types { prefix inet; }
+ import ietf-yang-types{ prefix yg; }
+ import onf-aether-types{ prefix at; }
+ import onf-enterprise{ prefix ent; }
+
+ organization "Open Networking Foundation.";
+ contact "Scott Baker";
+ description
+ "An Aether site is a location where resources are deployed.";
+
+ revision "2021-09-10" {
+ description "An Aether Site.";
+ reference "RFC 6087";
+ }
+
+ typedef site-id {
+ type yg:yang-identifier {
+ length 1..32;
+ }
+ description "The typedef for site-id";
+ }
+
+ container site {
+ description "The top level container";
+
+ list site {
+ key "id";
+ description
+ "List of site";
+
+ leaf id {
+ type site-id;
+ description "ID for this site.";
+ }
+
+ leaf display-name {
+ type string {
+ length 1..80;
+ }
+ description "display name to use in GUI or CLI";
+ }
+
+ list small-cell {
+ key "small-cell-id";
+ leaf small-cell-id {
+ type yg:yang-identifier;
+ description
+ "Id of small cell";
+ }
+ leaf address {
+ type inet:host;
+ description
+ "Address of small cell";
+ }
+ leaf tac {
+ type at:tac;
+ mandatory true;
+ description
+ "Type Allocation Code";
+ }
+ leaf enable {
+ type boolean;
+ default true;
+ description
+ "Enable this small cell";
+ }
+ leaf display-name {
+ type string {
+ length 1..80;
+ }
+ description "display name to use in GUI or CLI";
+ }
+ description
+ "List of small cell addresses";
+ }
+
+ container monitoring {
+ leaf edge-cluster-prometheus-url {
+ type inet:uri;
+ description
+ "URL of edge cluster prometheus";
+ }
+ leaf edge-monitoring-prometheus-url {
+ type inet:uri;
+ description
+ "URL of monitoring prometheus";
+ }
+ list edge-device {
+ key "edge-device-id";
+ leaf edge-device-id {
+ type yg:yang-identifier;
+ description
+ "Id of edge monitoring device";
+ }
+ leaf display-name {
+ type string {
+ length 1..80;
+ }
+ description "display name to use in GUI or CLI";
+ }
+ leaf description {
+ type at:description;
+ description "description of this site";
+ }
+ description
+ "List of edge monitoring devices";
+ }
+ description
+ "container for monitoring";
+ }
+
+ leaf enterprise {
+ type leafref {
+ path "/ent:enterprise/ent:enterprise/ent:id";
+ }
+ mandatory true;
+ description
+ "Link to enterprise that owns this site";
+ }
+
+ container imsi-definition {
+ leaf mcc {
+ type at:mcc;
+ mandatory true;
+ description "mobile country code";
+ }
+ leaf mnc {
+ type at:mnc;
+ mandatory true;
+ description "mobile network code";
+ }
+ leaf enterprise {
+ type at:ent;
+ mandatory true;
+ description "enterprise-specific identifier";
+ }
+ leaf format {
+ type string {
+ length 15;
+ }
+ mandatory true;
+ description "IMSI format specifier, describes how fields are packed into an IMSI. Must be exactly 15 characters long. For example, CCCNNNEEESSSSSS.";
+ // Format specifiers:
+ // C = MCC
+ // N = MNC
+ // E = Enterprise
+ // 0 = Forced Zero
+ // S = Subscriber ID
+ // default is
+ // 3 digit MCC
+ // 3 digit MNC
+ // 3 digit enterprise ID
+ // 5 digit subscriber ID
+ }
+ description "container for imsi-defination";
+ }
+
+ leaf description {
+ type at:description;
+ description "description of this site";
+ }
+ }
+ }
+}