blob: c48cab1af6f11556c3700323fb051e12db555b40 [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-application {
6 namespace "http://opennetworking.org/enterprise/application";
7 prefix app;
8
9 import ietf-inet-types{ prefix ietf; }
10 import ietf-yang-types{ prefix yg; }
11 import onf-aether-types{ prefix at; }
12 import onf-enterprise{ prefix ent; }
13 import onf-traffic-class{ prefix tc; }
14
15 organization "Open Networking Foundation.";
16 contact "Scott Baker";
17 description
18 "An Aether Application is an application that devices may
19 connect to. Includes a set of endpoints where services are
20 provided.";
21
22 revision "2021-09-10" {
23 description "Aether Application.";
24 reference "RFC 6087";
25 }
26
27 typedef application-id {
28 type yg:yang-identifier {
29 length 1..32;
30 }
31 description "The typedef for application-id";
32 }
33
34 container application {
35 description "The top level container";
36
37 list application {
38 key "id";
39 description
40 "List of applications";
41
42 leaf id {
43 type application-id;
44 description "ID for this application.";
45 }
46
47 leaf display-name {
48 type string {
49 length 1..80;
50 }
51 description "display name to use in GUI or CLI";
52 }
53
54 leaf description {
55 type at:description;
56 description "description of this application";
57 }
58
59 leaf address {
60 type ietf:host;
61 mandatory true;
62 description
63 "Address of this application. Either a hostname, an IP, or a subnet.";
64 }
65
66 list endpoint {
67 key "endpoint-id";
68 leaf endpoint-id {
69 type yg:yang-identifier;
70 description
71 "Id of this endpoint";
72 }
73 leaf port-start {
74 type ietf:port-number;
75 description
76 "First port in range";
77 }
78 leaf port-end {
79 type ietf:port-number;
80 description
81 "Last port in range";
82 }
83 leaf protocol {
84 type at:protocol;
85 description
86 "Protocol of this endpoint";
87 }
88 container mbr {
89 description "Maximum bitrate";
90 leaf uplink {
91 type at:bitrate;
92 units bps;
93 description "Per-Device per-Application MBR uplink data rate in bps";
94 }
95
96 leaf downlink {
97 type at:bitrate;
98 units bps;
99 description "Per-Device per application MBR downlink data rate in bps";
100 }
101 }
102 leaf traffic-class {
103 type leafref {
104 path "/tc:traffic-class/tc:traffic-class/tc:id";
105 }
106 description
107 "Link to traffic class";
108 }
109 leaf display-name {
110 type string {
111 length 1..80;
112 }
113 description "display name to use in GUI or CLI";
114 }
115 description "list for endpoint";
116 }
117
118 leaf enterprise {
119 type leafref {
120 path "/ent:enterprise/ent:enterprise/ent:id";
121 }
122 mandatory true;
123 description
124 "Link to enterprise that owns this Application. May be set to None if the application is global to all Enterprises.";
125 }
126 }
127 }
128}