| // SPDX-FileCopyrightText: 2021 Open Networking Foundation |
| // |
| // SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0 |
| |
| module aether-subscriber { |
| namespace "http://opennetworking.org/aether/subscriber"; |
| prefix sub; |
| |
| import apn-profile{ prefix apn; } |
| import qos-profile{ prefix qos; } |
| import up-profile{ prefix up; } |
| import access-profile{ prefix ap; } |
| import security-profile{ prefix sec; } |
| import enterprise{ prefix ent; } |
| import ietf-yang-types{ prefix ietf; } |
| |
| organization "Open Networking Foundation."; |
| contact "Scott Baker"; |
| description "To generate JSON from this use command |
| pyang -f jtoxx test1.yang | python3 -m json.tool > test1.json |
| Copied from YangUIComponents project"; |
| |
| revision "2020-10-22" { |
| description "An Aether Subscriber"; |
| reference "RFC 6087"; |
| } |
| |
| typedef mcc { |
| type uint32 { |
| range 0..999; |
| } |
| description "The typedef for mcc"; |
| } |
| |
| typedef mnc { |
| type uint32 { |
| range 0..999; |
| } |
| description "The typedef for mnc"; |
| } |
| |
| typedef tac { |
| type uint32 { |
| range 0..99999999; |
| } |
| description "The typedef for tac"; |
| } |
| |
| container subscriber { |
| description "The top level container"; |
| |
| list ue { |
| key "id"; |
| description |
| "List of subscriber devices"; |
| |
| leaf id { |
| type ietf:uuid; |
| description "identifier for this subscriber, typically a UUID"; |
| } |
| |
| leaf display-name { |
| type string { |
| length 1..80; |
| } |
| description "display name to use in GUI or CLI"; |
| } |
| |
| choice imsi { |
| case wildcard { |
| leaf imsi-wildcard { |
| type string { |
| length 1..15; |
| } |
| description "leaf for imsi-wildcard"; |
| } |
| } |
| case range { |
| leaf imsi-range-from { |
| type uint64; |
| description "leaf for imsi-range-from"; |
| } |
| leaf imsi-range-to { |
| type uint64; |
| description "leaf for imsi-range-to"; |
| } |
| } |
| description "The choice for imsi"; |
| } |
| |
| container serving-plmn { |
| leaf mcc { |
| type mcc; |
| description "mobile country code"; |
| } |
| leaf mnc { |
| type mnc; |
| description "mobile network code"; |
| } |
| leaf tac { |
| type tac; |
| description "type allocation code"; |
| } |
| description "The container for serving-plmn"; |
| } |
| |
| leaf requested-apn { |
| type string { |
| length 0..31; |
| } |
| description "requested access point name"; |
| } |
| |
| leaf priority { |
| type uint32 { |
| range 0..1000; |
| } |
| default 0; |
| description |
| "Priority for this subscriber range"; |
| } |
| |
| leaf enabled { |
| type boolean; |
| default false; |
| description |
| "Enable or disable this ue"; |
| } |
| |
| leaf enterprise { |
| type leafref { |
| path "/ent:enterprise/ent:enterprise/ent:id"; |
| } |
| description |
| "Link to enterprise that owns this UE range"; |
| } |
| |
| container profiles { |
| leaf apn-profile { |
| type leafref { |
| path "/apn:apn-profile/apn:apn-profile/apn:id"; |
| } |
| description |
| "Link to apn profile"; |
| } |
| leaf up-profile { |
| type leafref { |
| path "/up:up-profile/up:up-profile/up:id"; |
| } |
| description |
| "Link to user plane profile"; |
| } |
| leaf qos-profile { |
| type leafref { |
| path "/qos:qos-profile/qos:qos-profile/qos:id"; |
| } |
| description |
| "Link to qos profile"; |
| } |
| list access-profile { |
| key "access-profile"; |
| leaf access-profile { |
| type leafref { |
| path "/ap:access-profile/ap:access-profile/ap:id"; |
| } |
| description |
| "Link to access profile"; |
| } |
| leaf allowed { |
| type boolean; |
| default true; |
| description |
| "Allow or disallow this ue to use this access profile"; |
| } |
| description "The list for access-profile"; |
| } |
| leaf security-profile { |
| type leafref { |
| path "/sec:security-profile/sec:security-profile/sec:id"; |
| } |
| description |
| "Link to security profile"; |
| } |
| description "The container for profiles"; |
| } |
| } |
| } |
| } |