An experimental YANG module supporting Vector of Profiles for G.hn lines. Copyright (c) 2018, Broadband Forum Redistribution a...
Version: 2018-07-13
module bbf-ghn { yang-version 1.1; namespace "urn:bbf:yang:bbf-ghn"; prefix bbf-ghn; include bbf-ghn-base; include bbf-ghn-pointers; include bbf-ghn-types; include bbf-ghn-perf-types; include bbf-ghn-node-profiles; include bbf-ghn-node-id-profile-body; include bbf-ghn-domain-profiles; include bbf-ghn-scheduling-profile-body; include bbf-ghn-security-profile-body; include bbf-ghn-dba-profile-body; include bbf-ghn-domain-id-profile-body; include bbf-ghn-link-profiles; include bbf-ghn-line-spectrum-profile-body; include bbf-ghn-channel-estimation-profile-body; include bbf-ghn-domain-state; include bbf-ghn-domain-status-body; include bbf-ghn-local-node-info; include bbf-ghn-local-node-info-body; include bbf-ghn-node-state; include bbf-ghn-node-inventory-body; include bbf-ghn-node-status-body; include bbf-ghn-link-state; include bbf-ghn-link-status-body; include bbf-ghn-performance-management; include bbf-ghn-node-performance-body; include bbf-ghn-link-performance-body; organization "Broadband Forum <https://www.broadband-forum.org> Common YANG Work Area"; contact "Comments or questions about this Broadband Forum YANG module should be directed to <mailto:help@broadband-forum.org>. Editor: Marcos Martinez, Marvell Semiconductor Inc. PS Leader: Joey Boyd, ADTRAN PS Leader: Ken Kerpez, ASSIA WA Director: Joey Boyd, ADTRAN WA Director: Sven Ooghe, Nokia"; description "An experimental YANG module supporting Vector of Profiles for G.hn lines. Copyright (c) 2018, Broadband Forum Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The above license is used as a license under copyright only. Please reference the Forum IPR Policy for patent licensing terms <https://www.broadband-forum.org/ipr-policy>. Any moral rights which are necessary to exercise under the above license grant are also deemed granted under this license. This version of this YANG module is part of TR-374; see the TR itself for full legal notices."; revision "2018-07-13" { description "Initial revision. * Approval Date: 2018-06-04. * Publication Date: see revision date above."; reference "TR-374: Yang Modules for Management of G.hn Systems in FTTdp Architecture <https://www.broadband-forum.org/technical /download/TR-374.pdf>"; } // features feature performance-24hr { description "Indicates that collection of 24 hour performance intervals is supported."; } // typedefs typedef cycle-duration { type union { type uint8 { range "5..100"; } type enumeration { enum "powerline" { value 0; description "Indicates that the Medium Access Control (MAC) cycle length is 2 alternate current (AC) cycles."; } } } units "milliseconds"; description "Duration in ms of the MAC cycle."; reference "ITU-T G.9961 clause 8.2.2"; } typedef domain-name { type string { pattern '[0-9a-fA-F]{32}'; } description "Domain Name of the G.hn domain connected to this interface."; reference "ITU-T G.9961 clause 8.6.1"; } typedef device-id { type uint8 { range "0..250"; } description "Device ID of a G.hn node."; reference "ITU-T G.9961 clause 8.7.1.1"; } typedef sub-carrier-grouping { type uint8 { range "1 | 2 | 4 | 8 | 16"; } description "Group ID selected for reporting the Bit Allocation Table (BAT)."; reference "ITU-T G.9960 Table 7-13"; } typedef tid { type uint16 { range "0..4095"; } description "Sub-carrier index information."; reference "ITU-T G.9961 clause 8.11"; } typedef bpc { type binary; description "A binary type where each octet represents data belonging to a sub-carrier group. The first octet represents sub-carrier group 0."; } typedef dni { type string { pattern '[0-9a-fA-F]{4}'; } description "Domain Name Identifier of the G.hn domain."; reference "ITU-T G.9961 clause 8.6.8.2.1"; } typedef oui { type yang:hex-string { length "3"; } description "Organizationally Unique Identifier (OUI)."; reference "IEEE standards association - Registration authority (http://standards.ieee.org/develop/regauth"; } typedef encryption-mode { type enumeration { enum "nn" { value 0; description "This parameter represents a Node to Node key (NN)."; } enum "nmk" { value 1; description "This parameter represents a Network Membership key (NMK)."; } enum "none" { value 2; description "No data encryption is used."; } } description "Encryption mode of the G.hn domain."; reference "ITU-T G.9961 clause 9"; } typedef bandplan { type enumeration { enum "25-mhz-pb" { value 0; description "Node operating in the 25 MHz-PB bandplan."; } enum "50-mhz-pb" { value 1; description "Node operating in the 50 MHz-PB bandplan."; } enum "100-mhz-pb" { value 2; description "Node operating in the 100 MHz-PB bandplan."; } enum "50-mhz-tb" { value 3; description "Node operating in the 50 MHz-TB bandplan."; } enum "100-mhz-tb" { value 4; description "Node operating in the 100 MHz-TB bandplan."; } enum "200-mhz-tb" { value 5; description "Node operating in the 200 MHz-TB bandplan."; } enum "50-mhz-cb" { value 6; description "Node operating in the 50 MHz-CB bandplan."; } enum "100-mhz-cb" { value 7; description "Node operating in the 100 MHz-CB bandplan."; } enum "200-mhz-cb" { value 8; description "Node operating in the 200 MHz-CB bandplan."; } enum "50-mhz-crf" { value 9; description "Node operating in the 50 MHz-CRF bandplan."; } enum "100-mhz-crf" { value 10; description "Node operating in the 100 MHz-CRF bandplan."; } } description "Valid bandplan definitions."; reference "ITU-T G.9960 clause 6"; } typedef medium { type enumeration { enum "plc" { value 0; description "Powerline-medium."; reference "ITU-T G.9964 clause 6.2"; } enum "coaxial" { value 1; description "Coaxial-medium."; reference "ITU-T G.9964 clause 6.3"; } enum "phoneline" { value 2; description "Phone-line-medium."; reference "ITU-T G.9964 clause 6.1"; } enum "pof" { value 3; description "Plastic-Optical-Fiber."; reference "ITU-T G.9960 annex F"; } } description "Medium used by this interface."; reference "ITU-T G.9960 and ITU-T G.9964"; } typedef medium-access { type enumeration { enum "siso" { value 0; description "Single-input; Single output medium access."; } enum "mimo" { value 1; description "Multiple-input; Multiple output medium access."; } } description "Medium access used by this interface."; reference "ITU-T G.9963"; } typedef last-event { type uint32; units "seconds"; description "Number of seconds That passed since the last event."; } typedef event-counter32-or-unknown { type union { type uint32; type enumeration { enum "unknown" { value 0; description "Indicates that the state of this counter is unknown."; } } } description "An event-counter32-or-unknown type represents a non-negative integer which may increase but shall never exceed a maximum value. The maximum value can not be greater than 2^32-1 (4294967295 decimal). The default value for the maximum value is 2^32-1. The value of a event-counter32-or-inactive has its maximum value whenever the information being modeled is greater than or equal to its maximum value. A special value (enum unknown) indicates that the value of this counter is unknown is not active on the line."; } typedef forced-resignation-cause { type enumeration { enum "unknown" { value 0; description "Unknown cause of forced resignation."; } enum "sc-failure" { value 1; description "Security Controller not found in the domain."; } } description "Cause of a forced resignation."; reference "ITU-T G.9961 clause 8.6.1.1.4.5"; } typedef unsuccessful-registration-cause { type enumeration { enum "unespecified" { value 0; description "No reason specified for unsuccessful registration."; } enum "insufficient-bandwidth" { value 1; description "Insufficient bandwidth resources."; } enum "invalid-parameters" { value 2; description "Invalid set of registration parameters."; } enum "invalid-regid" { value 3; description "Invalid REGID."; } enum "admission-limit-expired" { value 4; description "Admission limit expired."; } enum "domain-master-authentication" { value 5; description "Domain Master not authenticated."; } enum "invalid-bandplan" { value 6; description "Reported bandplan is outside the range indicated by the minimum and maximum bandplan allowed in the domain."; } enum "domain-master-in-t2" { value 7; description "Domain Master is in t2 interval."; } } description "Cause of an unsuccessful registration."; reference "ITU-T G.9961 clause 8.6.1.1.1"; } typedef mac-address { type enumeration { enum "regid" { value 0; description "The MAC address corresponds to a REGID of a G.hn node."; } enum "client" { value 1; description "The MAC address corresponds to a client associated to a G.hn node."; } } description "Type of MAC address."; reference "ITU-T G.9961 clause 8.1.2"; } typedef percentage-or-inactive { type union { type uint32; type enumeration { enum "inactive" { value 0; description "Indicates that this setting shall be ignored."; } } } units "%"; description "Describes a parameter that can be set as a percentage. The value inactive is used to indicate that the parameter is not used and shall be ignored."; } typedef number-of-sub-carrier-mask { type uint8 { range "0..32"; } units "masks"; description "Number of sub-carrier masks defined"; reference "ITU-T G.9961 clause 8.8.5.5."; } typedef number-of-radio-amateur-mask { type uint8 { range "0..10"; } units "masks"; description "Number of radio-amateur masks defined."; reference "ITU-T G.9961 clause 8.8.5.5"; } typedef data-rate { type uint32; units "1024 bit/second"; description "Data rate in kbps."; } typedef group-size { type uint8 { range "0..4"; } description "Group size for channel estimation."; reference "ITU-T G.9960 Table 7-13"; } typedef scheduling-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:domain/bbf-ghn:scheduling-profile/bbf-ghn:name"; } description "Used to reference a scheduling profile."; } typedef security-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:domain/bbf-ghn:security-profile/bbf-ghn:name"; } description "Used to reference a security profile."; } typedef dba-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:domain/bbf-ghn:dba-profile/bbf-ghn:name"; } description "Used to reference a DBA profile."; } typedef domain-id-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:domain/bbf-ghn:domain-id-profile/bbf-ghn:name"; } description "Used to reference a domain-id profile."; } typedef node-id-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:node/bbf-ghn:node-id-profile/bbf-ghn:name"; } description "Used to reference a node-id profile."; } typedef line-spectrum-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:link/bbf-ghn:line-spectrum-profile/bbf-ghn:name"; } description "Used to reference a line spectrum profile."; } typedef channel-estimation-profile-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:link/bbf-ghn:channel-estimation-profile/bbf-ghn:name"; } description "Used to reference a channel estimation profile."; } typedef domain-config-vector-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:vectors/bbf-ghn:domain-config-vector/bbf-ghn:name"; } description "Used to reference a domain configuration vector of profiles."; } typedef node-config-vector-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:vectors/bbf-ghn:node-config-vector/bbf-ghn:name"; } description "Used to reference a node configuration vector of profiles."; } typedef link-config-vector-ref { type leafref { path "/bbf-ghn:ghn/bbf-ghn:vectors/bbf-ghn:link-config-vector/bbf-ghn:name"; } description "Used to reference a link configuration vector of profiles."; } typedef seconds-counter-15min { type bbf-yang:performance-counter32 { range "0..900"; } description "A performance counter which counts the number of seconds an event has occurred during a 15 minute interval."; } typedef seconds-counter-24hr { type bbf-yang:performance-counter32 { range "0..86400"; } description "A performance counter which counts the number of seconds an event has occurred during a 24 hour interval."; } typedef performance-15min-interval { type uint8 { range "0..96"; } description "Defines the range of 15 minute intervals."; } typedef performance-15min-history-interval { type performance-15min-interval { range "1..96"; } description "Defines the range of 15 minute intervals and defines the position of the interval relative to the current interval where 1 is the most recent interval."; } typedef performance-24hr-interval { type uint8 { range "0..7"; } description "Defines the range of 24 hour intervals."; } typedef performance-24hr-history-interval { type performance-24hr-interval { range "1..7"; } description "Defines the range of 24 hour intervals and defines the position of the interval relative to the current interval where 1 is the most recent interval."; } // objects container ghn { description "This container includes the profiles and associated configuration parameters of the G.hn interface. It is divided in three sections: - domain: Includes all the domain-wide profiles - node: Includes all the node-wide profiles - link: Includes all the link-wide profiles"; container domain { description "Domain-related configuration data."; list scheduling-profile { key "name"; description "A list of scheduling profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf mac-cycle-duration { type cycle-duration; default "40"; description "Medium Access Control (MAC) cycle duration."; reference "ITU-T G.9961 clause 8.2.2"; } leaf split-ratio { type uint8 { range "0..100"; } units "%"; default "50"; description "Split ratio of the DS/US system. This figure represents the percentage of the time allocated to DS. The percentage of the time allocated to US is 100 minus this number."; } leaf topology-update-interval { type uint8; units "0.1s"; description "Topology update interval for the nodes of a G.hn domain"; reference "ITU-T G.9961 clause 8.8.5.8.1"; } } // list scheduling-profile list security-profile { key "name"; description "A list of security profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf encryption-enabled { type boolean; default "true"; description "Defines if the security mechanism is enabled in G.hn links or not."; reference "ITU-T G.9961 clause 9"; } leaf encryption-mode { type encryption-mode; default "nmk"; description "Defines the security mechanism followed by the G.hn link."; reference "ITU-T G.9961 clause 9.2"; } leaf mic-size { type uint8 { range "4 | 8 | 16"; } description "Defines the he selected Message Integrity Check (MIC) size used in the domain."; reference "ITU-T G.9961 clause 9.1.1.2"; } leaf-list target-domains { type bbf-yang:string-ascii64; description "A list of target domain names for network admission."; } } // list security-profile list dba-profile { key "name"; description "A list of Dynamic Bandwidth Allocation profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf split-ratio { type percentage-or-inactive; description "Split ratio between downstream and upstream directions for this prorofile. It is represented as an integer value between 0 and 100. when set to inactive, the split ratio is not used and the domain master us free to allocate resources following its own criteria."; } } // list dba-profile list domain-id-profile { key "name"; description "A list of domain-id profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf domain-name { type domain-name; description "The domain name of the domain connected through this G.hn interface."; reference "ITU-T G.9961 clause 8.8.5.2"; } leaf minimum-supported-bandplan { type bandplan; description "Minimum bandplan to be able to enter the domain."; reference "ITU-T G.9960 clause 6"; } leaf maximum-supported-bandplan { type bandplan; description "Maximum bandplan to be able to enter the domain."; reference "ITU-T G.9960 clause 6"; } } // list domain-id-profile } // container domain container node { description "Node-related configuration data."; list node-id-profile { key "name"; description "A list of node-id profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf force-dm { type boolean; description "True if the node is forced to be a domain master (DM)."; reference "ITU-T G.9960 clause 5.1.2.1"; } leaf force-sc { type boolean; description "True if the node is forced to be an SC."; reference "ITU-T G.9961 clause 9"; } leaf bandplan { type bandplan; description "Default bandplan used by the node operating in the G.hn domain."; reference "ITU-T G.9960 clause 6"; } leaf medium { type medium; default "coaxial"; description "Medium type of the interface."; reference "ITU-T G.9960 and ITU-T G.9964"; } leaf medium-access-type { type medium-access; default "siso"; description "Medium access used by this interface."; reference "ITU-T G.9963"; } } // list node-id-profile } // container node container link { description "Link-related configuration data."; list line-spectrum-profile { key "name"; description "A list of line spectrum profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } list sub-carrier-mask { key "notch-number"; description "List of sub carrier mask applied to the link."; leaf notch-number { type number-of-sub-carrier-mask; description "Notch number."; } leaf lowest-index { type tid; description "Lowest index for this sub-carrier mask."; reference "ITU-T G.9964 clause 5.1"; } leaf highest-index { type tid; description "Highest index for this sub-carrier mask."; reference "ITU-T G.9964 clause 5.1"; } } // list sub-carrier-mask list radio-amateur-mask { key "notch-number"; description "List of radio amateur mask applied to the link."; leaf notch-number { type number-of-radio-amateur-mask; description "Notch number."; } leaf lowest-index { type tid; description "Lowest index for this radio-amateur mask."; reference "ITU-T G.9964 clause 5.3"; } leaf highest-index { type tid; description "Highest index for this radio-amateur mask."; reference "ITU-T G.9964 clause 5.3"; } } // list radio-amateur-mask } // list line-spectrum-profile list channel-estimation-profile { key "name"; description "A list of channel-estimation profiles."; leaf name { type string; description "A name that uniquely identifies the profile."; } leaf minimum-grouping-size { type group-size; description "Minimum grouping to be used during channel estimation process."; reference "ITU-T G.9961 clause 8.11"; } } // list channel-estimation-profile } // container link container vectors { description "Vectors of profiles."; list domain-config-vector { key "name"; description "A list of domain configuration vectors aka vector of profiles (VoP)."; leaf name { type bbf-yang-types:string-ascii64; description "Uniquely identifies the line configuration vector."; } leaf scheduling-profile { type scheduling-profile-ref; mandatory true; description "References a time division scheduling profile to be used to configure the line."; } leaf security-profile { type security-profile-ref; mandatory true; description "References a security profile to be used to configure the line."; } leaf dba-profile { type dba-profile-ref; mandatory true; description "References a Dynamic Bandwidth Allocation (DBA) profile to be used to configure the line."; } } // list domain-config-vector list node-config-vector { key "name"; description "A list of node configuration vectors aka vector of profiles (VoP)."; leaf name { type bbf-yang-types:string-ascii64; description "Uniquely identifies the node configuration vector."; } leaf node-id-profile { type node-id-profile-ref; mandatory true; description "References a node id profile to be used to configure the node."; } } // list node-config-vector list link-config-vector { key "name"; description "A list of link configuration vectors aka vector of profiles (VoP)."; leaf name { type bbf-yang-types:string-ascii64; description "Uniquely identifies the node configuration vector."; } leaf line-spectrum-profile { type line-spectrum-profile-ref; mandatory true; description "References a line spectrum profile to be used to configure the line."; } leaf channel-estimation-profile { type channel-estimation-profile-ref; mandatory true; description "References a channel estimation profile to be used to configure the line."; } } // list link-config-vector } // container vectors } // container ghn } // module bbf-ghn
© 2023 YumaWorks, Inc. All rights reserved.