blob: 54dcf171a49b3f8182b947c39a33f7c0fb5f993d [file] [log] [blame]
Scott Bakerfdbad762022-01-03 16:00:45 -08001// SPDX-FileCopyrightText: 2021 Open Networking Foundation
2//
Sean Condon160ec1d2022-02-08 12:58:25 +00003// SPDX-License-Identifier: Apache-2.0
Scott Bakerfdbad762022-01-03 16:00:45 -08004
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 Condon9f7966e2022-02-03 10:55:06 +000042 key "application-id";
Scott Bakerfdbad762022-01-03 16:00:45 -080043 description
44 "List of applications";
45
Sean Condon9f7966e2022-02-03 10:55:06 +000046 leaf application-id {
Scott Bakerfdbad762022-01-03 16:00:45 -080047 type application-id;
48 description "ID for this application.";
49 }
50
Sean Condon9f7966e2022-02-03 10:55:06 +000051 uses at:desc-display-name;
Scott Bakerfdbad762022-01-03 16:00:45 -080052
53 leaf address {
Scott Bakeree0a68f2022-02-07 16:35:43 -080054 type at:host-or-network;
Scott Bakerfdbad762022-01-03 16:00:45 -080055 mandatory true;
56 description
57 "Address of this application. Either a hostname, an IP, or a subnet.";
58 }
59
60 list endpoint {
61 key "endpoint-id";
62 leaf endpoint-id {
63 type yg:yang-identifier;
64 description
65 "Id of this endpoint";
66 }
Sean Condon9f7966e2022-02-03 10:55:06 +000067
68 uses at:desc-display-name;
69
Scott Bakerfdbad762022-01-03 16:00:45 -080070 leaf port-start {
71 type ietf:port-number;
72 description
73 "First port in range";
74 }
75 leaf port-end {
76 type ietf:port-number;
77 description
78 "Last port in range";
79 }
80 leaf protocol {
81 type at:protocol;
82 description
83 "Protocol of this endpoint";
84 }
85 container mbr {
86 description "Maximum bitrate";
87 leaf uplink {
88 type at:bitrate;
89 units bps;
90 description "Per-Device per-Application MBR uplink data rate in bps";
91 }
92
93 leaf downlink {
94 type at:bitrate;
95 units bps;
96 description "Per-Device per application MBR downlink data rate in bps";
97 }
98 }
99 leaf traffic-class {
100 type leafref {
Sean Condon9f7966e2022-02-03 10:55:06 +0000101 path "../../../traffic-class/traffic-class-id";
Scott Bakerfdbad762022-01-03 16:00:45 -0800102 }
103 description
104 "Link to traffic class";
105 }
Sean Condon9f7966e2022-02-03 10:55:06 +0000106
Scott Bakerfdbad762022-01-03 16:00:45 -0800107 description "list for endpoint";
108 }
Scott Bakerfdbad762022-01-03 16:00:45 -0800109 }
110 }
111}