| module cord-subscriber { |
| |
| namespace "urn:onlab:cord:subscriber"; |
| prefix csub; |
| yang-version 1.1; |
| |
| organization |
| "Open Networking Lab (CORD) / Corenova Technologies"; |
| |
| contact |
| "Larry Peterson <llp@onlab.us> |
| Peter K. Lee <peter@corenova.com>"; |
| |
| description |
| "This module contains CORD Subscriber model representing its |
| relationship to features, services, and devices. |
| |
| Copyright (c) 2016 ON.LAB and the persons identified as authors of |
| the code. All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or without |
| modification, is permitted pursuant to, and subject to the license |
| terms of the Apache License, Version 2.0 which accompanies this |
| distribution, and is available at |
| (http://www.apache.org/licenses/LICENSE-2.0)."; |
| |
| revision 2016-07-14 { |
| description "Initial revision."; |
| } |
| |
| import xos-core { prefix xos; } |
| import cord-device { prefix dev; } |
| import ietf-yang-types { prefix yang; } |
| import corenova-node { prefix node; } |
| |
| identity cord-subscriber { base xos:subscriber; } |
| |
| grouping subscriber { |
| uses xos:subscriber { |
| refine kind { default cord-subscriber; } |
| } |
| leaf status { |
| type enumeration { |
| enum "enabled" { |
| description "Enabled"; |
| value 1; |
| } |
| enum "suspended" { |
| description "Suspended"; |
| } |
| enum "delinquent" { |
| description "Delinquent"; |
| } |
| enum "violation" { |
| description "Copyright Violation"; |
| } |
| } |
| default enabled; |
| } |
| leaf demo { type boolean; default false; } |
| leaf uplink-speed { |
| type dev:bandwidth; |
| default 1000000000; |
| } |
| leaf downlink-speed { |
| type dev:bandwidth; |
| default 1000000000; |
| } |
| |
| container services { |
| description |
| "Contains various services available to the subscriber"; |
| |
| container cdn { |
| leaf enabled { type boolean; default false; } |
| } |
| container firewall { |
| leaf enabled { type boolean; default false; } |
| leaf-list rules { |
| // should qualify further |
| type string; |
| } |
| } |
| container url-filter { |
| leaf enabled { type boolean; default false; } |
| leaf level { |
| type enumeration { |
| enum "PG"; |
| // other types of level... |
| } |
| } |
| leaf-list rules { |
| // should qualify further |
| type string; |
| } |
| } |
| container uverse { |
| leaf enabled { type boolean; default false; } |
| } |
| } |
| |
| list device { |
| uses dev:device; |
| key "mac"; |
| |
| action create { |
| input { uses dev:device; } |
| } |
| action update { |
| input { uses dev:device; } |
| } |
| action delete; |
| } |
| } |
| |
| grouping subscriber-controller { |
| uses subscriber; |
| |
| node:view "features identity related"; |
| |
| container features { |
| node:link cdn { path "../services/cdn/enabled"; } |
| node:link uplink-speed { path "../uplink-speed"; } |
| node:link downlink-speed { path "../downlink-speed"; } |
| node:link uverse { path "../services/uverse/enabled"; } |
| node:link status { path "../status"; } |
| |
| action update { |
| description "when invoked, updates the features container (PUT)"; |
| } |
| } |
| |
| container identity { |
| node:link account-num { path "../service-specific-id"; } |
| node:link name { path "../name"; } |
| |
| action update { |
| description "when invoked, updates the identity container (PUT)"; |
| } |
| } |
| |
| container related { |
| config false; |
| description |
| "placeholder where other services can augment for info they want to |
| share (READ-ONLY)"; |
| } |
| } |
| } |