blob: 4274acb033390789fbf9ba251bc3c542997b7495 [file] [log] [blame]
// SPDX-FileCopyrightText: 2021 Open Networking Foundation
//
// SPDX-License-Identifier: Apache-2.0
module onf-upf {
namespace "http://opennetworking.org/aether/upf";
prefix upf;
import ietf-inet-types { prefix inet; }
import ietf-yang-types{ prefix yg; }
import onf-aether-types { prefix at; }
import onf-enterprise{ prefix ent; }
import onf-site{ prefix st; }
organization "Open Networking Foundation.";
contact "Scott Baker";
description "A Aether UPF List is a named User Plane Function.";
revision "2021-09-16" {
description "An Aether User Plane Function";
reference "RFC 6087";
}
typedef upf-id {
type yg:yang-identifier {
length 1..32;
}
description "The typedef for upf-id";
}
container upf {
description "The top level container";
list upf {
key "id";
description
"A list of named upfs.";
leaf id {
type upf-id;
description "ID for this upf.";
}
leaf address {
type inet:host;
mandatory true;
description
"Address of UPF";
}
leaf port {
type inet:port-number;
mandatory true;
description
"Port for UPF";
}
leaf config-endpoint {
type inet:uri;
description "url for configuring the UPF";
}
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 UPF";
}
// UPFs are always owned by an Enterprise, since they typically exist on the
// Enterprise's edge.
leaf enterprise {
type leafref {
path "/ent:enterprise/ent:enterprise/ent:id";
}
mandatory true;
description
"Link to enterprise that owns this Access Point List";
}
// UPFs always reside at a site, as the exist on physical infrastructure. GUI
// will ensure that the tuple (DG, VCS, UPF) all exist on the same site.
leaf site {
type leafref {
path "/st:site/st:site/st:id";
}
mandatory true;
description
"Link to site";
}
}
}
}