blob: a1c71a94095d30079db200632a700726f62b5c6e [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
5module onf-aether-types {
6 namespace "http://opennetworking.org/aether/aether-types";
7 prefix at;
8
9 import ietf-inet-types { prefix inet; }
10
11 organization "Open Networking Foundation.";
12 contact "Scott Baker";
13 description "A set of base types for aether modeling.";
14
15 revision "2021-09-10" {
16 description "Aether Base Types";
17 reference "RFC 6087";
18 }
19
Scott Baker4fb4ba92022-01-14 13:52:01 -080020 typedef imsi {
21 type uint64 {
22 }
23 description "International Mobile Subscriber Identity";
24 }
25
26 typedef imei {
27 type uint64 {
28 }
29 description "International Mobile Equipment Identity";
30 }
31
32 typedef iccid {
33 type uint64 {
34 }
35 description "Integrated Circuit Card ID";
36 }
37
Scott Bakerfdbad762022-01-03 16:00:45 -080038 typedef bitrate {
39 type uint64 {
40 }
41 description "The typedef for bitrate";
42 }
43
44 typedef burst {
45 type uint32 {
46 }
47 default 625000;
48 description "The typedef for burst";
49 }
50
51 typedef mcc {
52 type string {
53 pattern '[0-9]{3}';
54 }
55 description "The typedef for mcc";
56 }
57
58 typedef mnc {
59 type string {
60 pattern '[0-9]{2,3}';
61 }
62 description "The typedef for mnc";
63 }
64
65 typedef tac {
66 type string {
67 length 4..8;
68 pattern '[0-9A-F\.]*';
69 }
70 description "The typedef for tac";
71 }
72
73 typedef ent {
74 type uint32 {
75 range 0..999;
76 }
77 description "The typedef for ent";
78 }
79
80 typedef dnn {
81 type string {
82 length 1..32;
83 }
84 description "The typedef for dnn";
85 }
86
87 typedef sst {
88 type uint8 {
89 range 1..255;
90 }
91 description "The typedef for sst";
92 }
93
94 typedef sd {
95 type uint32 {
96 range 0..16777215;
97 }
98 description "The typedef for sd";
99 }
100
101 typedef qci {
102 type uint8 {
103 range 1..32;
104 }
105 description "The typedef for qci";
106 }
107
108 typedef arp {
109 type uint8 {
110 range 1..15;
111 }
112 description "The typedef for arp";
113 }
114
115 typedef pelr {
116 type int8 {
117 range 0..10;
118 }
119 description "The typedef for pelr";
120 }
121
122 typedef pdb {
123 type uint16 {
124 range 0..1000;
125 }
126 description "The typedef for pdb";
127 }
128
129 typedef priority {
130 type uint8 {
131 // priorities 201-255 are reserved for system use
132 range 0..200;
133 }
134 description "The typedef for priority";
135 }
136
137 // "TCP" or "UDP"
138 typedef protocol {
139 type string {
140 length 3;
141 pattern "TCP|UDP";
142 }
143 default "TCP";
144 description "The typedef for protocol";
145 }
146
147 // "ENABLE" | "MAINTENTANCE" | "DISABLE"
148 typedef admin-status {
149 type string {
150 length 0..16;
151 pattern "ENABLE|MAINTENANCE|DISABLE";
152 }
153 default "ENABLE";
154 description "The typedef for admin-status";
155 }
156
157 typedef behavior {
158 type string {
159 length 0..20;
160 pattern "DENY-ALL|ALLOW-ALL|ALLOW-PUBLIC";
161 }
162 description "The typedef for behavior";
163 }
164
165 typedef mtu {
166 type inet:port-number;
167 default 1492;
168 description "The typedef for mtu";
169 }
170
171 typedef description {
172 type string {
173 length 1..1024;
174 }
175 description "The typedef for description";
176 }
Sean Condon9f7966e2022-02-03 10:55:06 +0000177
178 grouping desc-display-name {
179 description "reusable leafs for description and display-name";
180 leaf display-name {
181 type string {
182 length 1..80;
183 }
184 description "display name to use in GUI or CLI";
185 }
186
187 leaf description {
188 type description;
189 description "long description field";
190 }
191 }
Scott Bakeree0a68f2022-02-07 16:35:43 -0800192
193 typedef ipv4-subnet {
194 type string {
195 pattern
196 '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
197 + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
198 + '(/([0-9]|[1-2][0-9]|3[0-2]))';
199 }
200 description "IPv4 network in CIDR notation";
201 }
202
203 typedef host-or-network {
204 type union {
205 type inet:host;
206 type ipv4-subnet;
207 }
208 description "hostname, ip-address, or network";
209 }
Scott Bakerfdbad762022-01-03 16:00:45 -0800210}
Scott Bakeree0a68f2022-02-07 16:35:43 -0800211