bbf-ghn

An experimental YANG module supporting Vector of Profiles for G.hn lines. Copyright (c) 2018, Broadband Forum Redistribution a...

  • Version: 2018-07-13

    bbf-ghn@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.";
        }
    
        // groupings
        grouping scheduling-parameters-group {
          description
            "Scheduling configuration parameters.";
          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";
    
          }
        }  // grouping scheduling-parameters-group
    
        grouping scheduling-profile-group {
          description
            "Defines the contents of a scheduling Profile.";
          uses scheduling-parameters-group;
        }  // grouping scheduling-profile-group
    
        grouping security-parameters {
          description
            "Security configuration parameters.";
          reference
            "ITU-T G.9961 clause 9";
    
          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.";
          }
        }  // grouping security-parameters
    
        grouping security-profile-group {
          description
            "Defines the parameters contained in a security profile.";
          uses security-parameters;
        }  // grouping security-profile-group
    
        grouping dba-parameters {
          description
            "Dynamic Bandwidth Allocation (DBA) configuration parameters.";
          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.";
          }
        }  // grouping dba-parameters
    
        grouping dba-profile-group {
          description
            "Defines the parameters contained in a DBA profile.";
          uses dba-parameters;
        }  // grouping dba-profile-group
    
        grouping domain-id-parameters {
          description
            "Domain identification configuration parameters.";
          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";
    
          }
        }  // grouping domain-id-parameters
    
        grouping domain-id-profile-group {
          description
            "Defines the parameters contained in a domain-id profile.";
          uses domain-id-parameters;
        }  // grouping domain-id-profile-group
    
        grouping node-id-parameters {
          description
            "Node identification configuration parameters.";
          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";
    
          }
        }  // grouping node-id-parameters
    
        grouping node-id-profile-group {
          description
            "Defines the parameters contained in a node-id profile.";
          uses node-id-parameters;
        }  // grouping node-id-profile-group
    
        grouping line-spectrum-parameters {
          description
            "Line-spectrum configuration parameters.";
          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
        }  // grouping line-spectrum-parameters
    
        grouping line-spectrum-profile-group {
          description
            "Defines the parameters contained in a line spectrum profile.";
          uses line-spectrum-parameters;
        }  // grouping line-spectrum-profile-group
    
        grouping channel-estimation-parameters {
          description
            "Channel estimation configuration parameters.";
          reference
            "ITU-T G.9961 clause 8.11";
    
          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";
    
          }
        }  // grouping channel-estimation-parameters
    
        grouping channel-estimation-profile-group {
          description
            "Defines the parameters contained in a channel
    estimation profile.";
          uses channel-estimation-parameters;
        }  // grouping channel-estimation-profile-group
    
        grouping profile-domain-vector {
          description
            "A vector of profiles used to configure the domain.";
          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.";
          }
        }  // grouping profile-domain-vector
    
        grouping profile-node-vector {
          description
            "A vector of profiles used to configure the node.";
          leaf node-id-profile {
            type node-id-profile-ref;
            mandatory true;
            description
              "References a node id profile to be
    used to configure the node.";
          }
        }  // grouping profile-node-vector
    
        grouping profile-link-vector {
          description
            "A vector of profiles used to configure the link.";
          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.";
          }
        }  // grouping profile-link-vector
    
        grouping performance-history-interval-parameters {
          description
            "Defines common parameters required when defining history
    interval performance counters.";
          leaf invalid-data-flag {
            type boolean;
            description
              "Reports the validity of the corresponding
    Performance Monitoring (PM) data.";
            reference
              "ITU-T G.997.2 clause 7.7.2 and 7.8.2.";
    
          }
    
          leaf time-stamp {
            type yang:date-and-time;
            description
              "Reports the start date/time for this interval.";
            reference
              "ITU-T G.997.2 clause 7.7.3 and 7.7.3.";
    
          }
        }  // grouping performance-history-interval-parameters
    
        grouping performance-history-measured-time {
          description
            "Reports the measured time for a given interval.";
          leaf measured-time {
            type uint32;
            description
              "Reports the amount of time, measured in seconds,
    that statistics for this interval have been counted.";
            reference
              "ITU-T G.997.2 clause 7.7.1 and 7.8.1.";
    
          }
        }  // grouping performance-history-measured-time
    
        grouping performance-history-15min-interval-parameters {
          description
            "Defines common parameters required when defining 15 minute
    interval history performance counters.";
          uses performance-history-measured-time;
    
          uses performance-history-interval-parameters;
        }  // grouping performance-history-15min-interval-parameters
    
        grouping performance-history-24hr-interval-parameters {
          description
            "Defines common parameters required when defining 24 hour
    interval history performance counters.";
          uses performance-history-measured-time;
    
          uses performance-history-interval-parameters;
        }  // grouping performance-history-24hr-interval-parameters
    
        grouping performance-15min-history-parameters {
          description
            "Defines common parameters required when defining 15 minute
    history performance counters.";
          leaf number-of-intervals {
            type performance-15min-interval;
            description
              "The total number of 15 minute PM intervals for which data
    was collected. ";
          }
    
          leaf non-valid-intervals {
            type performance-15min-interval;
            description
              "The number of 15 minute PM intervals for which the data
    is considered to be invalid or incomplete.";
          }
        }  // grouping performance-15min-history-parameters
    
        grouping performance-24hr-history-parameters {
          description
            "Defines common parameters required when defining 24 hour
    history performance counters.";
          leaf number-of-intervals {
            type performance-24hr-interval;
            description
              "The total number of 24 hour PM intervals for which data
    was collected.";
          }
    
          leaf non-valid-intervals {
            type performance-24hr-interval;
            description
              "The number of 24hour PM intervals for which the data
    is considered to be invalid or incomplete.";
          }
        }  // grouping performance-24hr-history-parameters
    
        grouping domain-status-parameters {
          description
            "Domain performance parameters.";
          container domain-scheduling {
            description
              "Information related to the domain scheduling.";
            leaf mac-cycle-duration {
              type cycle-duration;
              description
                "Medium Access Control (MAC) cycle duration.";
              reference
                "ITU-T G.9961 clause 8.2.2";
    
            }
          }  // container domain-scheduling
    
          container domain-information {
            description
              "Information related to the domain identification
           and characteristics.";
            leaf domain-name {
              type domain-name;
              description
                "The Domain name of the G.hn network the G.hn interface.
    is connected to.";
              reference
                "ITU-T G.9961 clause 8.8.5.2";
    
            }
    
            leaf dni {
              type dni;
              description
                "The Domain Name Identifier (DNI) of the G.hn
    network the G.hn interface is connected to.";
              reference
                "ITU-T G.9961 clause 8.6.8.2.1";
    
            }
    
            leaf minimum-supported-bandplan {
              type bandplan;
              description
                "Minimum bandplan to be able to enter the domain.";
              reference
                "ITU-T G.9961 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";
    
            }
          }  // container domain-information
    
          container domain-topology {
            description
              "Information related to the topology of the domain.";
            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";
    
            }
          }  // container domain-topology
    
          container security {
            description
              "Container including all security-related status
    information.";
            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-list target-domains {
              type bbf-yang:string-ascii64;
              description
                "A list of target domain names for network admission.";
            }
          }  // container security
        }  // grouping domain-status-parameters
    
        grouping domain-state-group {
          description
            "Grouping of the domain state categories of parameters.";
          container status {
            description
              "Status state data for domain-wide parameters of the
    G.hn network connected through the G.hn interface.";
            uses domain-status-parameters;
          }  // container status
        }  // grouping domain-state-group
    
        grouping local-node-info-parameters {
          description
            "Local node identification";
          leaf local-node-mac {
            type yang:mac-address;
            description
              "Medium Access Control (MAC) address of the local node.";
          }
        }  // grouping local-node-info-parameters
    
        grouping link-status-parameters {
          description "Link status parameters.";
          container rates {
            description
              "Status information related to data rates.";
            leaf maximum-bit-rate {
              type bbf-yang:data-rate32-or-undetermined;
              description
                "The maximum physical (PHY) bit rate supported by this link
    under ideal conditions.";
              reference
                "ITU-T G.9961 Note 1 of Table 8-48";
    
            }
    
            leaf out-estimated-phy-rate {
              type bbf-yang:data-rate32-or-undetermined;
              description
                "The estimated Transmission PHY bit rate supported by this
    link.";
              reference
                "ITU-T G.9961 Note 1 of Table 8-48";
    
            }
    
            leaf in-estimated-phy-rate {
              type bbf-yang:data-rate32-or-undetermined;
              description
                "The estimated Transmission PHY bit rate supported by this
    link.";
              reference
                "ITU-T G.9961 Note 1 of Table 8-48";
    
            }
    
            leaf out-phy-rate {
              type bbf-yang:data-rate32-or-undetermined;
              description
                "The actual transmission PHY bit rate for this link.";
              reference
                "ITU-T G.9961 Note 1 of Table 8-48";
    
            }
    
            leaf in-phy-rate {
              type bbf-yang:data-rate32-or-undetermined;
              description
                "The actual received PHY bit rate for this link.";
              reference
                "ITU-T G.9961 Note 1 of Table 8-48";
    
            }
          }  // container rates
    
          container channel {
            description
              "Status information related to the channel conditions.";
            leaf sub-carrier-grouping {
              type sub-carrier-grouping;
              description
                "Group ID selected for reporting channel
    estimation information.";
            }
    
            list port {
              key "port-number";
              description
                "List of channel-related information by port (Physical
    connection to the medium.";
              reference
                "ITU-T G.9963 definition 3.2.8";
    
              leaf port-number {
                type uint8 {
                  range "1..2";
                }
                must
                  "(. = 1 and ../../../../../node/status/medium-access-type = "mimo")or(. = 2 and ../../../../../node/status/medium-access-type = "siso")";
                description
                  "Port number for the reported channel.";
              }
    
              leaf tidx-min {
                type tid;
                description
                  "Lowest sub-carrier index to which non-zero bits are
    assigned.";
                reference
                  "ITU-T G.9961 clause 8.11";
    
              }
    
              leaf tidx-max {
                type tid;
                description
                  "Highest sub-carrier index to which non-zero bits are
    assigned.";
                reference
                  "ITU-T G.9961 clause 8.11";
    
              }
    
              leaf bpc {
                type bpc;
                description
                  "Bit per carrier assigned for a group of carriers
    as described in Table 8-93 of ITU-T G.9961.";
                reference
                  "ITU-T G.9961 clause 8.11";
    
              }
            }  // list port
    
            container spectrum {
              description
                "Status information related to the spectrum used
    for this link.";
              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
            }  // container spectrum
          }  // container channel
        }  // grouping link-status-parameters
    
        grouping link-state-group {
          description
            "Grouping of the link state categories of parameters.";
          container status {
            description
              "Status state data for link-wide parameters of the
    G.hn network connected through the G.hn interface.";
            uses link-status-parameters;
          }  // container status
        }  // grouping link-state-group
    
        grouping node-performance-parameters {
          description
            "Defines the performance parameters applicable to nodes
    of G.hn domains.";
          leaf initializations {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of the full initialization of the node.";
          }
    
          leaf master-domain-losses {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Number of domain master losses.";
            reference
              "ITU-T G.9961 clause 8.3.1.2";
    
          }
    
          leaf maps-lost {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Number of Medium Access Plan (MAP) frames not
    received by the node.";
            reference
              "ITU-T G.9961 clause 8.3.1.2";
    
          }
    
          leaf registrations {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Number of registrations into a G.hn domain
    performed by the node.";
            reference
              "ITU-T G.9961 clause 8.6.1";
    
          }
    
          leaf re-registrations {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Number of re-registrations into a G.hn domain
    performed by the node.";
            reference
              "ITU-T G.9961 clause 8.6.1.1.2";
    
          }
    
          leaf transmission-queue-overflow {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Number of overflows in the transmission queues.";
          }
        }  // grouping node-performance-parameters
    
        grouping node-performance-15min-parameters {
          description
            "Defines the 15 minute performance parameters applicable only
    to the G.hn nodes.";
        }  // grouping node-performance-15min-parameters
    
        grouping node-performance-24hr-parameters {
          description
            "Defines the 24 hour performance parameters applicable only
    to the G.hn nodes.";
        }  // grouping node-performance-24hr-parameters
    
        grouping node-performance {
          description
            "Defines the parameters required for performance
    management of G.hn nodes.";
          container performance {
            description
              "Performance parameters.";
            container intervals-15min {
              description
                "15 minute interval performance history.";
              container current {
                description
                  "Contains the counts that are currently accumulating.";
                uses performance-history-measured-time;
    
                uses node-performance-parameters;
    
                uses node-performance-15min-parameters;
              }  // container current
    
              uses performance-15min-history-parameters;
    
              list history {
                key "interval-number";
                max-elements 96;
                description
                  "A history of 15 minute intervals.";
                leaf interval-number {
                  type performance-15min-history-interval;
                  description
                    "The number of the interval relative to the current
    interval.";
                }
    
                uses performance-history-15min-interval-parameters;
    
                uses node-performance-parameters;
    
                uses node-performance-15min-parameters;
              }  // list history
            }  // container intervals-15min
    
            container intervals-24hr {
              if-feature performance-24hr;
              description
                "24 hour interval performance history.";
              container current {
                description
                  "Contains the counts that are currently accumulating.";
                uses performance-history-measured-time;
    
                uses node-performance-parameters;
    
                uses node-performance-24hr-parameters;
              }  // container current
    
              uses performance-24hr-history-parameters;
    
              list history {
                key "interval-number";
                max-elements 7;
                description
                  "A history of 24 hour intervals.";
                leaf interval-number {
                  type performance-24hr-history-interval;
                  description
                    "The number of the interval relative to the current
    interval.";
                }
    
                uses performance-history-24hr-interval-parameters;
    
                uses node-performance-parameters;
    
                uses node-performance-24hr-parameters;
              }  // list history
            }  // container intervals-24hr
          }  // container performance
        }  // grouping node-performance
    
        grouping node-inventory-parameters {
          description "Inventory parameters.";
          leaf certified-vendor-id {
            type bbf-yang:string-ascii64;
            description
              "Certification number of the interface.
    It includes the identification of the vendor
    of the system integrating the G.hn interface.";
            reference
              "www.homegridforum.org";
    
          }
    
          leaf certification-version {
            type bbf-yang:string-ascii64;
            description
              "HomeGrid forum G.hn certification version.";
            reference
              "www.homegridforum.org";
    
          }
    
          leaf self-test-passed {
            type boolean;
            description
              "Indicates the result of the self test result.";
          }
    
          leaf system-serial-number {
            type bbf-yang:string-ascii64;
            description
              "Serial number of the system including
    the G.hn interface.";
          }
    
          leaf node-mac-address {
            type yang:mac-address;
            description
              "The MAC Address of the interface, denoted as
    node MAC address or Registration Identifier
    (REGID) in G.9961.";
            reference
              "ITU-T G.9961 clause 8.6.1";
    
          }
    
          leaf software-version {
            type bbf-yang:string-ascii64;
            description
              "Software version of the G.hn interface node.";
          }
    
          leaf hardware-version {
            type bbf-yang:string-ascii64;
            description
              "Hardware version of the G.hn interface node.";
          }
    
          leaf manufacturer-oui {
            type oui;
            description
              "Organizationally Unique Identifier (OUI) of the manufacturer
    of the G.hn interface node.";
          }
    
          leaf model-name {
            type bbf-yang:string-ascii64;
            description
              "Model name of the G.hn interface corresponding to this
    node.";
          }
        }  // grouping node-inventory-parameters
    
        grouping forced-resignation-event-group {
          description
            "Event information including time and cause.";
          leaf event-time {
            type yang:date-and-time;
            description
              "Time of the last event.";
          }
    
          leaf event-cause {
            type forced-resignation-cause;
            description
              "Cause of the last forced resignation of the node.";
          }
        }  // grouping forced-resignation-event-group
    
        grouping unsuccessful-registration-event-group {
          description
            "Event information including time and cause.";
          leaf event-time {
            type yang:date-and-time;
            description
              "Time of the last event.";
          }
    
          leaf event-cause {
            type unsuccessful-registration-cause;
            description
              "Cause of the last unsuccessful registration of the node.";
          }
        }  // grouping unsuccessful-registration-event-group
    
        grouping mac-table-entry {
          description
            "Entry in a table of Address Association Table (AAT)
    The table can be locat (LAAT) or Remote (RAAT).";
          leaf mac-entry {
            type yang:mac-address;
            description
              "MAC Address stored in the Address Association Table (AAT)
    	 table.";
          }
    
          leaf mac-type {
            type mac-address;
            description
              "Type of MAC Address stored in the AAT table.";
          }
        }  // grouping mac-table-entry
    
        grouping aat-table-group {
          description
            "Grouping including a list of Medium Access Control (MAC)
    creating a remote ot local G.hn Address Association Table.";
          list laat {
            key "mac-entry";
            description
              "Local Address Association Table (LAAT).";
            reference
              "ITU-T G.9961 clause 8.5.3";
    
            uses mac-table-entry;
          }  // list laat
    
          list raat {
            key "mac-entry";
            description
              "Local Address Association Table (RAAT).";
            reference
              "ITU-T G.9961 clause 8.5.3";
    
            uses mac-table-entry;
          }  // list raat
        }  // grouping aat-table-group
    
        grouping node-status-parameters {
          description "Node status parameters.";
          leaf is-dm {
            type boolean;
            description
              "True if the node is a Domain Master (DM).
    False if it is an End Point (EP).";
            reference
              "ITU-T G.9960 clauses 5.1.2.1 and 5.1.2.2";
    
          }
    
          leaf device-id {
            type device-id;
            description
              "The DeviceID of the node.";
            reference
              "ITU-T G.9961 clause 8.7.1.1";
    
          }
    
          leaf dm-capable {
            type boolean;
            description
              "True if the node is capable of being DM.
    False if it is not.";
            reference
              "ITU-T G.9960 clauses 5.1.2.1 and 5.1.2.2";
    
          }
    
          leaf sc-capable {
            type boolean;
            description
              "True if the node is capable of being Security
    Controller (SC). False if it is not.";
            reference
              "ITU-T G.9961 clause 9";
    
          }
    
          leaf bandplan {
            type bandplan;
            description
              "Bandplan used by the node operating
    in the G.hn domain.";
            reference
              "ITU-T G.9960 clause 6";
    
          }
    
          leaf is-sc {
            type boolean;
            description
              "True if the node is a SC. False if it is an EP.";
            reference
              "ITU-T G.9961 clause 9";
    
          }
    
          leaf medium {
            type medium;
            description
              "Medium type of the interface.";
            reference
              "ITU-T G.9960 and G.9964";
    
          }
    
          leaf medium-access-type {
            type medium-access;
            description
              "Medium access used by this interface.";
            reference
              "ITU-T G.9963";
    
          }
    
          leaf up-time {
            type last-event;
            description
              "Number of seconds since the last boot of the interface.";
          }
    
          leaf boot-count {
            type event-counter32-or-unknown;
            description
              "Number of boots of the node.";
          }
    
          container last-forced-resignation {
            description
              "Last forced resignation event information.";
            uses forced-resignation-event-group;
          }  // container last-forced-resignation
    
          container last-unsuccessful-registration {
            description
              "Last unsuccessful registration event information.";
            uses unsuccessful-registration-event-group;
          }  // container last-unsuccessful-registration
    
          container aat {
            description
              "Unicast routing table - Address Association Table (AAT).";
            reference
              "ITU-T G.9961 clause 8.6.4.1.1.1";
    
            uses aat-table-group;
          }  // container aat
        }  // grouping node-status-parameters
    
        grouping node-state-group {
          description
            "Grouping of the node state categories of parameters.";
          container status {
            description
              "Status state data for node-wide parameters of the
    G.hn network connected through the G.hn interface.";
            uses node-status-parameters;
          }  // container status
    
          container inventory {
            description
              "Inventory data related to the G.hn nodes of the
    G.hn network connected through the G.hn interface.";
            uses node-inventory-parameters;
          }  // container inventory
        }  // grouping node-state-group
    
        grouping link-performance-parameters {
          description
            "Defines the performance parameters applicable to all nodes
    of G.hn domains.";
          leaf initializations {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of the full initialization of this link.";
          }
    
          leaf out-management-bytes {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of management bytes sent.";
          }
    
          leaf out-management-packets {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of management packets sent.";
          }
    
          leaf in-valid-phy-headers {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of G.hn PHY headers correctly
    received over this link.";
          }
    
          leaf in-invalid-phy-headers {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of G.hn PHY headers received
    with errors over this link.";
          }
    
          leaf in-phy-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of G.hn PHY frames received over this link.";
          }
    
          leaf out-phy-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of G.hn PHY frames transmitted
    over this link.";
          }
    
          leaf in-lpdu-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of Logical link control Protocol Data Unit)
    LPDU frames received over this link.";
          }
    
          leaf out-lpdu-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LPDU frames transmitted
    over this link.";
          }
    
          leaf out-resent-lpdu-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LPDU frames that have been
    re-transmitted over this link.";
          }
    
          leaf in-crc-errored-lpdu-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LPDU frames that have been
    received with CRC errors over this link.";
          }
    
          leaf in-llc-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of Logical Link COntrol (LLC)
    frames received over this link.";
          }
    
          leaf out-llc-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LLC frames transmitted over this link.";
          }
    
          leaf in-crc-errored-llc-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LLC frames that have been
    received with Cyclic Redundancy Check (CRC)
    errors over this link.";
          }
    
          leaf in-mic-errored-llc-frames {
            type bbf-yang:performance-counter32-or-inactive;
            description
              "Reports a count of LLC frames that have been
    received with Message Integrity Code (MIC)
    errors over this link.";
          }
        }  // grouping link-performance-parameters
    
        grouping link-performance-15min-parameters {
          description
            "Defines the 15 minute performance parameters applicable only
    to the G.hn nodes.";
        }  // grouping link-performance-15min-parameters
    
        grouping link-performance-24hr-parameters {
          description
            "Defines the 24 hour performance parameters applicable only
    to the G.hn nodes.";
        }  // grouping link-performance-24hr-parameters
    
        grouping link-performance {
          description
            "Defines the parameters required for performance
    management of G.hn nodes.";
          container performance {
            description "Performance parameters";
            container intervals-15min {
              description
                "15 minute interval performance history";
              container current {
                description
                  "Contains the counts that are currently accumulating.";
                uses performance-history-measured-time;
    
                uses link-performance-parameters;
              }  // container current
    
              uses performance-15min-history-parameters;
    
              list history {
                key "interval-number";
                max-elements 96;
                description
                  "A history of 15 minute intervals.";
                leaf interval-number {
                  type performance-15min-history-interval;
                  description
                    "The number of the interval relative to the current
    interval.";
                }
    
                uses performance-history-15min-interval-parameters;
    
                uses link-performance-parameters;
    
                uses link-performance-15min-parameters;
              }  // list history
            }  // container intervals-15min
    
            container intervals-24hr {
              if-feature performance-24hr;
              description
                "24 hour interval performance history";
              container current {
                description
                  "Contains the counts that are currently accumulating.";
                uses performance-history-measured-time;
    
                uses link-performance-parameters;
    
                uses link-performance-24hr-parameters;
              }  // container current
    
              uses performance-24hr-history-parameters;
    
              list history {
                key "interval-number";
                max-elements 7;
                description
                  "A history of 24 hour intervals.";
                leaf interval-number {
                  type performance-24hr-history-interval;
                  description
                    "The number of the interval relative to the current
    interval.";
                }
    
                uses performance-history-24hr-interval-parameters;
    
                uses link-performance-parameters;
    
                uses link-performance-24hr-parameters;
              }  // list history
            }  // container intervals-24hr
          }  // container performance
        }  // grouping link-performance
    
        // 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.";
          }  // container domain
    
          container node {
            description
              "Node-related configuration data.";
          }  // container node
    
          container link {
            description
              "Link-related configuration data.";
          }  // container link
    
          container vectors {
            description "Vectors of profiles.";
          }  // container vectors
        }  // container ghn
    
        augment /if:interfaces/if:interface {
          when "if:type = 'ianaift:ghn'" {
            description
              "Only applicable when the interface type is 'ghn'.";
          }
          description
            "Data nodes for the configuration of G.hn lines.";
          container ghn-interface {
            presence
              "If present, indicates that the interface is able to operate
    according to the appropriate ITU-T specification for G.hn
    technologies.";
            description
              "This container includes the association of the G.hn
    interface to the possible profiles described in the
    G.hn container.
      It includes
       - Domain-wide configuration (domain container)
       - Per-node configuration (node list). Each of the entries
         of the list includes configuration (node-wide and
         link-wide) for a node in the G.hn domain that is
         connected through this interface";
            container domain {
              description
                "Configuration data for the domain-wide parameters of the
    G.hn network connected through the G.hn interface.";
            }  // container domain
    
            list node {
              key "node-mac-address";
              description
                "List of nodes of the domain being configured including
    reference to profiles.";
              leaf node-mac-address {
                type yang:mac-address;
                description
                  "The Medium Access Control (MAC) Address of the
    interface, denoted as node MAC address or
    Registration Identifier (REGID) in ITU-T G.9961.";
              }
            }  // list node
          }  // container ghn-interface
        }
    
        augment /if:interfaces-state/if:interface {
          when "if:type = 'ianaift:ghn'" {
            description
              "Only applicable when the interface type is 'ghn'.";
          }
          description
            "Data nodes for the operational state of G.hn interface.";
          container ghn-interface {
            presence
              "If present, indicates that the interface is able to operate
    according to the appropriate ITU-T specification for one
    or more G.hn technologies.";
            description
              "This container includes state data for the G.hn network
    connected to thsi interface
    It includes
      - Domain-wide state data (domain container)
      - Per-node state data (node list). Each of the entries
        of the list includes configuration (node-wide and
        link-wide) for a node in the G.hn domain that is
        connected through this interface. The identity
        of the node corresponfing to ths iinterface is
        stored in local-node-info leaf";
            container domain {
              description
                "State data for the domain-wide parameters of the
    G.hn network connected through this G.hn interface.";
            }  // container domain
    
            list node {
              key "node-mac-address";
              description
                "State data for the node-wide parameters of the
    G.hn network connected through the G.hn interface.";
              leaf node-mac-address {
                type yang:mac-address;
                description
                  "The MAC Address of the interface, denoted as
    node MAC address or REGID in ITU-T G.9961.";
              }
            }  // list node
    
            container local-node-info {
              description
                "Identification information for the local G.hn node.";
            }  // container local-node-info
          }  // container ghn-interface
        }
    
        augment /bbf-ghn:ghn/bbf-ghn:domain {
          description
            "Data nodes for domain configuration
    profiles.";
          list scheduling-profile {
            key "name";
            description
              "A list of scheduling profiles.";
            leaf name {
              type string;
              description
                "A name that uniquely identifies the
    profile.";
            }
    
            uses scheduling-profile-group;
          }  // 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.";
            }
    
            uses security-profile-group;
          }  // 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.";
            }
    
            uses dba-profile-group;
          }  // 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.";
            }
    
            uses domain-id-profile-group;
          }  // list domain-id-profile
        }
    
        augment /bbf-ghn:ghn/bbf-ghn:node {
          description
            "Data nodes for scheduling configuration
    profiles.";
          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.";
            }
    
            uses node-id-profile-group;
          }  // list node-id-profile
        }
    
        augment /bbf-ghn:ghn/bbf-ghn:link {
          description
            "Data links for link configuration
    profiles.";
          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.";
            }
    
            uses line-spectrum-profile-group;
          }  // 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.";
            }
    
            uses channel-estimation-profile-group;
          }  // list channel-estimation-profile
        }
    
        augment /bbf-ghn:ghn/bbf-ghn:vectors {
          description
            "Data nodes to support configuration vectors.";
          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.";
            }
    
            uses profile-domain-vector;
          }  // 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.";
            }
    
            uses profile-node-vector;
          }  // 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.";
            }
    
            uses profile-link-vector;
          }  // list link-config-vector
        }
    
        augment /if:interfaces/if:interface/bbf-ghn:ghn-interface/bbf-ghn:domain {
          description
            "Domain-wide configuration parameters.
    Data nodes to support the assignment of a profile vector
    for domain-wide profiles.";
          choice profile-config {
            default "no-profiles-attached";
            description
              "Provides methods for direct or indirect attachment of
    the profile vector. The attachment can be:
      * A collection of profiles (direct attachment)
        that references the profiles one by one
      * A vector of profiles (indirect attachment)
        that references the profiles as a whole";
            leaf no-profiles-attached {
              type empty;
              description
                "If present, indicates that no profiles are attached
    to this domain.";
            }
    
            case direct-attachment-mode {
              uses profile-domain-vector;
            }  // case direct-attachment-mode
            leaf domain-config-vector {
              type domain-config-vector-ref;
              mandatory true;
              description
                "Assigns a Domain Configuration Vector to a G.hn
    network.";
            }
          }  // choice profile-config
        }
    
        augment /if:interfaces/if:interface/bbf-ghn:ghn-interface/bbf-ghn:node {
          description
            "Node-wide configuration parameters.
    Data nodes to support the assignment of a profile vector.
    The attachment can be:
        * A collection of profiles (direct attachment)
          that references the profiles one by one
        * A vector of profiles (indirect attachment)
          that references the profiles as a whole";
          container node {
            description
              "This container groups the configuration of the G.hn interface
    including node aspects of the configuration.";
            choice profile-config {
              default "no-profiles-attached";
              description
                "Provides methods for direct or indirect attachment of
    the profile vector.";
              leaf no-profiles-attached {
                type empty;
                description
                  "If present, indicates that no profiles are attached
    to this node.";
              }
    
              case direct-attachment-mode {
                uses profile-node-vector;
              }  // case direct-attachment-mode
              leaf node-config-vector {
                type node-config-vector-ref;
                mandatory true;
                description
                  "Assigns a node Configuration Vector to a G.hn
    network.";
              }
            }  // choice profile-config
          }  // container node
    
          list link {
            key "device-id";
            description
              "This list groups the configuration of the G.hn interface
    links.";
            leaf device-id {
              type device-id;
              description
                "The DeviceID of the G.hn interface this node is connected
    for this link.";
              reference
                "ITU-T G.9961 clause 8.7.1.1";
    
            }
    
            choice profile-config {
              default "no-profiles-attached";
              description
                "Provides methods for direct or indirect attachment of
    the profile vector.";
              leaf no-profiles-attached {
                type empty;
                description
                  "If present, indicates that no profiles are attached
    to this node.";
              }
    
              case direct-attachment-mode {
                uses profile-link-vector;
              }  // case direct-attachment-mode
              leaf link-config-vector {
                type link-config-vector-ref;
                mandatory true;
                description
                  "Assigns a node Configuration Vector to a G.hn
    network.";
              }
            }  // choice profile-config
          }  // list link
        }
    
        augment /if:interfaces-state/if:interface/bbf-ghn:ghn-interface/bbf-ghn:domain {
          description "Domain-wide state data.";
          uses domain-state-group;
        }
    
        augment /if:interfaces-state/if:interface/bbf-ghn:ghn-interface/local-node-info {
          description
            "Local node identification.";
          uses local-node-info-parameters;
        }
    
        augment /if:interfaces-state/if:interface/bbf-ghn:ghn-interface/bbf-ghn:node {
          description
            "State data provided by this G.hn interface.";
          container node {
            description
              "This container groups the node state data of the G.hn node
    configuration.";
            uses node-state-group;
          }  // container node
    
          list link {
            key "device-id";
            description
              "This list groups the transmission links the node has
    established with other nodes in the G.hn domain.";
            leaf device-id {
              type device-id;
              description
                "The device identifier (DeviceID) of the G.hn interface
    this node is connected to through this link.";
            }
    
            uses link-state-group;
          }  // list link
        }
    
        augment /if:interfaces-state/if:interface/bbf-ghn:ghn-interface/bbf-ghn:node/node {
          description
            "Data nodes for the performance status parameters of G.hn
    nodes.";
          uses node-performance;
        }
    
        augment /if:interfaces-state/if:interface/bbf-ghn:ghn-interface/bbf-ghn:node/bbf-ghn:link {
          description
            "Data nodes for the performance status parameters of
    G.hn links.";
          uses link-performance;
        }
      }  // module bbf-ghn
    

© 2023 YumaWorks, Inc. All rights reserved.