blob: 3d1c764c9bd4453b80122ec288bca6070b1c6db1 [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; }
10 import ietf-yang-types{ prefix yg; }
11 import onf-aether-types { prefix at; }
12 import onf-enterprise{ prefix ent; }
13
14 organization "Open Networking Foundation.";
15 contact "Scott Baker";
16 description "A Aether UPF List is a named User Plane Function.";
17
18 revision "2021-09-16" {
19 description "An Aether User Plane Function";
20 reference "RFC 6087";
21 }
22
23 typedef upf-id {
24 type yg:yang-identifier {
25 length 1..32;
26 }
27 }
28
29 container upf {
30 description "The top level container";
31
32 list upf {
33 key "id";
34 description
35 "A list of named upfs.";
36
37 leaf id {
38 type upf-id;
39 description "ID for this upf.";
40 }
41
42 leaf address {
43 type inet:host;
44 mandatory true;
45 description
46 "Address of UPF";
47 }
48
49 leaf port {
50 type inet:port-number;
51 mandatory true;
52 description
53 "Port for UPF";
54 }
55
56 leaf config-endpoint {
57 type inet:uri;
58 description "url for configuring the UPF";
59 }
60
61 leaf display-name {
62 type string {
63 length 1..80;
64 }
65 description "display name to use in GUI or CLI";
66 }
67
68 leaf description {
69 type at:description;
70 description "description of this UPF";
71 }
72
73 // UPFs are always owned by an Enterprise, since they typically exist on the
74 // Enterprise's edge. TODO: Consider whether they should be owned by a Site
75 // instead of Enterprise.
76 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";
83 }
84 }
85 }
86}