blob: 5c8be50c90c24f95c796a04f499e69203adc6785 [file] [log] [blame]
Scott Bakerfdbad762022-01-03 16:00:45 -08001// SPDX-FileCopyrightText: 2021 Open Networking Foundation
2//
3// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
4
5module onf-upf {
6 namespace "http://opennetworking.org/aether/upf";
7 prefix upf;
8
9 import ietf-inet-types { prefix inet; }
10 import ietf-yang-types{ prefix yg; }
11 import onf-aether-types { prefix at; }
12 import onf-enterprise{ prefix ent; }
13 import onf-site{ prefix st; }
14
15 organization "Open Networking Foundation.";
16 contact "Scott Baker";
17 description "A Aether UPF List is a named User Plane Function.";
18
19 revision "2021-09-16" {
20 description "An Aether User Plane Function";
21 reference "RFC 6087";
22 }
23
24 typedef upf-id {
25 type yg:yang-identifier {
26 length 1..32;
27 }
28 description "The typedef for upf-id";
29 }
30
31 container upf {
32 description "The top level container";
33
34 list upf {
35 key "id";
36 description
37 "A list of named upfs.";
38
39 leaf id {
40 type upf-id;
41 description "ID for this upf.";
42 }
43
44 leaf address {
45 type inet:host;
46 mandatory true;
47 description
48 "Address of UPF";
49 }
50
51 leaf port {
52 type inet:port-number;
53 mandatory true;
54 description
55 "Port for UPF";
56 }
57
58 leaf config-endpoint {
59 type inet:uri;
60 description "url for configuring the UPF";
61 }
62
63 leaf display-name {
64 type string {
65 length 1..80;
66 }
67 description "display name to use in GUI or CLI";
68 }
69
70 leaf description {
71 type at:description;
72 description "description of this UPF";
73 }
74
75 // UPFs are always owned by an Enterprise, since they typically exist on the
76 // Enterprise's edge.
77 leaf enterprise {
78 type leafref {
79 path "/ent:enterprise/ent:enterprise/ent:id";
80 }
81 mandatory true;
82 description
83 "Link to enterprise that owns this Access Point List";
84 }
85
86 // UPFs always reside at a site, as the exist on physical infrastructure. GUI
87 // will ensure that the tuple (DG, VCS, UPF) all exist on the same site.
88 leaf site {
89 type leafref {
90 path "/st:site/st:site/st:id";
91 }
92 mandatory true;
93 description
94 "Link to site";
95 }
96 }
97 }
98}