blob: 4274acb033390789fbf9ba251bc3c542997b7495 [file] [log] [blame]
Scott Bakerc9d3d842021-09-17 11:32:53 -07001// SPDX-FileCopyrightText: 2021 Open Networking Foundation
2//
Sean Condon160ec1d2022-02-08 12:58:25 +00003// SPDX-License-Identifier: Apache-2.0
Scott Bakerc9d3d842021-09-17 11:32:53 -07004
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 }
PUSHP RAJba2e32f2021-11-02 10:39:24 +000028 description "The typedef for upf-id";
Scott Bakerc9d3d842021-09-17 11:32:53 -070029 }
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";
PUSHP RAJba2e32f2021-11-02 10:39:24 +000061 }
Scott Bakerc9d3d842021-09-17 11:32:53 -070062
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
Scott Bakercd276412021-10-13 14:31:24 -070076 // Enterprise's edge.
Scott Bakerc9d3d842021-09-17 11:32:53 -070077 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";
Scott Bakercd276412021-10-13 14:31:24 -070084 }
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 }
Scott Bakerc9d3d842021-09-17 11:32:53 -070096 }
Scott Bakercd276412021-10-13 14:31:24 -070097 }
Scott Bakerc9d3d842021-09-17 11:32:53 -070098}