blob: a8a7c4c9310bbe42f4d5e9c1120c379e5f9831e4 [file] [log] [blame]
Scott Bakerc9d3d842021-09-17 11:32:53 -07001// 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; }
Scott Bakercd276412021-10-13 14:31:24 -070010 import ietf-yang-types{ prefix yg; }
Scott Bakerc9d3d842021-09-17 11:32:53 -070011 import onf-aether-types { prefix at; }
12 import onf-enterprise{ prefix ent; }
Scott Bakercd276412021-10-13 14:31:24 -070013 import onf-site{ prefix st; }
Scott Bakerc9d3d842021-09-17 11:32:53 -070014
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 }
29
30 container upf {
31 description "The top level container";
32
33 list upf {
34 key "id";
35 description
36 "A list of named upfs.";
37
38 leaf id {
39 type upf-id;
40 description "ID for this upf.";
41 }
42
43 leaf address {
44 type inet:host;
45 mandatory true;
46 description
47 "Address of UPF";
48 }
49
50 leaf port {
51 type inet:port-number;
52 mandatory true;
53 description
54 "Port for UPF";
55 }
56
57 leaf config-endpoint {
58 type inet:uri;
59 description "url for configuring the UPF";
60 }
61
62 leaf display-name {
63 type string {
64 length 1..80;
65 }
66 description "display name to use in GUI or CLI";
67 }
68
69 leaf description {
70 type at:description;
71 description "description of this UPF";
72 }
73
74 // UPFs are always owned by an Enterprise, since they typically exist on the
Scott Bakercd276412021-10-13 14:31:24 -070075 // Enterprise's edge.
Scott Bakerc9d3d842021-09-17 11:32:53 -070076 leaf enterprise {
77 type leafref {
78 path "/ent:enterprise/ent:enterprise/ent:id";
79 }
80 mandatory true;
81 description
82 "Link to enterprise that owns this Access Point List";
Scott Bakercd276412021-10-13 14:31:24 -070083 }
84
85 // UPFs always reside at a site, as the exist on physical infrastructure. GUI
86 // will ensure that the tuple (DG, VCS, UPF) all exist on the same site.
87 leaf site {
88 type leafref {
89 path "/st:site/st:site/st:id";
90 }
91 mandatory true;
92 description
93 "Link to site";
94 }
Scott Bakerc9d3d842021-09-17 11:32:53 -070095 }
Scott Bakercd276412021-10-13 14:31:24 -070096 }
Scott Bakerc9d3d842021-09-17 11:32:53 -070097}