blob: 28a1f1ccc4b9c0fa4a3be9f5225059c4501e6fb8 [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; }
Scott Bakerfdbad762022-01-03 16:00:45 -08009 import onf-aether-types{ prefix at; }
Sean Condon11d6f422022-01-14 13:02:03 +000010
11 include onf-traffic-class;
Scott Bakerfdbad762022-01-03 16:00:45 -080012
13 organization "Open Networking Foundation.";
14 contact "Scott Baker";
15 description
16 "An Aether Application is an application that devices may
17 connect to. Includes a set of endpoints where services are
18 provided.";
19
Sean Condon11d6f422022-01-14 13:02:03 +000020 revision "2022-01-14" {
21 description "Refactored as submodule";
22 reference "RFC 6020";
23 }
24
Scott Bakerfdbad762022-01-03 16:00:45 -080025 revision "2021-09-10" {
26 description "Aether Application.";
27 reference "RFC 6087";
28 }
29
30 typedef application-id {
Scott Baker40a79562022-02-16 15:04:50 -080031 type at:aether-identifier;
Scott Bakerfdbad762022-01-03 16:00:45 -080032 description "The typedef for application-id";
33 }
34
Sean Condon11d6f422022-01-14 13:02:03 +000035 grouping application {
36 description "The application grouping";
Scott Bakerfdbad762022-01-03 16:00:45 -080037
38 list application {
Sean Condon9f7966e2022-02-03 10:55:06 +000039 key "application-id";
Scott Bakerfdbad762022-01-03 16:00:45 -080040 description
41 "List of applications";
42
Sean Condon9f7966e2022-02-03 10:55:06 +000043 leaf application-id {
Scott Bakerfdbad762022-01-03 16:00:45 -080044 type application-id;
45 description "ID for this application.";
46 }
47
Sean Condon9f7966e2022-02-03 10:55:06 +000048 uses at:desc-display-name;
Scott Bakerfdbad762022-01-03 16:00:45 -080049
50 leaf address {
Scott Bakeree0a68f2022-02-07 16:35:43 -080051 type at:host-or-network;
Scott Bakerfdbad762022-01-03 16:00:45 -080052 mandatory true;
53 description
54 "Address of this application. Either a hostname, an IP, or a subnet.";
55 }
56
57 list endpoint {
58 key "endpoint-id";
59 leaf endpoint-id {
Scott Baker40a79562022-02-16 15:04:50 -080060 type at:aether-identifier;
Scott Bakerfdbad762022-01-03 16:00:45 -080061 description
62 "Id of this endpoint";
63 }
Sean Condon9f7966e2022-02-03 10:55:06 +000064
65 uses at:desc-display-name;
66
Scott Bakerfdbad762022-01-03 16:00:45 -080067 leaf port-start {
68 type ietf:port-number;
69 description
70 "First port in range";
71 }
72 leaf port-end {
73 type ietf:port-number;
74 description
75 "Last port in range";
76 }
77 leaf protocol {
78 type at:protocol;
79 description
80 "Protocol of this endpoint";
81 }
82 container mbr {
83 description "Maximum bitrate";
84 leaf uplink {
85 type at:bitrate;
86 units bps;
87 description "Per-Device per-Application MBR uplink data rate in bps";
88 }
89
90 leaf downlink {
91 type at:bitrate;
92 units bps;
93 description "Per-Device per application MBR downlink data rate in bps";
94 }
95 }
96 leaf traffic-class {
97 type leafref {
Sean Condon9f7966e2022-02-03 10:55:06 +000098 path "../../../traffic-class/traffic-class-id";
Scott Bakerfdbad762022-01-03 16:00:45 -080099 }
100 description
101 "Link to traffic class";
102 }
Sean Condon9f7966e2022-02-03 10:55:06 +0000103
Scott Bakerfdbad762022-01-03 16:00:45 -0800104 description "list for endpoint";
105 }
Scott Bakerfdbad762022-01-03 16:00:45 -0800106 }
107 }
108}