blob: c81c501078d7842bf7de24ec1f9cbf2f702d1908 [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
Sean Condon11d6f422022-01-14 13:02:03 +00005submodule onf-application {
6 belongs-to onf-enterprise { prefix ent; }
Scott Bakerfdbad762022-01-03 16:00:45 -08007
8 import ietf-inet-types{ prefix ietf; }
9 import ietf-yang-types{ prefix yg; }
10 import onf-aether-types{ prefix at; }
Sean Condon11d6f422022-01-14 13:02:03 +000011
12 include onf-traffic-class;
Scott Bakerfdbad762022-01-03 16:00:45 -080013
14 organization "Open Networking Foundation.";
15 contact "Scott Baker";
16 description
17 "An Aether Application is an application that devices may
18 connect to. Includes a set of endpoints where services are
19 provided.";
20
Sean Condon11d6f422022-01-14 13:02:03 +000021 revision "2022-01-14" {
22 description "Refactored as submodule";
23 reference "RFC 6020";
24 }
25
Scott Bakerfdbad762022-01-03 16:00:45 -080026 revision "2021-09-10" {
27 description "Aether Application.";
28 reference "RFC 6087";
29 }
30
31 typedef application-id {
32 type yg:yang-identifier {
33 length 1..32;
34 }
35 description "The typedef for application-id";
36 }
37
Sean Condon11d6f422022-01-14 13:02:03 +000038 grouping application {
39 description "The application grouping";
Scott Bakerfdbad762022-01-03 16:00:45 -080040
41 list application {
Sean Condon11d6f422022-01-14 13:02:03 +000042 key "app-id";
Scott Bakerfdbad762022-01-03 16:00:45 -080043 description
44 "List of applications";
45
Sean Condon11d6f422022-01-14 13:02:03 +000046 leaf app-id {
Scott Bakerfdbad762022-01-03 16:00:45 -080047 type application-id;
48 description "ID for this application.";
49 }
50
51 leaf display-name {
52 type string {
53 length 1..80;
54 }
55 description "display name to use in GUI or CLI";
56 }
57
58 leaf description {
59 type at:description;
60 description "description of this application";
61 }
62
63 leaf address {
64 type ietf:host;
65 mandatory true;
66 description
67 "Address of this application. Either a hostname, an IP, or a subnet.";
68 }
69
70 list endpoint {
71 key "endpoint-id";
72 leaf endpoint-id {
73 type yg:yang-identifier;
74 description
75 "Id of this endpoint";
76 }
77 leaf port-start {
78 type ietf:port-number;
79 description
80 "First port in range";
81 }
82 leaf port-end {
83 type ietf:port-number;
84 description
85 "Last port in range";
86 }
87 leaf protocol {
88 type at:protocol;
89 description
90 "Protocol of this endpoint";
91 }
92 container mbr {
93 description "Maximum bitrate";
94 leaf uplink {
95 type at:bitrate;
96 units bps;
97 description "Per-Device per-Application MBR uplink data rate in bps";
98 }
99
100 leaf downlink {
101 type at:bitrate;
102 units bps;
103 description "Per-Device per application MBR downlink data rate in bps";
104 }
105 }
106 leaf traffic-class {
107 type leafref {
Sean Condon11d6f422022-01-14 13:02:03 +0000108 path "../../../traffic-class/tc-id";
Scott Bakerfdbad762022-01-03 16:00:45 -0800109 }
110 description
111 "Link to traffic class";
112 }
113 leaf display-name {
114 type string {
115 length 1..80;
116 }
117 description "display name to use in GUI or CLI";
118 }
119 description "list for endpoint";
120 }
Scott Bakerfdbad762022-01-03 16:00:45 -0800121 }
122 }
123}