blob: a1c71a94095d30079db200632a700726f62b5c6e [file] [log] [blame]
// SPDX-FileCopyrightText: 2021 Open Networking Foundation
//
// SPDX-License-Identifier: Apache-2.0
module onf-aether-types {
namespace "http://opennetworking.org/aether/aether-types";
prefix at;
import ietf-inet-types { prefix inet; }
organization "Open Networking Foundation.";
contact "Scott Baker";
description "A set of base types for aether modeling.";
revision "2021-09-10" {
description "Aether Base Types";
reference "RFC 6087";
}
typedef imsi {
type uint64 {
}
description "International Mobile Subscriber Identity";
}
typedef imei {
type uint64 {
}
description "International Mobile Equipment Identity";
}
typedef iccid {
type uint64 {
}
description "Integrated Circuit Card ID";
}
typedef bitrate {
type uint64 {
}
description "The typedef for bitrate";
}
typedef burst {
type uint32 {
}
default 625000;
description "The typedef for burst";
}
typedef mcc {
type string {
pattern '[0-9]{3}';
}
description "The typedef for mcc";
}
typedef mnc {
type string {
pattern '[0-9]{2,3}';
}
description "The typedef for mnc";
}
typedef tac {
type string {
length 4..8;
pattern '[0-9A-F\.]*';
}
description "The typedef for tac";
}
typedef ent {
type uint32 {
range 0..999;
}
description "The typedef for ent";
}
typedef dnn {
type string {
length 1..32;
}
description "The typedef for dnn";
}
typedef sst {
type uint8 {
range 1..255;
}
description "The typedef for sst";
}
typedef sd {
type uint32 {
range 0..16777215;
}
description "The typedef for sd";
}
typedef qci {
type uint8 {
range 1..32;
}
description "The typedef for qci";
}
typedef arp {
type uint8 {
range 1..15;
}
description "The typedef for arp";
}
typedef pelr {
type int8 {
range 0..10;
}
description "The typedef for pelr";
}
typedef pdb {
type uint16 {
range 0..1000;
}
description "The typedef for pdb";
}
typedef priority {
type uint8 {
// priorities 201-255 are reserved for system use
range 0..200;
}
description "The typedef for priority";
}
// "TCP" or "UDP"
typedef protocol {
type string {
length 3;
pattern "TCP|UDP";
}
default "TCP";
description "The typedef for protocol";
}
// "ENABLE" | "MAINTENTANCE" | "DISABLE"
typedef admin-status {
type string {
length 0..16;
pattern "ENABLE|MAINTENANCE|DISABLE";
}
default "ENABLE";
description "The typedef for admin-status";
}
typedef behavior {
type string {
length 0..20;
pattern "DENY-ALL|ALLOW-ALL|ALLOW-PUBLIC";
}
description "The typedef for behavior";
}
typedef mtu {
type inet:port-number;
default 1492;
description "The typedef for mtu";
}
typedef description {
type string {
length 1..1024;
}
description "The typedef for description";
}
grouping desc-display-name {
description "reusable leafs for description and display-name";
leaf display-name {
type string {
length 1..80;
}
description "display name to use in GUI or CLI";
}
leaf description {
type description;
description "long description field";
}
}
typedef ipv4-subnet {
type string {
pattern
'(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+ '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+ '(/([0-9]|[1-2][0-9]|3[0-2]))';
}
description "IPv4 network in CIDR notation";
}
typedef host-or-network {
type union {
type inet:host;
type ipv4-subnet;
}
description "hostname, ip-address, or network";
}
}