blob: 1c92214bb6bbdda2d5743b0a6f41c7fb3dc24886 [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 upf {
6 namespace "http://opennetworking.org/aether/upf";
7 prefix upf;
8
9 import aether-types { prefix at; }
10 import ietf-inet-types { prefix inet; }
11 import enterprise{ prefix ent; }
12 import ietf-yang-types{ prefix yg; }
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-06-02" {
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 display-name {
57 type string {
58 length 1..80;
59 }
60 description "display name to use in GUI or CLI";
61 }
62
63 leaf description {
64 type at:description;
65 description "description of this UPF";
66 }
67
68 // UPFs are always owned by an Enterprise, since they typically exist on the
69 // Enterprise's edge. TODO: Consider whether they should be owned by a Site
70 // instead of Enterprise.
71 leaf enterprise {
72 type leafref {
73 path "/ent:enterprise/ent:enterprise/ent:id";
74 }
75 mandatory true;
76 description
77 "Link to enterprise that owns this Access Point List";
78 }
79 }
80 }
81}