| // SPDX-FileCopyrightText: 2021 Open Networking Foundation |
| // |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| module onf-application { |
| namespace "http://opennetworking.org/enterprise/application"; |
| prefix app; |
| |
| import ietf-inet-types{ prefix ietf; } |
| import ietf-yang-types{ prefix yg; } |
| import onf-aether-types{ prefix at; } |
| import onf-enterprise{ prefix ent; } |
| import onf-traffic-class{ prefix tc; } |
| |
| organization "Open Networking Foundation."; |
| contact "Scott Baker"; |
| description |
| "An Aether Application is an application that devices may |
| connect to. Includes a set of endpoints where services are |
| provided."; |
| |
| revision "2021-09-10" { |
| description "Aether Application."; |
| reference "RFC 6087"; |
| } |
| |
| typedef application-id { |
| type yg:yang-identifier { |
| length 1..32; |
| } |
| description "The typedef for application-id"; |
| } |
| |
| container application { |
| description "The top level container"; |
| |
| list application { |
| key "id"; |
| description |
| "List of applications"; |
| |
| leaf id { |
| type application-id; |
| description "ID for this application."; |
| } |
| |
| leaf display-name { |
| type string { |
| length 1..80; |
| } |
| description "display name to use in GUI or CLI"; |
| } |
| |
| leaf description { |
| type at:description; |
| description "description of this application"; |
| } |
| |
| leaf address { |
| type ietf:host; |
| mandatory true; |
| description |
| "Address of this application. Either a hostname, an IP, or a subnet."; |
| } |
| |
| list endpoint { |
| key "endpoint-id"; |
| leaf endpoint-id { |
| type yg:yang-identifier; |
| description |
| "Id of this endpoint"; |
| } |
| leaf port-start { |
| type ietf:port-number; |
| description |
| "First port in range"; |
| } |
| leaf port-end { |
| type ietf:port-number; |
| description |
| "Last port in range"; |
| } |
| leaf protocol { |
| type at:protocol; |
| description |
| "Protocol of this endpoint"; |
| } |
| container mbr { |
| description "Maximum bitrate"; |
| leaf uplink { |
| type at:bitrate; |
| units bps; |
| description "Per-Device per-Application MBR uplink data rate in bps"; |
| } |
| |
| leaf downlink { |
| type at:bitrate; |
| units bps; |
| description "Per-Device per application MBR downlink data rate in bps"; |
| } |
| } |
| leaf traffic-class { |
| type leafref { |
| path "/tc:traffic-class/tc:traffic-class/tc:id"; |
| } |
| description |
| "Link to traffic class"; |
| } |
| leaf display-name { |
| type string { |
| length 1..80; |
| } |
| description "display name to use in GUI or CLI"; |
| } |
| description "list for endpoint"; |
| } |
| |
| leaf enterprise { |
| type leafref { |
| path "/ent:enterprise/ent:enterprise/ent:id"; |
| } |
| mandatory true; |
| description |
| "Link to enterprise that owns this Application. May be set to None if the application is global to all Enterprises."; |
| } |
| } |
| } |
| } |