netconfcentral logo

bbf-fast@2020-01-17



  module bbf-fast {

    yang-version 1.1;

    namespace "urn:bbf:yang:bbf-fast";

    prefix bbf-fast;

    include bbf-fast-base;
    include bbf-fast-pointers;
    include bbf-fast-perf-types;
    include bbf-fast-quality-profiles;
    include bbf-fast-fast-rate-adaptation-profile-body;
    include bbf-fast-noise-margin-profile-body;
    include bbf-fast-fast-retrain-policy-profile-body;
    include bbf-fast-retransmission-profile-body;
    include bbf-fast-vectoring-profile-body;
    include bbf-fast-impulse-noise-monitoring-profile-body;
    include bbf-fast-service-profiles;
    include bbf-fast-data-rate-profile-body;
    include bbf-fast-spectrum-profiles;
    include bbf-fast-line-spectrum-profile-body;
    include bbf-fast-upstream-power-back-off-profile-body;
    include bbf-fast-rfi-profile-body;
    include bbf-fast-tdd-profiles;
    include bbf-fast-tdd-profile-body;
    include bbf-fast-test-diagnostics;
    include bbf-fast-test-mode-body;
    include bbf-fast-update-test-body;
    include bbf-fast-link-state-body;
    include bbf-fast-read-test-body;
    include bbf-fast-threshold-management;
    include bbf-fast-line-threshold-profile-body;
    include bbf-fast-channel-threshold-profile-body;
    include bbf-fast-threshold-crossing-alert-body;
    include bbf-fast-performance-management;
    include bbf-fast-line-performance-body;
    include bbf-fast-channel-performance-body;
    include bbf-fast-status-monitoring;
    include bbf-fast-line-status-body;
    include bbf-fast-channel-status-body;
    include bbf-fast-inventory;
    include bbf-fast-ftu-inventory-body;
    include bbf-fast-availability;

    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:      Ken Kerpez, ASSIA, Inc.

Editor:      Joey Boyd, ADTRAN

PS Leader:   Ken Kerpez, ASSIA, Inc.

PS Leader:   Joey Boyd, ADTRAN

WA Director: Sven Ooghe, Nokia

WA Director: Joey Boyd, ADTRAN";

    description
      "This module contains a collection of YANG definitions for
supporting Vector of Profiles for FAST lines.

Copyright (c) 2016-2020 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-355a2; see
the TR itself for full legal notices.";

    revision "2020-01-17" {
      description
        "Amendment 2 Corrigendum 2.
* Approval Date:    2020-01-17
* Publication Date: 2020-01-17.";
      reference
        "TR-355a2c2: YANG Modules for FTTdp Management
        	    <https://www.broadband-forum.org/download/
        		   TR-355_Amendment-2.pdf>";

    }

    revision "2019-10-21" {
      description
        "Amendment 2 Corrigendum 1.
* Approval Date:    2019-10-21
* Publication Date: 2019-10-21.";
      reference
        "TR-355a2c1: YANG Modules for FTTdp Management
        	    <https://www.broadband-forum.org/download/
        		   TR-355_Amendment-2.pdf>";

    }

    revision "2019-06-11" {
      description
        "Amendment 2.
* Approval Date:    2019-06-11
* Publication Date: 2019-06-11.";
      reference
        "TR-355a2: YANG Modules for FTTdp Management
        	  <https://www.broadband-forum.org/technical/download/
        		 TR-355_Amendment-2.pdf>";

    }

    revision "2018-10-01" {
      description
        "Amendment 1.
* Approval Date:    2018-10-01
* Publication Date: 2018-10-01.";
      reference
        "TR-355a1: YANG Modules for FTTdp Management
        	  <https://www.broadband-forum.org/technical/download/
        		 TR-355_Amendment-1.pdf>";

    }

    revision "2017-11-27" {
      description
        "Corrigendum 2 (fixes to the previous revision).
* Approval Date:    see revision date above.
* Publication Date: 2018-01-19.";
      reference
        "TR-355c2: YANG Modules for FTTdp Management
        	  <https://www.broadband-forum.org/technical/download/
        		 TR-355_Corrigendum-2.pdf>";

    }

    revision "2017-03-13" {
      description
        "Corrigendum 1 (fixes to the initial revision).
* Approval Date:    see revision date above.
* Publication Date: 2017-04-12.";
      reference
        "TR-355c1: YANG Modules for FTTdp Management
        	  <https://www.broadband-forum.org/technical/download/
        		 TR-355_Corrigendum-1.pdf>";

    }

    revision "2016-07-18" {
      description
        "Initial revision.
* Approval Date:    see revision date above.
* Publication Date: 2016-08-05.";
      reference
        "TR-355: YANG Modules for FTTdp Management
        	<https://www.broadband-forum.org/technical/download/
        		 TR-355.pdf>";

    }


    // features

    feature annex-x {
      description
        "Indicates support for annex X as defined in ITU-T G.9701.";
      reference
        "ITU-T G.9701 clause X.6.7.1 and T.2.1.";

    }

    feature annex-d {
      description
        "Indicates support for annex D as defined in ITU-T G.9701.";
      reference
        "ITU-T G.9701 clause D.5.7.2 and T.2.2.1";

    }

    feature srec {
      description
        "Indicates support for Showtime Reconfiguration (SREC) as
defined in ITU-T G.9701 Annex R.";
      reference
        "ITU-T G.9701 annex R";

    }

    feature dta {
      description
        "Indicates support for Dynamic Time Assignment (DTA) as defined
in ITU-T G.9701.";
      reference
        "ITU-T G.9701 annex X and T.";

    }

    feature andeftr {
      description
        "Indicates support for All NOI with Data symbols Error-Free
Throughput Rate (ANDEFTR).";
    }

    feature rmcr {
      description
        "Indicates support for Robust Maintenance Channel Recovery
(RMCR).";
    }

    feature classmask {
      description
        "Indicates support for classmask configuration.";
    }

    feature impulse-noise-monitoring {
      description
        "Indicates support for Impulse Noise Monitoring (INM).";
    }

    feature performance-24hr {
      description
        "Indicates that collection of 24 hour performance intervals
is supported.";
    }

    feature availability {
      description
        "Indicates support for retrieving availability of a FAST
interface.";
    }

    // identities

    identity fast-threshold-crossing-alert {
      base 
      description
        "Base identity for FAST threshold crossing alerts (TCA).

This identity is abstract and is not be used for a
threshold crossing alert.";
    }

    identity fast-15min-threshold-crossing-alert {
      base fast-threshold-crossing-alert;
      description
        "A threshold crossing alert associated with performance
counters collected over the current 15 minute interval
for FTU-O/FTU-R channels and lines.

This identity is abstract and is not be used for a
threshold crossing alert.";
    }

    identity fast-24hr-threshold-crossing-alert {
      base fast-threshold-crossing-alert;
      description
        "A threshold crossing alert associated with performance
counters collected over the current 24 hour interval
for FTU-O/FTU-R channels and lines.

This identity is abstract and is not be used for a
threshold crossing alert.";
    }

    identity ftu-o-15min-channel-code-violations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of channel code violations during the
current 15 minute interval has exceeded the configured FTU-O
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-channel-uncorrectable-dtus-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of received uncorrectable Data Transfer Units (DTU)
during the current 15 minute interval has exceeded the
configured FTU-O threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-o-15min-channel-retransmitted-dtus-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of retransmitted Data Transfer Units (DTU) during
the current 15 minute interval has exceeded the configured
FTU-O threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-errored-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line errored seconds during the current 15 minute
interval has exceeded the configured FTU-O threshold.";
    }

    identity ftu-o-15min-line-severely-errored-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line severly errored seconds during the current
15 minute interval has exceeded the configured FTU-O
threshold.";
    }

    identity ftu-o-15min-line-loss-of-signal-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line loss of signal seconds during the current
15 minute interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-loss-of-rmc-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line loss of Robust Management Channel (RMC)
seconds during the current 15 minute interval has exceeded the
configured FTU-O threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-o-15min-line-unavailable-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of received line unavailable seconds during the
current 15 minute interval has exceeded the configured FTU-O
threshold.";
    }

    identity ftu-o-15min-line-full-initializations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line full initializations during the current
15 minute interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-failed-initializations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line failed initializations during the current
15 minute interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-fast-initializations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line fast initializations during the current 15
minute interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-failed-fast-initializations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line failed fast initializations during the
current 15 minute interval has exceeded the configured FTU-O
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-15min-line-spontaneous-interruptions-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line spontaneous interuptions during the current
15 minute interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-r-15min-channel-code-violations-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of channel code violations during the
current 15 minute interval has exceeded the configured FTU-R
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-r-15min-channel-uncorrectable-dtus-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of received uncorrectable Data Transfer Units (DTU)
during the current 15 minute interval has exceeded the
configured FTU-R threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-r-15min-channel-retransmitted-dtus-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of retransmitted Data Transfer Units (DTU) during
the current 15 minute interval has exceeded the configured
FTU-R threshold. This threshold crossing alert is optional.";
    }

    identity ftu-r-15min-line-errored-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line errored seconds during the current 15 minute
interval has exceeded the configured FTU-R threshold.";
    }

    identity ftu-r-15min-line-severely-errored-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line severly errored seconds during the current
15 minute interval has exceeded the configured FTU-R
threshold.";
    }

    identity ftu-r-15min-line-loss-of-signal-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line loss of signal seconds during the current
15 minute interval has exceeded the configured FTU-R threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-r-15min-line-loss-of-rmc-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of line loss of Robust Management Channel (RMC)
seconds during the current 15 minute interval has exceeded the
configured FTU-R threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-r-15min-line-unavailable-seconds-tca {
      base fast-15min-threshold-crossing-alert;
      description
        "The number of received line unavailable seconds during the
current 15 minute interval has exceeded the configured FTU-R
threshold.";
    }

    identity ftu-o-24hr-channel-code-violations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of channel code violations during the
current 24 hour interval has exceeded the configured FTU-O
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-channel-uncorrectable-dtus-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of received uncorrectable Data Transfer Units (DTU)
during the current 24 hour interval has exceeded the configured
FTU-O threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-channel-retransmitted-dtus-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of retransmitted Data Transfer Units (DTU) during
the current 24 hour interval has exceeded the configured FTU-O
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-errored-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line errored seconds during the current 24 hour
interval has exceeded the configured FTU-O threshold.";
    }

    identity ftu-o-24hr-line-severely-errored-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line severly errored seconds during the current
24 hour interval has exceeded the configured FTU-O
threshold.";
    }

    identity ftu-o-24hr-line-loss-of-signal-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line loss of signal seconds during the current
24 hour interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-loss-of-rmc-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line loss of Robust Management Channel (RMC)
seconds during the current 24 hour interval has exceeded the
configured FTU-O threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-o-24hr-line-unavailable-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of received line unavailable seconds during the
current 24 hour interval has exceeded the configured FTU-O
threshold.";
    }

    identity ftu-o-24hr-line-full-initializations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line full initializations during the current
24 hour interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-failed-initializations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line failed initializations during the current
24 hour interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-fast-initializations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line fast initializations during the current 24
hour interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-failed-fast-initializations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line failed fast initializations during the
current 24 hour interval has exceeded the configured FTU-O
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-o-24hr-line-spontaneous-interruptions-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line spontaneous interuptions during the current
24 hour interval has exceeded the configured FTU-O threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-r-24hr-channel-code-violations-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of channel code violations during the
current 24 hour interval has exceeded the configured FTU-R
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-r-24hr-channel-uncorrectable-dtus-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of received uncorrectable Data Transfer Units (DTU)
during the current 24 hour interval has exceeded the configured
FTU-R threshold. This threshold crossing alert is optional.";
    }

    identity ftu-r-24hr-channel-retransmitted-dtus-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of retransmitted Data Transfer Units (DTU) during
the current 24 hour interval has exceeded the configured FTU-R
threshold. This threshold crossing alert is optional.";
    }

    identity ftu-r-24hr-line-errored-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line errored seconds during the current 24 hour
interval has exceeded the configured FTU-R threshold.";
    }

    identity ftu-r-24hr-line-severely-errored-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line severly errored seconds during the current
24 hour interval has exceeded the configured FTU-R
threshold.";
    }

    identity ftu-r-24hr-line-loss-of-signal-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line loss of signal seconds during the current
24 hour interval has exceeded the configured FTU-R threshold.
This threshold crossing alert is optional.";
    }

    identity ftu-r-24hr-line-loss-of-rmc-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of line loss of Robust Management Channel (RMC)
seconds during the current 24 hour interval has exceeded the
configured FTU-R threshold. This threshold crossing alert is
optional.";
    }

    identity ftu-r-24hr-line-unavailable-seconds-tca {
      base fast-24hr-threshold-crossing-alert;
      description
        "The number of received line unavailable seconds during the
current 24 hour interval has exceeded the configured FTU-R
threshold.";
    }

    // typedefs
    typedef downstream-data-rate-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:service/bbf-fast:downstream-data-rate-profile/bbf-fast:name";
      }
      description
        "Used to reference a downstream data rate profile.";
    }

    typedef upstream-data-rate-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:service/bbf-fast:upstream-data-rate-profile/bbf-fast:name";
      }
      description
        "Used to reference an upstream data rate profile.";
    }

    typedef low-power-data-rate-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:service/bbf-fast:low-power-data-rate-profile/bbf-fast:name";
      }
      description
        "Used to reference a low power data rate profile.";
    }

    typedef profiles {
      type bits {
        bit g.9701-profile-106a {
          position 0;
          description
            "ITU-T G.9701 profile 106a.";
        }
        bit g.9701-profile-106b {
          position 1;
          description
            "ITU-T G.9701 profile 106b.";
        }
        bit g.9701-profile-212a {
          position 2;
          description
            "ITU-T G.9701 profile 212a.";
        }
        bit g.9701-profile-106c {
          position 3;
          description
            "ITU-T G.9701 profile 106c.";
        }
        bit g.9701-profile-212c {
          position 4;
          description
            "ITU-T G.9701 profile 212c.";
        }
      }
      description
        "Identifies supported FAST profiles.";
      reference
        "ITU-T G.9701 clause 6.";

    }

    typedef psd-level {
      type uint8 {
        range "0..200";
      }
      units "-0.5 dBm/Hz";
      description
        "Defines a Power Spectral Density (PSD) level in the range 0 to
-100 dBm/Hz.";
    }

    typedef sub-carrier-index {
      type uint16 {
        range "0..4095";
      }
      description
        "Identifies a sub-carrier.";
    }

    typedef psd-level-sub-carrier-index {
      type uint32 {
        range "39..4096";
      }
      description
        "Identifies a sub-carrier used for Power Spectral Density (PSD)
level configuration";
    }

    typedef iarbands {
      type bits {
        bit kHz-1800-2000 {
          position 0;
          description
            "International amateur radio band 1800-2000 kHz.";
        }
        bit kHz-3500-4000 {
          position 1;
          description
            "International amateur radio band 3500-4000 kHz.";
        }
        bit kHz-7000-7300 {
          position 2;
          description
            "International amateur radio band 7000-7300 kHz.";
        }
        bit kHz-10100-10150 {
          position 3;
          description
            "International amateur radio band 10100-10150 kHz.";
        }
        bit kHz-14000-14350 {
          position 4;
          description
            "International amateur radio band 14000-14350 kHz.";
        }
        bit kHz-18068-18168 {
          position 5;
          description
            "International amateur radio band 18068-18168 kHz.";
        }
        bit kHz-21000-21450 {
          position 6;
          description
            "International amateur radio band 21000-21450 kHz.";
        }
        bit kHz-24890-24990 {
          position 7;
          description
            "International amateur radio band 24890-24990 kHz.";
        }
        bit kHz-28000-29700 {
          position 8;
          description
            "International amateur radio band 28000-29700 kHz.";
        }
        bit kHz-50000-54000 {
          position 9;
          description
            "International amateur radio band 50000-54000 kHz.";
        }
        bit kHz-69900-70500 {
          position 10;
          description
            "International amateur radio band 69900-70500 kHz.";
        }
        bit kHz-144000-148000 {
          position 11;
          description
            "International amateur radio band 144000-148000 kHz.";
        }
        bit kHz-5351.5-5366.5 {
          position 12;
          description
            "International amateur radio band 5351.5-5366.5 kHz.";
        }
      }
      description
        "Defines for each International Amateur Radio (IAR) band
whether transmit Power Spectral Density (PSD) reduction is
enabled or disabled in that band.";
      reference
        "ITU-T G.997.2 clause 7.1.2.8 (IARBANDS); ITU-T G.9701 clause
        7.3.1.2 and 12.3.2.1.1; ITU-T G.994.1 Table 11.70.8 and
        11.70.8.1.";

    }

    typedef line-spectrum-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:spectrum/bbf-fast:line-spectrum-profile/bbf-fast:name";
      }
      description
        "Used to reference a line spectrum profile.";
    }

    typedef radio-frequency-interference-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:spectrum/bbf-fast:radio-frequency-interference-profile/bbf-fast:name";
      }
      description
        "Used to reference an Radio Frequency Interference(RFI)
profile.";
    }

    typedef upstream-power-back-off-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:spectrum/bbf-fast:upstream-power-back-off-profile/bbf-fast:name";
      }
      description
        "Used to reference an upstream power back-off profile.";
    }

    typedef noise-margin-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:noise-margin-profile/bbf-fast:name";
      }
      description
        "Used to reference a noise margin profile.";
    }

    typedef fast-rate-adaptation-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:fast-rate-adaptation-profile/bbf-fast:name";
      }
      description
        "Used to reference a fast rate adaptation profile.";
    }

    typedef vectoring-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:vectoring-profile/bbf-fast:name";
      }
      description
        "Used to reference a vectoring profile.";
    }

    typedef fast-retrain-policy-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:fast-retrain-policy-profile/bbf-fast:name";
      }
      description
        "Used to reference a fast retrain policy profile.";
    }

    typedef retransmission-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:retransmission-profile/bbf-fast:name";
      }
      description
        "Used to reference a retransmission profile.";
    }

    typedef time-division-duplexing-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:service/bbf-fast:time-division-duplexing-profile/bbf-fast:name";
      }
      description
        "Used to reference a Time Division Duplexing (TDD) profile.";
    }

    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 minutes 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.";
    }

    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 line-threshold-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:thresholds/bbf-fast:line-threshold-profile/bbf-fast:name";
      }
      description
        "Used to reference a line threshold profile.";
    }

    typedef channel-threshold-profile-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:thresholds/bbf-fast:channel-threshold-profile/bbf-fast:name";
      }
      description
        "Used to reference a channel threshold profile.";
    }

    typedef line-config-vector-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:vectors/bbf-fast:line-config-vector/bbf-fast:name";
      }
      description
        "Used to reference a line configuration vector of profiles";
    }

    typedef threshold-template-ref {
      type leafref {
        path "/bbf-fast:fast/bbf-fast:thresholds/bbf-fast:threshold-template/bbf-fast:name";
      }
      description
        "Used to reference a line threshold template profile";
    }

    typedef near-end-test-groups {
      type bits {
        bit group1 {
          position 0;
          description
            "If present, forces an update of the test parameters in
group 1.";
        }
        bit group2 {
          position 1;
          description
            "If present, forces an update of the test parameters in
group 2. Upon a request to update the XLOG test
parameters, the xlogps values are updated for all
disturber lines at the same time.";
        }
      }
      description
        "A set of bits representing each of the near end test groups.";
    }

    typedef far-end-test-groups {
      type bits {
        bit group1 {
          position 0;
          description
            "If present, forces an update of the test parameters in
group 1.";
        }
        bit group2 {
          position 1;
          description
            "If present, forces an update of the test parameters in
group 2.";
        }
      }
      description
        "A set of bits representing each of the far end test groups.";
    }

    typedef sub-carrier-group-index {
      type sub-carrier-index;
      description
        "Identifies a sub-carrier group.";
    }

    typedef sub-carrier-group-size {
      type uint8 {
        range "1 | 2 | 4 | 8";
      }
      units "1 sub-carrier";
      description
        "Reports the number of sub-carriers in any one sub-carrier
group.";
    }

    typedef snr-margin {
      type union {
        type bbf-yang:undetermined;
        type int16 {
          range "-511..511";
        }
      }
      units "0.1 dB";
      description
        "Reports the signal-to-noise ratio margin. A first special value
(undetermined) indicates that the signal-to-noise ratio margin
is undetermined. A second special value (-511) indicates that
the signal-to-noise ratio margin is less than or equal to -51.1
dB. A third special value (+511) indicates that the
signal-to-noise ratio margin is greater than or equal to
+51.1dB.";
    }

    typedef vce-port-index {
      type union {
        type enumeration {
          enum "undefined" {
            value 0;
            description
              "The value of the Vectoring Control Entity (VCE) port
index is undefined.";
          }
        }
        type uint16 {
          range "1..65535";
        }
      }
      description
        "For the line in a vectored group, the Vectoring Control Entity
(VCE) port index is the physical index that uniquely identifies
the VCE port to which the line is connected. It is an integer
from 1 to the maximum number of lines supported by the VCE.";
    }

    typedef per-sub-carrier-nibble {
      type binary {
        length "0..2048";
      }
      description
        "A binary type where each nibble represents data belonging to
a sub-carrier. The first nibble represents sub-carrier 0 and
the last represents sub-carrier 4095.";
    }

    typedef per-sub-carrier-uint8 {
      type binary {
        length "0..4096";
      }
      description
        "A binary type where each octet represents data belonging to
a sub-carrier. The first octet represents sub-carrier 0 and
the last represents sub-carrier 4095.";
    }

    typedef per-sub-carrier-group-uint8 {
      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 per-sub-carrier-group-uint16 {
      type binary;
      description
        "A binary type where each pair of octets represents data
belonging to a sub-carrier. The first two octets represents
sub-carrier 0. In each pair of octets, the most significant
byte is loaded first.";
    }

    typedef time-stamp-or-undefined {
      type union {
        type enumeration {
          enum "undefined" {
            value 0;
            description
              "The value of the time stamp is undefined or unknown.";
          }
        }
        type yang:date-and-time;
      }
      description
        "The date/time associated with a particular time stamp. The
special value, 'undefined', is used when the event represented
by the time stamp has not yet occurred.";
    }

    typedef error-free-bits-count {
      type uint32;
      units "65536 bits";
      description
        "Defines the typedef to be used for error-free bits
counters.";
    }

    typedef error-free-throughput {
      type uint32;
      units "1000 bits per second";
      description
        "Defines the typedef to be used for error-free throughput
parameters.";
    }

    // objects
    container fast {
      description "FAST configuration";
      container service {
        description
          "Service profile configuration.";
        list downstream-data-rate-profile {
          key "name";
          description
            "A list of downstream data rate profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the profile.";
          }

          leaf maximum-net-data-rate {
            type bbf-yang:data-rate32;
            default "4294967295";
            description
              "Defines the value of the maximum net data rate (see clause
11.4.2.2/G.9701).";
            reference
              "ITU-T G.997.2 clause 7.2.1.1 (MAXNDR).";

          }

          leaf minimum-expected-throughput {
            type bbf-yang:data-rate32;
            must
              ". < ../maximum-net-data-rate" {
              description
                "The minimum expected throughput must be less than the
maximum net data rate";
            }
            default "0";
            description
              "Defines the value of the minimum expected throughput (see
clause 11.4.2.1/G.9701).";
            reference
              "ITU-T G.997.2 clause 7.2.1.2 (MINETR).";

          }

          leaf maximum-gamma-data-rate {
            type bbf-yang:data-rate32;
            must
              ". >= ../minimum-gamma-data-rate" {
              description
                "The maximum gamma data rate must be greater than or equal
to the mimimum gamma data rate";
            }
            default "4294967295";
            description
              "Defines the maximum value of the Gamma Data Rate (GDR)
(see clause 7.11.1.3/G.997.2). The GDR shall not exceed
maximum Gamma Data Rate (MAXGDR) at the start of showtime
and during showtime. ";
            reference
              "ITU-T G.997.2 clause 7.2.1.3 (MAXGDR).";

          }

          leaf minimum-gamma-data-rate {
            type bbf-yang:data-rate32;
            must
              ". <= ../maximum-gamma-data-rate" {
              description
                "The minimum gamma data rate must be less than or equal to
the maximum gamma data rate";
            }
            default "0";
            description
              "Defines the minimum value of the Gamma Data Rate (GDR)
(see clause 7.11.1.3/G.997.2). The GDR may be lower than
minimum Gamma Data Rate (MINGDR). If the GDR is lower than
MINGDR at initialization or when GDR becomes lower than
MINGDR during showtime, a threshold crossing alert occurs.";
            reference
              "ITU-T G.997.2 clause 7.2.1.4 (MINGDR).";

          }

          container dynamic-time-assignment {
            if-feature dta;
            description
              "Configuruation of Dynamic Time Assignment (DTA).";
            leaf minimum-expected-throughput {
              type bbf-yang:data-rate32;
              must
                ". < ../maximum-net-data-rate" {
                description
                  "The minimum expected throughput for Dynamic Time
Assignment (DTA) must be less than the maximum net data
rate for DTA.";
              }
              default "0";
              description
                "Defines the value of the minimum expected
throughput for Dynamic Time Assignment (DTA) operation to
constrain the dynamic range of Mds requested by the
Dynamic Resource Allocation (DRA).

If 'dta-allowed' in the Time Division Duplexing (TDD)
profile is equal to 'cdta', then a value less than or equal
to the minimum expected throughput without DTA operation
must be configured.";
              reference
                "ITU-T G.9701 clause T.2.7.";

            }

            leaf maximum-net-data-rate {
              type bbf-yang:data-rate32;
              default "4294967295";
              description
                "Defines the value of the maximum Net Datat Rate (NDR) for
Dynamic Time Assignment (DTA) operation.";
              reference
                "ITU-T G.9701 clause D.5.7.5, X.6.7.5 and T.2.8";

            }
          }  // container dynamic-time-assignment

          leaf low-andeftr-threshold {
            if-feature andeftr;
            type bbf-yang:data-rate32;
            default "0";
            description
              "Defines the value of the low All NOI with Data symbols
Error-Free Throughput Rate threshold.";
            reference
              "ITU-T G.997.2 clause 7.2.4.1 (LOW-ANDEFTR-THRESHOLD)";

          }
        }  // list downstream-data-rate-profile

        list upstream-data-rate-profile {
          key "name";
          description
            "A list of upstream data rate profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the profile.";
          }

          leaf maximum-net-data-rate {
            type bbf-yang:data-rate32;
            default "4294967295";
            description
              "Defines the value of the maximum net data rate (see clause
11.4.2.2/G.9701).";
            reference
              "ITU-T G.997.2 clause 7.2.1.1 (MAXNDR).";

          }

          leaf minimum-expected-throughput {
            type bbf-yang:data-rate32;
            must
              ". < ../maximum-net-data-rate" {
              description
                "The minimum expected throughput must be less than the
maximum net data rate";
            }
            default "0";
            description
              "Defines the value of the minimum expected throughput (see
clause 11.4.2.1/G.9701).";
            reference
              "ITU-T G.997.2 clause 7.2.1.2 (MINETR).";

          }

          leaf maximum-gamma-data-rate {
            type bbf-yang:data-rate32;
            must
              ". >= ../minimum-gamma-data-rate" {
              description
                "The maximum gamma data rate must be greater than or equal
to the mimimum gamma data rate";
            }
            default "4294967295";
            description
              "Defines the maximum value of the Gamma Data Rate (GDR)
(see clause 7.11.1.3/G.997.2). The GDR shall not exceed
maximum Gamma Data Rate (MAXGDR) at the start of showtime
and during showtime. ";
            reference
              "ITU-T G.997.2 clause 7.2.1.3 (MAXGDR).";

          }

          leaf minimum-gamma-data-rate {
            type bbf-yang:data-rate32;
            must
              ". <= ../maximum-gamma-data-rate" {
              description
                "The minimum gamma data rate must be less than or equal to
the maximum gamma data rate";
            }
            default "0";
            description
              "Defines the minimum value of the Gamma Data Rate (GDR)
(see clause 7.11.1.3/G.997.2). The GDR may be lower than
minimum Gamma Data Rate (MINGDR). If the GDR is lower than
MINGDR at initialization or when GDR becomes lower than
MINGDR during showtime, a threshold crossing alert occurs.";
            reference
              "ITU-T G.997.2 clause 7.2.1.4 (MINGDR).";

          }

          container dynamic-time-assignment {
            if-feature dta;
            description
              "Configuruation of Dynamic Time Assignment (DTA).";
            leaf minimum-expected-throughput {
              type bbf-yang:data-rate32;
              must
                ". < ../maximum-net-data-rate" {
                description
                  "The minimum expected throughput for Dynamic Time
Assignment (DTA) must be less than the maximum net data
rate for DTA.";
              }
              default "0";
              description
                "Defines the value of the minimum expected
throughput for Dynamic Time Assignment (DTA) operation to
constrain the dynamic range of Mds requested by the
Dynamic Resource Allocation (DRA).

If 'dta-allowed' in the Time Division Duplexing (TDD)
profile is equal to 'cdta', then a value less than or equal
to the minimum expected throughput without DTA operation
must be configured.";
              reference
                "ITU-T G.9701 clause T.2.7.";

            }

            leaf maximum-net-data-rate {
              type bbf-yang:data-rate32;
              default "4294967295";
              description
                "Defines the value of the maximum Net Datat Rate (NDR) for
Dynamic Time Assignment (DTA) operation.";
              reference
                "ITU-T G.9701 clause D.5.7.5, X.6.7.5 and T.2.8";

            }
          }  // container dynamic-time-assignment

          leaf low-andeftr-threshold {
            if-feature andeftr;
            type bbf-yang:data-rate32;
            default "0";
            description
              "Defines the value of the low All NOI with Data symbols
Error-Free Throughput Rate threshold.";
            reference
              "ITU-T G.997.2 clause 7.2.4.1 (LOW-ANDEFTR-THRESHOLD)";

          }
        }  // list upstream-data-rate-profile

        list low-power-data-rate-profile {
          key "name";
          description
            "A list of low power data rate profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the profile.";
          }

          leaf maximum-net-data-rate-in-l2.2 {
            type bbf-yang:data-rate32;
            default "4294967295";
            description
              "Defines the value of the maximum net data rate allowed
during the L2.2 link state for both the upstream and
downstream direction.";
            reference
              "ITU-T G.997.2 clause 7.2.3.2 (L2.2-MAXNDR); ITU-T G.9701
              clause 13.4.2.4.";

          }

          leaf minimum-expected-throughput-in-l2.2 {
            type bbf-yang:data-rate32;
            default "0";
            description
              "Defines the value of the minimum expected throughput
allowed during the L2.2 link state for both the upstream
and downstream direction.";
            reference
              "ITU-T G.997.2 clause 7.2.3.4 (L2.2-MINETR); ITU-T G.9701
              clause 13.4.2.4.";

          }

          container downstream {
            description
              "Downstream low power data rate parameters.";
            leaf maximum-net-data-rate-in-l2.1 {
              type bbf-yang:data-rate32;
              default "4294967295";
              description
                "Defines the value of the maximum net data rate allowed
during the L2.1 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.1 (L2.1-MAXNDR); ITU-T G.9701
                clause 13.4.1.4.";

            }

            leaf minimum-expected-throughput-in-l2.1 {
              type bbf-yang:data-rate32;
              default "0";
              description
                "Defines the value of the minimum expected throughput
allowed during the L2.1 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.3 (L2.1-MINETR); ITU-T G.9701
                clause 13.4.1.4.";

            }

            leaf minimum-expected-throughput-after-exit-from-l2.1 {
              type bbf-yang:data-rate32;
              default "0";
              description
                "Defines the value of the minimum expected throughput
allowed after exit from L2.1 to the L0 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.5 (L2.1-MINETR-EXIT); ITU-T
                G.9701 clause 13.4.1.4.";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream low power data rate parameters.";
            leaf maximum-net-data-rate-in-l2.1 {
              type bbf-yang:data-rate32;
              default "4294967295";
              description
                "Defines the value of the maximum net data rate allowed
during the L2.1 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.1 (L2.1-MAXNDR); ITU-T G.9701
                clause 13.4.1.4.";

            }

            leaf minimum-expected-throughput-in-l2.1 {
              type bbf-yang:data-rate32;
              default "0";
              description
                "Defines the value of the minimum expected throughput
allowed during the L2.1 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.3 (L2.1-MINETR); ITU-T G.9701
                clause 13.4.1.4.";

            }

            leaf minimum-expected-throughput-after-exit-from-l2.1 {
              type bbf-yang:data-rate32;
              default "0";
              description
                "Defines the value of the minimum expected throughput
allowed after exit from L2.1 to the L0 link state.";
              reference
                "ITU-T G.997.2 clause 7.2.3.5 (L2.1-MINETR-EXIT); ITU-T
                G.9701 clause 13.4.1.4.";

            }
          }  // container upstream
        }  // list low-power-data-rate-profile

        list time-division-duplexing-profile {
          key "name";
          description
            "A list of Time Division Duplexing (TDD) profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          leaf total-symbol-periods {
            type uint8 {
              range "23 | 36";
            }
            default "36";
            description
              "Defines the total number of symbol periods in a Time division
duplexing (TDD) frame.";
            reference
              "ITU-T G.997.2 clause 7.1.1.1 (MF);
              ITU-T G.9701 clause 10.5.";

          }

          leaf downstream-symbol-periods {
            type uint8 {
              range "6..32";
            }
            must
              "(../total-symbol-periods = 23 and .>= 6 and .<= 19) or
            (../total-symbol-periods = 36 and .>= 10 and .<= 32)" {
              description
                "If the total symbol periods is 23, the number of downstream
symbol periods must be between 6 to 19 inclusive. If the
total symbol periods is 36, the number of downstream symbol
periods must be between 10 to 32 inclusive";
            }
            default "28";
            description
              "Defines the total number of symbol positions in a Time
division duplexing (TDD) frame allocated for downstream
transmission. The total number of symbol positions in a TDD
frame allocated for upstream transmission is calculated as
Mus = MF-1-Mds.";
            reference
              "ITU-T G.997.2 clause 7.1.1.2 (Mds);
              ITU-T G.9701 clause 10.5";

          }

          leaf cyclic-extension {
            type uint8 {
              range
                "4 | 8 | 10 | 12 | 14 | 16 | 20 | 24 | 30 | 33";
            }
            units "N/64 samples";
            default "10";
            description
              "Defines the cyclic extension(Lcp) to be used. The units
are in N/64 samples, where N = index of the highest
supported downstream data-bearing sub-carrier as defined
for the enabled profile (see Table 6-1/G.9701) plus one.";
            reference
              "ITU-T G.997.2 clause 7.1.1.3 (CE);
              ITU-T G.9701 clause 10.4.4";

          }

          container dynamic-time-assignment {
            if-feature dta;
            description
              "Configuration of Dynamic Time Assignement (DTA).";
            leaf dta-allowed {
              type enumeration {
                enum "none" {
                  value 0;
                  description
                    "Dynamic Time Assignment is not allowed.";
                }
                enum "idta" {
                  value 1;
                  description
                    "Operation according to ITU-T G.9701 Annex X (iDTA) is
allowed. If 'annex-x-mode' in the vectoring profile
is configured as 'forbidden', then this value must not
be configured.";
                }
                enum "cdta" {
                  value 2;
                  description
                    "Operation according to ITU-T G.9701 Annex D (cDTA) is
allowed. If 'annex-d-mode' in the vectoring profile
is configured as 'forbidden', then this value must not
be configured.";
                }
              }
              default "none";
              description
                "The type of Dynamic Time Assignment allowed.";
              reference
                "ITU-T G.997.2 clause T.2.1.2 (IDTA_ALLOWED);
                ITU-T G.997.2 clause T.2.1.4 (CDTA_ALLOWED);
                ITU-T G.9701 clauses X.6.7.2 and T.2.2;
                ITU-T G.9701 clauses D.5.7.2 and T.2.2.1";

            }

            leaf preferred-mds {
              type uint8 {
                range "5..31";
              }
              must
                "(((../dta-allowed='idta' and ../../total-symbol-periods =
23 and .>= 5 and .<= 17) or (../dta-allowed='idta' and
../../total-symbol-periods = 36 and .>= 5 and .<= 30) or
(../dta-allowed='cdta' and ../../total-symbol-periods =
23 and .>= 6 and .<= 19) or (../dta-allowed='cdta' and
../../total-symbol-periods = 36 and .>= 10 and .<= 31))
and (. >= ../minimum-mds) and (. <= ../maximum-mds))
or ../dta-allowed='none'" {
                description
                  "The preferred Mds for Dynamic Time Assignment (DTA)
must be equal to or higher than the minimum Mds for DTA
and less than or equal to the maximum Mds for DTA. The
valid range depends on total symbol period (MF) and DTA
type allowed.";
              }
              default "28";
              description
                "Provides the number of downstream symbol
positions in a Time division duplexing (TDD) frame
requested by the Dynamic Resource Allocation (DRA) at the
first opportunity upon entering showtime of a line on which
Dynamic Time Assignment (DTA) operation is enabled.
If MF=23, a value different from the default
value needs to be configured.";
              reference
                "ITU-T G.997.2 clause T.2.2.1 (DTA_PREF_Mds);
                ITU-T G.9701 clause T.2.3";

            }

            leaf maximum-step-size {
              type uint8 {
                range "1..25";
              }
              must
                "(../dta-allowed='idta' and ../../total-symbol-periods =
23 and .>= 1 and .<= 12) or (../dta-allowed='idta' and
../../total-symbol-periods = 36 and .>= 1 and .<= 25) or
(../dta-allowed='cdta' and ../../total-symbol-periods =
23 and .>= 1 and .<= 13) or (../dta-allowed='cdta' and
../../total-symbol-periods = 36 and .>= 1 and .<= 21) or
../dta-allowed='none'" {
                description
                  "The maximum step size must be restricted to the valid
range depending on total symbol periods (MF) and
Dynamic Time Assignment (DTA) type allowed.";
              }
              default "25";
              description
                "Defines the maximum step size for Mds requested by the DRA
for a single Dynamic Time Assignment (DTA) update. For
configurations other than iDTA allowed with MF=36, a value
different from the default value needs to be configured.";
              reference
                "ITU-T G.997.2 clause T.2.2.2 (DTA_SMAX);
                ITU-T G.9701 clause T.2.3";

            }

            leaf minimum-time-between-updates {
              type uint16 {
                range "0..16383";
              }
              units "0.01 second";
              default "0";
              description
                "Provides the minimum time between any two successive
DTA updates during showtime.";
              reference
                "ITU-T G.997.2 clause T.2.2.8 (DTA_MIN_TIME);
                ITU-T G.9701 clause T.2.10";

            }

            leaf minimum-mds {
              type uint8 {
                range "5..31";
              }
              must
                "(((../dta-allowed='idta' and ../../total-symbol-periods =
23 and .>= 5 and .<= 17) or (../dta-allowed='idta' and
../../total-symbol-periods = 36 and .>= 5 and .<= 30) or
(../dta-allowed='cdta' and ../../total-symbol-periods =
23 and .>= 6 and .<= 19) or (../dta-allowed='cdta' and
../../total-symbol-periods = 36 and .>= 10 and .<= 31))
and . <= ../../downstream-symbol-periods) or
../dta-allowed='none'" {
                description
                  "The minimum Mds must be restricted to the valid
range depending on total symbol periods (MF), Dynamic
Time Assignment (DTA) type allowed, and downstream
symbol periods.";
              }
              default "5";
              description
                "Provides the minimum number of downstream symbol
positions Mds in a Time Division Duplexing (TDD) frame that
shall be requested by the Dynamic Time Assignment (DTA).
For configurations with cDTA allowed, a value different
from the default value needs to be configured.";
              reference
                "ITU-T G.997.2 clause T.2.2.3 (DTA_MIN_Mds);
                ITU-T G.9701 clause T.2.5";

            }

            leaf maximum-mds {
              type uint8 {
                range "5..31";
              }
              must
                "(((../dta-allowed='idta' and ../../total-symbol-periods =
23 and .>= 5 and .<= 17) or (../dta-allowed='idta' and
../../total-symbol-periods = 36 and .>= 5 and .<= 30) or
(../dta-allowed='cdta' and ../../total-symbol-periods =
23 and .>= 6 and .<= 19) or (../dta-allowed='cdta' and
../../total-symbol-periods = 36 and .>= 10 and .<= 31))
and . >= ../../downstream-symbol-periods) or
../dta-allowed='none'" {
                description
                  "The maximum Mds must be restricted to the valid
range depending on total symbol periods (MF), Dynamic
Time Assignment (DTA) type allowed, and downstream
symbol periods.";
              }
              default "30";
              description
                "Provides the maximum number of downstream symbol
positions Mds in a Time Division Duplexing (TDD) frame that
shall be requested by the Dynamic Resource Allocation
(DRA). For configurations with MF=23, a value different
from the default value needs to be configured.";
              reference
                "ITU-T G.997.2 clause T.2.2.4 (DTA_MAX_Mds);
                ITU-T G.9701 clause X.6.7.4 and T.2.6.";

            }

            leaf cdta-procedure-control {
              when "../dta-allowed='cdta'" {
                description
                  "Only applicable when Coordinated Dynamic Time Assignment
(cDTA) is configured.";
              }
              if-feature annex-d;
              type enumeration {
                enum "one-or-two-step" {
                  value 0;
                  description
                    "Dynamic Resource Allocation (DRA) is allowed to use the
one-step or two-step Coordinated Dynamic Time
Assignment (cDTA) procedure (see clause Y.5.6)";
                }
                enum "one-step-only" {
                  value 1;
                  description
                    "Dynamic Resource Allocation (DRA) shall use the
one-step Coordinated Dynamic Time Assignment (cDTA)
procedure only (see clause Y.5.6).";
                }
                enum "two-step-only" {
                  value 2;
                  description
                    "Dynamic Resource Allocation (DRA) shall use the
two-step procedure only (see clause Y.5.6). This value
is intended to be used for test purposes.";
                }
              }
              default "one-or-two-step";
              description
                "Provides the procedure type that the Dynamic Resource
Allocation (DRA) is allowed to apply. If the CDTA_PROC_CTRL
is set to 2 and the FTU-O does not support the two-step
procedure, no Coordinated Dynamic Time Assignment (cDTA)
procedure is triggered by the DRA.";
              reference
                "ITU-T G.997.2 clause T.2.7 (CDTA_PROC_CTRL);
                ITU-T G.9701 clause T.2.9.";

            }
          }  // container dynamic-time-assignment
        }  // list time-division-duplexing-profile
      }  // container service

      container spectrum {
        description
          "Spectrum profile configuration.";
        list line-spectrum-profile {
          key "name";
          description
            "A list of line spectrum profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the
profile.";
          }

          leaf profiles {
            type union {
              type enumeration {
                enum "all" {
                  value 0;
                  description
                    "Used to indicate that all profiles are allowed.";
                }
              }
              type profiles;
            }
            default "all";
            description
              "Defines for each profile whether operation according to
that profile is allowed or disallowed.";
            reference
              "ITU-T G.997.2 clause 7.1.0.1 (PROFILES); ITU-T G.9701
              clause 6.";

          }

          leaf link-state-enabling {
            type enumeration {
              enum "l0-l3-enabled" {
                value 0;
                description
                  "L0 and L3 enabled (L2.1N, L2.1B, L2.2 disabled).";
              }
              enum "l0-l3-l2.1n-enabled" {
                value 1;
                description
                  "L0, L3 and L2.1N enabled (L2.1B, L2.2 disabled).";
              }
              enum
                "l0-l3-l2.1n-l2.1b-enabled" {
                value 2;
                description
                  "L0, L3, L2.1N and L2.1B enabled (L2.2 disabled).";
              }
              enum
                "l0-l3-l2.1n-l2.1b-l2.2-enabled" {
                value 3;
                description
                  "L0, L3, L2.1N, L2.1B and L2.2 enabled.";
              }
            }
            default
              "l0-l3-l2.1n-l2.1b-l2.2-enabled";
            description
              "Selects the set of allowed low power mode states.";
            reference
              "ITU-T G.997.2 clause 7.14.1.2(LS-ENABLE); ITU-T G.9701
              clause 12.1.1.7.2";

          }

          leaf maximum-psd-reduction-in-l2 {
            type uint8 {
              range "0..10 | 255";
            }
            units "dB";
            default "0";
            description
              "Defines the maximum Power Spectral Density (PSD) reduction
allowed during the L2.1N, L2.2B and L2.2 link states for both
the upstream and downstream direction. The special value,
255, indicates there is no maximum bound for the PSD
reduction (i.e., the maximum PSD reduction is infinite).";
            reference
              "ITU-T G.997.2 clause 7.1.10.3 (L2.1-MAXPSDR); ITU-T G.9701
              clause 13.4.1.4.";

          }

          container downstream {
            description
              "Downstream specific line spectrum configuration
parameters.";
            leaf maximum-aggregate-transmit-power {
              type int16 {
                range "-310..310";
              }
              units "0.1dBm";
              default "40";
              description
                "Defines the maximum aggregate transmit power at the U-O2
reference point during initialization and showtime
(in dBm).";
              reference
                "ITU-T G.997.2 clause 7.1.2.1 (MAXATPds) and clause 7.1.2.2
                (MAXATPus); ITU-T G.9701 Clause 7.3.2";

            }

            list carmask {
              key "start-index";
              max-elements 32;
              description
                "This list defines the masked sub-carrier bands. All
sub-carriers within the band, i.e., with indices higher than
or equal to the start sub-carrier index and lower than or
equal to the stop sub-carrier index, are masked, i.e., have
a transmit power set to zero (linear scale).";
              reference
                "ITU-T G.997.2 clause 7.1.2.3 (CARMASKds) and clause 7.1.2.4
                (CARMASKus); ITU-T G.9701 Clause 7.3.1.3.";

              leaf start-index {
                type sub-carrier-index;
                must ". <= ../stop-index" {
                  description
                    "The start index must be less than or equal to the stop
index";
                }
                description
                  "The sub-carrier index identifying the start of a range of
sub-carriers (inclusive).";
              }

              leaf stop-index {
                type sub-carrier-index;
                must ". >= ../start-index" {
                  description
                    "The stop index must be greater than or equal to the
start index";
                }
                mandatory true;
                description
                  "The sub-carrier index identifying the stop of a range of
sub-carriers (inclusive).";
              }
            }  // list carmask

            list mibpsdmask {
              must
                "count(../mibpsdmask)=0 or
(count(../mibpsdmask[sub-carrier-index=39])=1 and not (
(contains(../../profiles,'g.9701-profile-106a') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-106b') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-212a') and
not(../mibpsdmask[sub-carrier-index=4096])) or
(contains(../../profiles,'g.9701-profile-106c') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-212c') and
not(../mibpsdmask[sub-carrier-index=4096])) or
(../../profiles='all' and
(not(../mibpsdmask[sub-carrier-index=2048]) or
not(../mibpsdmask[sub-carrier-index=4096])))))" {
                description
                  "If the MIBPSDMASK is configured, then the mask must
include sub-carrier 39 as well as the highest
sub-carrier for the profile.";
              }
              key "sub-carrier-index";
              max-elements 32;
              description
                "This list defines the Power Spectral Density (PSD) mask
applicable at the U-O2 reference point. Each entry in the
list defines a breakpoint of the PSD mask. Requirements for
a valid Management Information Base (MIB) PSD mask are
defined in G.9701 clauses 7.3.1.1.2.1 and 7.3.1.1.2.2.";
              reference
                "ITU-T G.997.2 clause 7.1.2.5 (MIBPSDMASKds) and clause
                7.1.2.6 (MIBPSDMASKus); ITU-T G.9701 clauses 7.3.1.1.2.1
                and 7.3.1.1.2.2.";

              leaf sub-carrier-index {
                type psd-level-sub-carrier-index;
                description
                  "Identifies the sub-carrier for which psd-level applies.";
              }

              leaf psd-level {
                type psd-level;
                mandatory true;
                description
                  "The Power Spectral Density (PSD) level of the referenced
sub-carrier.";
              }
            }  // list mibpsdmask

            leaf classmask {
              if-feature classmask;
              type enumeration {
                enum "classmask1" {
                  value 0;
                  description
                    "The limit mask for each profile is as defined in G.9701
classmask1.";
                }
                enum "classmask2" {
                  value 1;
                  description
                    "The limit mask for each profile is as defined in G.9701
classmask2.";
                }
              }
              default "classmask1";
              description
                "Defines, through a classmask selection, which limit mask
shall be used with each profile in the downstream
direction. The classmasks are defined in ITU-T G.9701.";
              reference
                "ITU-T G.997.2 clause 7.1.2.14 (CLASSMASKds);
                ITU-T G.9701 clause 7.3.1.5.";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream specific line spectrum configuration parameters.";
            leaf maximum-aggregate-transmit-power {
              type int16 {
                range "-310..310";
              }
              units "0.1dBm";
              default "40";
              description
                "Defines the maximum aggregate transmit power at the U-O2
reference point during initialization and showtime
(in dBm).";
              reference
                "ITU-T G.997.2 clause 7.1.2.1 (MAXATPds) and clause 7.1.2.2
                (MAXATPus); ITU-T G.9701 Clause 7.3.2";

            }

            list carmask {
              key "start-index";
              max-elements 32;
              description
                "This list defines the masked sub-carrier bands. All
sub-carriers within the band, i.e., with indices higher than
or equal to the start sub-carrier index and lower than or
equal to the stop sub-carrier index, are masked, i.e., have
a transmit power set to zero (linear scale).";
              reference
                "ITU-T G.997.2 clause 7.1.2.3 (CARMASKds) and clause 7.1.2.4
                (CARMASKus); ITU-T G.9701 Clause 7.3.1.3.";

              leaf start-index {
                type sub-carrier-index;
                must ". <= ../stop-index" {
                  description
                    "The start index must be less than or equal to the stop
index";
                }
                description
                  "The sub-carrier index identifying the start of a range of
sub-carriers (inclusive).";
              }

              leaf stop-index {
                type sub-carrier-index;
                must ". >= ../start-index" {
                  description
                    "The stop index must be greater than or equal to the
start index";
                }
                mandatory true;
                description
                  "The sub-carrier index identifying the stop of a range of
sub-carriers (inclusive).";
              }
            }  // list carmask

            list mibpsdmask {
              must
                "count(../mibpsdmask)=0 or
(count(../mibpsdmask[sub-carrier-index=39])=1 and not (
(contains(../../profiles,'g.9701-profile-106a') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-106b') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-212a') and
not(../mibpsdmask[sub-carrier-index=4096])) or
(contains(../../profiles,'g.9701-profile-106c') and
not(../mibpsdmask[sub-carrier-index=2048])) or
(contains(../../profiles,'g.9701-profile-212c') and
not(../mibpsdmask[sub-carrier-index=4096])) or
(../../profiles='all' and
(not(../mibpsdmask[sub-carrier-index=2048]) or
not(../mibpsdmask[sub-carrier-index=4096])))))" {
                description
                  "If the MIBPSDMASK is configured, then the mask must
include sub-carrier 39 as well as the highest
sub-carrier for the profile.";
              }
              key "sub-carrier-index";
              max-elements 32;
              description
                "This list defines the Power Spectral Density (PSD) mask
applicable at the U-O2 reference point. Each entry in the
list defines a breakpoint of the PSD mask. Requirements for
a valid Management Information Base (MIB) PSD mask are
defined in G.9701 clauses 7.3.1.1.2.1 and 7.3.1.1.2.2.";
              reference
                "ITU-T G.997.2 clause 7.1.2.5 (MIBPSDMASKds) and clause
                7.1.2.6 (MIBPSDMASKus); ITU-T G.9701 clauses 7.3.1.1.2.1
                and 7.3.1.1.2.2.";

              leaf sub-carrier-index {
                type psd-level-sub-carrier-index;
                description
                  "Identifies the sub-carrier for which psd-level applies.";
              }

              leaf psd-level {
                type psd-level;
                mandatory true;
                description
                  "The Power Spectral Density (PSD) level of the referenced
sub-carrier.";
              }
            }  // list mibpsdmask

            leaf classmask {
              if-feature classmask;
              type enumeration {
                enum "classmask1" {
                  value 0;
                  description
                    "Selects limit mask per classmask1.";
                }
              }
              default "classmask1";
              description
                "Defines, through a classmask selection, which limit mask
shall be used with each profile in the upstream direction.
The classmasks are defined in ITU-T G.9701.";
              reference
                "ITU-T G.997.2 clause 7.1.2.15 (CLASSMASKus);
                ITU-T G.9701 clause 7.3.1.5.";

            }
          }  // container upstream
        }  // list line-spectrum-profile

        list radio-frequency-interference-profile {
          key "name";
          description
            "A list of Radio Frequency Interference (RFI) profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          list rfiband {
            key "start-index";
            max-elements 32;
            description
              "Defines the bands where the PSD shall be reduced as
specified in G.9701 clause 7.3.1.2.";
            reference
              "ITU-T G.997.2 clause 7.1.2.7 (RFIBANDS); ITU-T G.9701
              Clause 7.3.1.2.";

            leaf start-index {
              type sub-carrier-index;
              must ". <= ../stop-index" {
                description
                  "The start index must be less than or equal to the stop
index";
              }
              description
                "The sub-carrier index identifying the start of a range of
sub-carriers (inclusive).";
            }

            leaf stop-index {
              type sub-carrier-index;
              must ". >= ../start-index" {
                description
                  "The stop index must be greater than or equal to the
start index";
              }
              mandatory true;
              description
                "The sub-carrier index identifying the stop of a range of
sub-carriers (inclusive).";
            }
          }  // list rfiband

          leaf iarbands {
            type iarbands;
            default "";
            description
              "Defines for each International Amateur Radio (IAR) band
whether transmit Power Spectral Density (PSD) reduction is
enabled or disabled in that band.";
            reference
              "ITU-T G.997.2 clause 7.1.2.8 (IARBANDS); ITU-T G.9701
              clause 7.3.1.2 and 12.3.2.1.1; ITU-T G.994.1 Table 11.70.8
              and 11.70.8.1.";

          }
        }  // list radio-frequency-interference-profile

        list upstream-power-back-off-profile {
          key "name";
          description
            "A list of upstream power back-off profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          leaf upbopsd-a {
            type uint16 {
              range "0..4095";
            }
            units "0.01 dBm/Hz";
            default "0";
            description
              "Defines the parameter a for the Upstream power back-off
(UPBO) reference Power Spectral Density (PSD) used to
compute the upstream power back-off for the upstream
frequency band.";
            reference
              "ITU-T G.997.2 clause 7.1.2.9 (UPBOPSDA); ITU-T G.9701
              clause 7.3.1.4.";

          }

          leaf upbopsd-b {
            type uint16 {
              range "0..4095";
            }
            units "0.01 dBm/Hz";
            default "0";
            description
              "Defines the parameter b for the Upstream power back-off
(UPBO) reference Power Spectral Density (PSD) used to
compute the upstream power back-off for the upstream
frequency band.";
            reference
              "ITU-T G.997.2 clause 7.1.2.10 (UPBOPSDB); ITU-T G.9701
              clause 7.3.1.4.";

          }

          leaf upbo-upstream-electrical-length {
            type uint16 {
              range "0..1280";
            }
            units "0.1 dB";
            default "0";
            description
              "Defines the electrical length kl0 (expressed in dB at
1 MHz).";
            reference
              "ITU-T G.997.2 clause 7.1.2.11 (UPBOKL); ITU-T G.9701 clause
              7.3.1.4.2.1.";

          }

          leaf upbo-force-electrical-length {
            type boolean;
            default "false";
            description
              "Defines whether or not the FTU-R is forced to use the
electrical length kl0 = UPBOKL to compute the UPBOMASK. If
not forced, the FAST Transceiver Units (FTU) determine the
electrical length kl0.";
            reference
              "ITU-T G.997.2 clause 7.1.2.12 (UPBOKLF); ITU-T G.9701
              clause 7.3.1.4.2.1.";

          }

          leaf upbo-reference-electrical-length {
            type uint16 {
              range "0 | 18..255";
            }
            units "0.1 dB";
            default "0";
            description
              "Defines the Upstream power back-off (UPBO) reference
electrical length kl0_REF used to compute the upstream power
back-off for the Equalized Far-End Crosstalk (FEXT) Upstream
power back-off (UPBO) method. If kl0_REF = 0 (special value)
then the Equal Power Spectral Density (PSD) Upstream power
back-off (UPBO) method is used.";
            reference
              "ITU-T G.997.2 clause 7.1.2.13 (UPBOKLREF); ITU-T G.9701
              clause 7.3.1.4.2.2.";

          }
        }  // list upstream-power-back-off-profile
      }  // container spectrum

      container quality {
        description
          "Quality profile configuration.";
        list noise-margin-profile {
          key "name";
          description
            "A list of noise margin profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          container downstream {
            description
              "Downstream noise margin profile.";
            container noise-margin {
              description
                "Noise margin parameters.";
              leaf target-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../seamless-rate-adaptation/
                         upshift-noise-margin" {
                  description
                    "The target noise margin must be less than or equal to
the upshift noise margin.";
                }
                default "60";
                description
                  "Defines the target noise margin for the Channel
Initialization Policy.";
                reference
                  "ITU-T G.997.2 clause 7.1.3.1 (TARSNRMds);
                  ITU-T G.9701 clause 12.3.7.";

              }

              leaf minimum-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../seamless-rate-adaptation/
                         downshift-noise-margin" {
                  description
                    "The minimum noise margin must be less than or equal to
the downshift noise margin.";
                }
                default "0";
                description
                  "Defines the minimum noise margin the FAST Transceiver
Unit (FTU) receiver shall tolerate. If the noise margin
(SNRM) falls below this level, the FTU receiver requests
the FTU transmitter to increase the FTU transmit power.
If an increase to FTU transmit power is not possible, a
loss-of-margin(lom) defect occurs. Upon persistency of
the lom defect, the FTU receiver triggers a
re-initialization (see clause 12.1.4.2/G.9701).";
                reference
                  "ITU-T G.997.2 clause 7.1.3.4 (MINSNRMds);
                  ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf target-noise-margin-in-l2 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". >= ../minimum-noise-margin" {
                  description
                    "The target low power noise margin must be greater than
or equal to the minimum noise margin.";
                }
                default "60";
                description
                  "Defines the target noise margin used during the L2.1 and
L2.2 link state for both the upstream and downstream
direction.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.1 (L2-TARSNRM); ITU-T G.9701
                  clause 13.4.1.4 and 13.4.2.4.";

              }

              leaf maximum-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310 | 511";
                }
                units "0.1 dB";
                must
                  ". >= ../target-noise-margin-in-l2" {
                  description
                    "The maximum low power noise margin must be greater than
or equal to the target low power noise margin.";
                }
                default "511";
                description
                  "Defines the maximum noise margin allowed during the L2.1
and L2.2 link state for both the upstream and downstream
direction. The special value, 511, indicates there is no
maximum bound for the noise margin (i.e., the maximum
noise margin is infinite).";
                reference
                  "ITU-T G.997.2 clause 7.1.10.2 (L2-MAXSNRM); ITU-T G.9701
                  clause 13.4.1.4 and 13.4.2.4.";

              }
            }  // container noise-margin

            container seamless-rate-adaptation {
              description
                "Seamless Rate Adaptation(SRA) parameters";
              leaf downshift-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../noise-margin/target-noise-margin" {
                  description
                    "The downshift noise margin must be less than or equal
to the target noise margin.";
                }
                default "50";
                description
                  "If the noise margin (SNRM) is below the downshift noise
margin and stays below that for more than the time
specified by the minimum downshift rate adaptation
interval (SRA-DTIME), the transmitting FAST Transceiver
Unit (FTU) autonomously attempts to decrease the net data
rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.5 (SRA-DSNRMds);
                  ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf upshift-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "70";
                description
                  "If the noise margin (SNRM) is above the upshift noise
margin and stays above that for more than the time specified
by the minimum upshift rate adaptation interval (SRA-UTIME),
the transmitting FTU autonomously attempts to increase the
net data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.1 (SRA-USNRMds) and clause
                  7.1.4.2 (SRA-USNRMus); ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf upshift-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "70";
                description
                  "If the noise margin in the L2.1N and L2.1B link states
(L2.1-SNRM) is above the upshift noise margin and stays
above that for more than the time specified by the minimum
upshift rate adaptation interval (SRA-UTIME), the FTU-R
autonomously attempts to increase the net data rate in the
L2.1 link state.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.4 (L2.1-SRA-USNRMds) and clause
                  7.1.10.5 (L2.1-SRA-USNRMus); ITU-T G.9701 clause
                  13.4.1.4.7.";

              }

              leaf minimum-time-interval-upshift-sra {
                type uint16 {
                  range "0..16383";
                }
                units "1 second";
                default "8";
                description
                  "Defines the interval of time the noise margin (SNRM) should
stay above the upshift noise margin (SRA-USNRM) before the
transmitting FTU autonomously attempts to increase the net
data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.3 (SRA-UTIMEds) and clause
                  7.1.4.4 (SRA-UTIMEus); ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf downshift-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "50";
                description
                  "If the noise margin in the L2.1N and L2.1B link states
(L2.1-SNRM) is below the downshift noise margin and stays
below that for more than the time specified by the minimum
downshift rate adaptation interval (SRA-DTIME), the FTU-R
autonomously attempts to decrease the net data rate in the
L2.1 link state.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.6 (L2.1-SRA-DSNRMds) and clause
                  7.1.10.7 (L2.1-SRA-DSNRMus); ITU-T G.9701 clause
                  13.4.1.4.7.";

              }

              leaf minimum-time-interval-downshift-sra {
                type uint16 {
                  range "0..16383";
                }
                units "1 second";
                default "2";
                description
                  "Defines the interval of time the noise margin (SNRM) should
stay below the downshift noise margin (SRA-DSNRM) before the
transmitting FAST Transceiver Unit (FTU) autonomously
attempts to decrease the net data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.7 (SRA-DTIMEds) and clause
                  7.1.4.8 (SRA-DTIMEus); ITU-T G.9701 clause 12.3.4.2.1.";

              }
            }  // container seamless-rate-adaptation

            container robust-management-channel {
              description
                "Robust Management Channel (RMC) parameters.";
              leaf target-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "60";
                description
                  "Defines the Robust Management Channel (RMC) noise margin
(SNRMRMC) that the FAST Transceiver Unit (FTU) receiver
shall achieve, relative to the Bit Error Rate (BER)
requirement, or better, to successfully complete
initialization.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.1 (TARSNRM-RMCds) and clause
                  7.1.6.2 (TARSNRM-RMCus); ITU-T G.9701 clause 12.3.3.2.1.";

              }

              leaf minimum-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../target-noise-margin" {
                  description
                    "The minimum noise margin must be less than or equal to
the target noise margin";
                }
                default "0";
                description
                  "Defines the minimum noise margin the FAST Transceiver Unit
(FTU) receiver tolerates for the Robust Management Channel
(RMC). If the RMC noise margin (SNRM-RMC) falls below
this level, the FTU receiver initiates the RMC Parameter
Adjustment (RPA) procedure.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.3 (MINSNRM-RMCds) and clause
                  7.1.6.4 (MINSNRM-RMCus); ITU-T G.9701 clause 13.2.1.3.";

              }

              leaf maximum-bit-loading {
                type uint8 {
                  range "2..6";
                }
                default "6";
                description
                  "Defines the maximum allowed bit-loading for the Robust
Management Channel (RMC) sub-carriers.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.5 (MAXBL-RMCds) and clause
                  7.1.6.6 (MAXBL-RMCus); ITU-T G.9701 clause 12.3.3.2.1.";

              }
            }  // container robust-management-channel
          }  // container downstream

          container upstream {
            description
              "Upstream noise margin profile.";
            container noise-margin {
              description
                "Noise margin parameters.";
              leaf target-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../seamless-rate-adaptation/
                         upshift-noise-margin" {
                  description
                    "The target noise margin must be less than or equal to
the upshift noise margin.";
                }
                default "60";
                description
                  "Defines the target noise margin for the Channel
Initialization Policy.";
                reference
                  "ITU-T G.997.2 clause 7.1.3.2 (TARSNRMus);
                  ITU-T G.9701 clause 12.3.7.";

              }

              leaf minimum-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../seamless-rate-adaptation/
                         downshift-noise-margin" {
                  description
                    "The minimum noise margin must be less than or equal to
the downshift noise margin";
                }
                default "0";
                description
                  "Defines the minimum noise margin the FAST Transceiver
Unit (FTU) receiver shall tolerate. If the noise margin
(SNRM) falls below this level, the FTU receiver requests
the FTU transmitter to increase the FTU transmit power.
If an increase to FTU transmit power is not possible, a
loss-of-margin(lom) defect occurs. Upon persistency of
the lom defect, the FTU receiver triggers a
re-initialization (see clause 12.1.4.2/G.9701).";
                reference
                  "ITU-T G.997.2 clause 7.1.3.5 (MINSNRMus);
                  ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf maximum-noise-margin {
                type uint16 {
                  range "0..310 | 511";
                }
                units "0.1 dB";
                must
                  ". >= ../../seamless-rate-adaptation/
                         upshift-noise-margin" {
                  description
                    "The maximum noise margin must be greater than or equal
to the upshift noise margi.n";
                }
                default "511";
                description
                  "Defines the maximum noise margin used in the Channel
Initialization Policy.
A special value, 511, indicates there is no maximum bound
for the noise margin (i.e., the maximum noise margin is
infinite).";
                reference
                  "ITU-T G.997.2 clause 7.1.3.3 MAXSNRMus); ITU-T G.9701
                  clause 12.3.7.";

              }

              leaf target-noise-margin-in-l2 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". >= ../minimum-noise-margin" {
                  description
                    "The target low power noise margin must be greater than
or equal to the minimum noise margin.";
                }
                default "60";
                description
                  "Defines the target noise margin used during the L2.1 and
L2.2 link state for both the upstream and downstream
direction.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.1 (L2-TARSNRM); ITU-T G.9701
                  clause 13.4.1.4 and 13.4.2.4.";

              }

              leaf maximum-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310 | 511";
                }
                units "0.1 dB";
                must
                  ". >= ../target-noise-margin-in-l2" {
                  description
                    "The maximum low power noise margin must be greater than
or equal to the target low power noise margin.";
                }
                default "511";
                description
                  "Defines the maximum noise margin allowed during the L2.1
and L2.2 link state for both the upstream and downstream
direction. The special value, 511, indicates there is no
maximum bound for the noise margin (i.e., the maximum
noise margin is infinite).";
                reference
                  "ITU-T G.997.2 clause 7.1.10.2 (L2-MAXSNRM); ITU-T G.9701
                  clause 13.4.1.4 and 13.4.2.4.";

              }
            }  // container noise-margin

            container seamless-rate-adaptation {
              description
                "Seamless Rate Adaptation(SRA) parameters";
              leaf downshift-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../../noise-margin/target-noise-margin" {
                  description
                    "The downshift noise margin must be less than or equal
to the target noise margin.";
                }
                default "50";
                description
                  "If the noise margin (SNRM) is below the downshift noise
margin and stays below that for more than the time
specified by the minimum downshift rate adaptation
interval (SRA-DTIME), the transmitting FAST Transceiver
Unit (FTU) autonomously
attempts to decrease the net data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.6 (SRA-DSNRMus);
                  ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf upshift-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "70";
                description
                  "If the noise margin (SNRM) is above the upshift noise
margin and stays above that for more than the time specified
by the minimum upshift rate adaptation interval (SRA-UTIME),
the transmitting FTU autonomously attempts to increase the
net data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.1 (SRA-USNRMds) and clause
                  7.1.4.2 (SRA-USNRMus); ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf upshift-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "70";
                description
                  "If the noise margin in the L2.1N and L2.1B link states
(L2.1-SNRM) is above the upshift noise margin and stays
above that for more than the time specified by the minimum
upshift rate adaptation interval (SRA-UTIME), the FTU-R
autonomously attempts to increase the net data rate in the
L2.1 link state.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.4 (L2.1-SRA-USNRMds) and clause
                  7.1.10.5 (L2.1-SRA-USNRMus); ITU-T G.9701 clause
                  13.4.1.4.7.";

              }

              leaf minimum-time-interval-upshift-sra {
                type uint16 {
                  range "0..16383";
                }
                units "1 second";
                default "8";
                description
                  "Defines the interval of time the noise margin (SNRM) should
stay above the upshift noise margin (SRA-USNRM) before the
transmitting FTU autonomously attempts to increase the net
data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.3 (SRA-UTIMEds) and clause
                  7.1.4.4 (SRA-UTIMEus); ITU-T G.9701 clause 12.3.4.2.1.";

              }

              leaf downshift-noise-margin-in-l2.1 {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "50";
                description
                  "If the noise margin in the L2.1N and L2.1B link states
(L2.1-SNRM) is below the downshift noise margin and stays
below that for more than the time specified by the minimum
downshift rate adaptation interval (SRA-DTIME), the FTU-R
autonomously attempts to decrease the net data rate in the
L2.1 link state.";
                reference
                  "ITU-T G.997.2 clause 7.1.10.6 (L2.1-SRA-DSNRMds) and clause
                  7.1.10.7 (L2.1-SRA-DSNRMus); ITU-T G.9701 clause
                  13.4.1.4.7.";

              }

              leaf minimum-time-interval-downshift-sra {
                type uint16 {
                  range "0..16383";
                }
                units "1 second";
                default "2";
                description
                  "Defines the interval of time the noise margin (SNRM) should
stay below the downshift noise margin (SRA-DSNRM) before the
transmitting FAST Transceiver Unit (FTU) autonomously
attempts to decrease the net data rate (NDR).";
                reference
                  "ITU-T G.997.2 clause 7.1.4.7 (SRA-DTIMEds) and clause
                  7.1.4.8 (SRA-DTIMEus); ITU-T G.9701 clause 12.3.4.2.1.";

              }
            }  // container seamless-rate-adaptation

            container robust-management-channel {
              description
                "Robust Management Channel (RMC) parameters.";
              leaf target-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                default "60";
                description
                  "Defines the Robust Management Channel (RMC) noise margin
(SNRMRMC) that the FAST Transceiver Unit (FTU) receiver
shall achieve, relative to the Bit Error Rate (BER)
requirement, or better, to successfully complete
initialization.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.1 (TARSNRM-RMCds) and clause
                  7.1.6.2 (TARSNRM-RMCus); ITU-T G.9701 clause 12.3.3.2.1.";

              }

              leaf minimum-noise-margin {
                type uint16 {
                  range "0..310";
                }
                units "0.1 dB";
                must
                  ". <= ../target-noise-margin" {
                  description
                    "The minimum noise margin must be less than or equal to
the target noise margin";
                }
                default "0";
                description
                  "Defines the minimum noise margin the FAST Transceiver Unit
(FTU) receiver tolerates for the Robust Management Channel
(RMC). If the RMC noise margin (SNRM-RMC) falls below
this level, the FTU receiver initiates the RMC Parameter
Adjustment (RPA) procedure.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.3 (MINSNRM-RMCds) and clause
                  7.1.6.4 (MINSNRM-RMCus); ITU-T G.9701 clause 13.2.1.3.";

              }

              leaf maximum-bit-loading {
                type uint8 {
                  range "2..6";
                }
                default "6";
                description
                  "Defines the maximum allowed bit-loading for the Robust
Management Channel (RMC) sub-carriers.";
                reference
                  "ITU-T G.997.2 clause 7.1.6.5 (MAXBL-RMCds) and clause
                  7.1.6.6 (MAXBL-RMCus); ITU-T G.9701 clause 12.3.3.2.1.";

              }
            }  // container robust-management-channel
          }  // container upstream
        }  // list noise-margin-profile

        list fast-rate-adaptation-profile {
          key "name";
          description
            "A list of fast rate adaptation profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          container downstream {
            description
              "Downstream fast rate adaptation profile.";
            leaf time-window {
              type uint8 {
                range "0 | 1..36";
              }
              units "1 logical frame length";
              default "8";
              description
                "Defines the duration of the time window used in the
standard Fast Rate Adaptation (FRA) triggering criteria. The
special value, 0, indicates that the vendor discretionary
values for fra-ntones, fra-rtx-uc, and fra-time may be used.
(see clause 13.4.3.2/G.997.2).";
              reference
                "ITU-T G.997.2 clause 7.1.5.1 (FRA-TIMEds) and clause
                7.1.5.2 (FRA-TIMEus); ITU-T G.9701 clause 13.3.1.1.1.1.";

            }

            leaf minimum-degraded-tones {
              type uint8 {
                range "0 | 1..100";
              }
              units "percentage";
              default "50";
              description
                "Defines the minimum percentage of loaded sub-carriers (i.e.
sub-carriers with bi>0) that are detected as degraded
throughout a time window equal to FRA-TIME in order to arm
the first Fast Rate Adaptation (FRA) triggering criteria
(see clause 13.3.1.1.1.5).
The special value, 0, indicates that monitoring of the
percentage of degraded sub-carriers is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.5.3 (FRA-NTONESds) and clause
                7.1.5.4 (FRA-NTONESus); ITU-T G.9701 clause 13.3.1.1.1.2.";

            }

            leaf uncorrectable-dtu {
              type uint16 {
                range "0 | 1..1023";
              }
              default "150";
              description
                "Defines the minimum number of rtx-uc anomalies received
throughout a time window equal to FRA-TIME in order to arm
the second Fast Rate Adaptation (FRA) triggering criteria
(see clause 13.3.1.1.1.5).
The special value, 0, indicates that monitoring of the
number of rtx-uc anomalies is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.5.5 (FRA-RTXUCds) and clause
                7.1.5.6 (FRA-RTXUCus); ITU-T G.9701 clause 13.3.1.1.1.3.";

            }

            leaf vendor-discretionary-fra-triggering-criteria {
              type boolean;
              default "false";
              description
                "Defines whether vendor discretionary Fast Rate Adaptation
(FRA) triggering criteria may be used (enabled) or not
(disabled).";
              reference
                "ITU-T G.997.2 clause 7.1.5.7 (FRA-VENDISds) and clause
                7.1.5.8 (FRA-VENDISus); ITU-T G.9701 clause 13.3.1.1.1.4.";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream fast rate adaptation profile.";
            leaf time-window {
              type uint8 {
                range "0 | 1..36";
              }
              units "1 logical frame length";
              default "8";
              description
                "Defines the duration of the time window used in the
standard Fast Rate Adaptation (FRA) triggering criteria. The
special value, 0, indicates that the vendor discretionary
values for fra-ntones, fra-rtx-uc, and fra-time may be used.
(see clause 13.4.3.2/G.997.2).";
              reference
                "ITU-T G.997.2 clause 7.1.5.1 (FRA-TIMEds) and clause
                7.1.5.2 (FRA-TIMEus); ITU-T G.9701 clause 13.3.1.1.1.1.";

            }

            leaf minimum-degraded-tones {
              type uint8 {
                range "0 | 1..100";
              }
              units "percentage";
              default "50";
              description
                "Defines the minimum percentage of loaded sub-carriers (i.e.
sub-carriers with bi>0) that are detected as degraded
throughout a time window equal to FRA-TIME in order to arm
the first Fast Rate Adaptation (FRA) triggering criteria
(see clause 13.3.1.1.1.5).
The special value, 0, indicates that monitoring of the
percentage of degraded sub-carriers is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.5.3 (FRA-NTONESds) and clause
                7.1.5.4 (FRA-NTONESus); ITU-T G.9701 clause 13.3.1.1.1.2.";

            }

            leaf uncorrectable-dtu {
              type uint16 {
                range "0 | 1..1023";
              }
              default "150";
              description
                "Defines the minimum number of rtx-uc anomalies received
throughout a time window equal to FRA-TIME in order to arm
the second Fast Rate Adaptation (FRA) triggering criteria
(see clause 13.3.1.1.1.5).
The special value, 0, indicates that monitoring of the
number of rtx-uc anomalies is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.5.5 (FRA-RTXUCds) and clause
                7.1.5.6 (FRA-RTXUCus); ITU-T G.9701 clause 13.3.1.1.1.3.";

            }

            leaf vendor-discretionary-fra-triggering-criteria {
              type boolean;
              default "false";
              description
                "Defines whether vendor discretionary Fast Rate Adaptation
(FRA) triggering criteria may be used (enabled) or not
(disabled).";
              reference
                "ITU-T G.997.2 clause 7.1.5.7 (FRA-VENDISds) and clause
                7.1.5.8 (FRA-VENDISus); ITU-T G.9701 clause 13.3.1.1.1.4.";

            }
          }  // container upstream
        }  // list fast-rate-adaptation-profile

        list vectoring-profile {
          key "name";
          description
            "A list of vectoring profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          container downstream {
            description
              "Downstream vectoring parameters.";
            leaf fext-to-cancel-enable {
              type boolean;
              default "true";
              description
                "Defines whether Far-End Crosstalk (FEXT) cancellation in the
given direction from all the other vectored lines into the
line in the vectored group is enabled or disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.7.1 (FEXT_TO_CANCEL_ENABLEds) and
                clause 7.1.7.2 (FEXT_TO_CANCEL_ENABLEus); ITU-T G.9701
                clause 11.4.3.1.";

            }

            leaf xlog-group-size-req {
              type uint8 {
                range
                  "1 | 2 | 4 | 8 | 16 | 32 | 64";
              }
              units "1 sub-carrier";
              default "1";
              description
                "This parameter is the requested lower bound on the value of
XLOGGds in the reporting of Xlogpsds.";
              reference
                "ITU-T G.997.2 clause 7.1.7.3 (XLOGGREQds); ITU-T G.9701
                clause 11.4.3.2";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream vectoring parameters.";
            leaf fext-to-cancel-enable {
              type boolean;
              default "true";
              description
                "Defines whether Far-End Crosstalk (FEXT) cancellation in the
given direction from all the other vectored lines into the
line in the vectored group is enabled or disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.7.1 (FEXT_TO_CANCEL_ENABLEds) and
                clause 7.1.7.2 (FEXT_TO_CANCEL_ENABLEus); ITU-T G.9701
                clause 11.4.3.1.";

            }
          }  // container upstream

          leaf annex-x-mode {
            if-feature annex-x;
            type enumeration {
              enum "forbidden" {
                value 0;
                description
                  "AnnexX_FORBIDDEN (Operation according to
Annex X operation is not allowed.).";
              }
              enum "preferred" {
                value 1;
                description
                  "AnnexX_PREFERRED (Operation according to
Annex X is preferred.).";
              }
              enum "forced" {
                value 2;
                description
                  "AnnexX_FORCED (Operation according to
Annex is forced.).";
              }
            }
            default "forbidden";
            description
              " Determines whether Annex X operation of
 [ITU-T G.9701] is enabled.

 If 'annex-x-mode' is configured to 'preferred' or 'forced',
 then 'annex-d-mode', if supported, must be configured to
 'forbidden'.";
            reference
              "ITU-T G.9701 xlause X.6.7.1 and T.2.1.";

          }

          leaf annex-d-mode {
            if-feature annex-d;
            type enumeration {
              enum "forbidden" {
                value 0;
                description
                  "AnnexD_FORBIDDEN (Operation according to
Annex D operation is not allowed.).";
              }
              enum "preferred" {
                value 1;
                description
                  "AnnexD_PREFERRED (Operation according to
Annex D is preferred.).";
              }
              enum "forced" {
                value 2;
                description
                  "AnnexD_FORCED (Operation according to
Annex D is forced.).";
              }
            }
            must
              "(not(boolean(../annex-x-mode))) or (../annex-x-mode = 'forbidden' or . = 'forbidden')" {
              description
                "At least one of annex X mode or annex D mode must be
configured to 'forbidden'.";
            }
            default "forbidden";
            description
              "Determines whether Annex D operation of
[ITU-T G.9701] is enabled.

If 'annex-d-mode' is configured to 'preferred' or 'forced',
then 'annex-x-mode', if supported, must be configured to
'forbidden'.";
            reference
              "ITU-T G.9701 clause D.5.7.1 and T.2.1.1.";

          }
        }  // list vectoring-profile

        list fast-retrain-policy-profile {
          key "name";
          description
            "A list of fast retrain policy profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          container downstream {
            description
              "Downstream fast retrain policy parameters.";
            leaf los-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "0.1 second";
              default "2";
              description
                "Defines the loss of signal (los) defect persistency for
triggering a reinitialization (see clause 12.1.4.2) at the
FAST Transceiver Unit (FTU) receiver, as part of the fast
retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.1 (LOS_PERSISTENCYds) and clause
                7.1.8.2 (LOS_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.1.";

            }

            leaf lom-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "1 second";
              default "2";
              description
                "Defines the loss of margin (lom) defect persistency for
triggering a reinitialization (see clause 12.1.4.2) at the
FAST Transceiver Unit (FTU) receiver, as part of the fast
retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.3 (LOM_PERSISTENCYds) and clause
                7.1.8.4 (LOM_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.2.";

            }

            leaf lor-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "0.1 second";
              default "2";
              description
                "Defines the loss of Robust Management Channel (RMC) (lor)
defect persistency for triggering a reinitialization
(see clause 12.1.4.2) at the FAST Transceiver Unit (FTU)
receiver, as part of the fast retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.5 (LOR_PERSISTENCYds) and clause
                7.1.8.6 (LOR_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.3.";

            }

            leaf reinit-time-threshold {
              type uint8 {
                range "5..31";
              }
              units "1 second";
              default "10";
              description
                "Defines the threshold for the Severly Errored Seconds (SES)
and embedded operations channel (eoc) timeout conditions for
declaring a High_BER event (see clause 12.1.4.3.4) at the
FAST Transceiver Unit (FTU) receiver, as part of the
fast retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.7 (REINIT_TIME_THRESHOLDds) and
                clause 7.1.8.8 (REINIT_TIME_THRESHOLDus); ITU-T G.9701
                clause 12.1.4.3.4.";

            }

            leaf low-etr-threshold {
              type uint8 {
                range "0 | 1..30";
              }
              units "1 second";
              default "20";
              description
                "Defines the threshold for the low Expected Throughput Rate
(ETR) condition for declaring a High_BER event
(see clause 12.1.4.3.4) at the FAST Transceiver Unit (FTU)
receiver, as part of the fast retrain policy.
The special value, 0, indicates that no High_BER event is
declared based on ETR being below the ETR_min.";
              reference
                "ITU-T G.997.2 clause 7.1.8.9 (LOW_ETR_THRESHOLDds) and
                clause 7.1.8.10 (LOW_ETR_THRESHOLDus); ITU-T G.9701 clause
                12.1.4.3.4.";

            }

            leaf lor-rmcr-persistency {
              if-feature rmcr;
              type uint8;
              units "50 ms";
              default "0";
              description
                "Defines the persistency period of a loss of Robust Management
Channel (RMC) (lor) defect before the RMC is declared
severely degraded. The value 0 is a special value
that indicates that the RMCR procedure is disabled. It can
only be set to 0 in one direction if the value is also set to
0 in the opposite direction.";
              reference
                "ITU-T G.997.2 clause 7.1.12.1 (RMCR_LOR_TRIGGERds/us)";

            }
          }  // container downstream

          container upstream {
            description
              "Downstream fast retrain policy parameters.";
            leaf los-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "0.1 second";
              default "2";
              description
                "Defines the loss of signal (los) defect persistency for
triggering a reinitialization (see clause 12.1.4.2) at the
FAST Transceiver Unit (FTU) receiver, as part of the fast
retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.1 (LOS_PERSISTENCYds) and clause
                7.1.8.2 (LOS_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.1.";

            }

            leaf lom-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "1 second";
              default "2";
              description
                "Defines the loss of margin (lom) defect persistency for
triggering a reinitialization (see clause 12.1.4.2) at the
FAST Transceiver Unit (FTU) receiver, as part of the fast
retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.3 (LOM_PERSISTENCYds) and clause
                7.1.8.4 (LOM_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.2.";

            }

            leaf lor-defect-persistency {
              type uint8 {
                range "1..20";
              }
              units "0.1 second";
              default "2";
              description
                "Defines the loss of Robust Management Channel (RMC) (lor)
defect persistency for triggering a reinitialization
(see clause 12.1.4.2) at the FAST Transceiver Unit (FTU)
receiver, as part of the fast retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.5 (LOR_PERSISTENCYds) and clause
                7.1.8.6 (LOR_PERSISTENCYus); ITU-T G.9701 clause
                12.1.4.3.3.";

            }

            leaf reinit-time-threshold {
              type uint8 {
                range "5..31";
              }
              units "1 second";
              default "10";
              description
                "Defines the threshold for the Severly Errored Seconds (SES)
and embedded operations channel (eoc) timeout conditions for
declaring a High_BER event (see clause 12.1.4.3.4) at the
FAST Transceiver Unit (FTU) receiver, as part of the
fast retrain policy.";
              reference
                "ITU-T G.997.2 clause 7.1.8.7 (REINIT_TIME_THRESHOLDds) and
                clause 7.1.8.8 (REINIT_TIME_THRESHOLDus); ITU-T G.9701
                clause 12.1.4.3.4.";

            }

            leaf low-etr-threshold {
              type uint8 {
                range "0 | 1..30";
              }
              units "1 second";
              default "20";
              description
                "Defines the threshold for the low Expected Throughput Rate
(ETR) condition for declaring a High_BER event
(see clause 12.1.4.3.4) at the FAST Transceiver Unit (FTU)
receiver, as part of the fast retrain policy.
The special value, 0, indicates that no High_BER event is
declared based on ETR being below the ETR_min.";
              reference
                "ITU-T G.997.2 clause 7.1.8.9 (LOW_ETR_THRESHOLDds) and
                clause 7.1.8.10 (LOW_ETR_THRESHOLDus); ITU-T G.9701 clause
                12.1.4.3.4.";

            }

            leaf lor-rmcr-persistency {
              if-feature rmcr;
              type uint8;
              units "50 ms";
              default "0";
              description
                "Defines the persistency period of a loss of Robust Management
Channel (RMC) (lor) defect before the RMC is declared
severely degraded. The value 0 is a special value
that indicates that the RMCR procedure is disabled. It can
only be set to 0 in one direction if the value is also set to
0 in the opposite direction.";
              reference
                "ITU-T G.997.2 clause 7.1.12.1 (RMCR_LOR_TRIGGERds/us)";

            }
          }  // container upstream
        }  // list fast-retrain-policy-profile

        list retransmission-profile {
          key "name";
          description
            "A list of retransmission profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          container downstream {
            description
              "Downstream retransmission parameters.";
            leaf maximum-delay {
              type uint32 {
                range "4..64";
              }
              units "0.25 millisecond";
              default "40";
              description
                "Defines the maximum allowed delay for retransmission (see
clause 9.8/G.9701). The G.9701 control parameter delay_max
is set to the same value as the maximum delay (see clause
11.4.2.3/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.1 (DELAYMAX); ITU-T G.9701
                clause 11.4.2.3.";

            }

            leaf minimum-inp-against-shine {
              type uint16 {
                range "0..520";
              }
              units "1 symbol period";
              default "0";
              description
                "Defines the minimum impulse noise protection against Single
High Impulse Noise Event (SHINE) (see clause 9.8/G.9701). The
G.9701 control parameter INP_min_shine is set to the same
value as the minimum impulse noise protection against SHINE
(see clause 11.4.2.4/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.2 (INPMIN_SHINE); ITU-T G.9701
                clause 11.4.2.4.";

            }

            leaf shine-ratio {
              type uint8 {
                range "0..100";
              }
              units "0.001";
              default "0";
              description
                "Defines the SHINEratio that is used in the definition of
the expected throughput rate (ETR) (see clause 9.8/G.9701).
The G.9701 control parameter SHINEratio is set to the same
value as the Single High Impulse Noise Event (SHINE) ratio
(see clause 11.4.2.5/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.3 (SHINERATIO); ITU-T G.9701
                clause 11.4.2.5.";

            }

            leaf minimum-inp-against-rein {
              type uint8 {
                range "0..63";
              }
              units "1 symbol period";
              default "0";
              description
                "Defines the minimum impulse noise protection against
Repetitive Electrical Impulse Noise (REIN)
(see clause 9.8/G.9701). The G.9701 control parameter
INP_min_rein is set to the same value as the minimum impulse
noise protection against REIN (see clause
11.4.2.6/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.4 (INPMIN_REIN); ITU-T G.9701
                clause 11.4.2.6.";

            }

            leaf rein-inter-arrival-time {
              type enumeration {
                enum "hz-100" {
                  value 0;
                  description "100 Hz.";
                }
                enum "hz-120" {
                  value 1;
                  description "120 Hz.";
                }
                enum "hz-300" {
                  value 2;
                  description "300 Hz.";
                }
                enum "hz-360" {
                  value 3;
                  description "360 Hz.";
                }
              }
              default "hz-100";
              description
                "Defines the Repetitive Electrical Impulse Noise (REIN)
inter-arrival time (see clause 9.8/G.9701). The G.9701
control parameter iat_rein_flag is set to the same value as
the REIN inter-arrival time (see clause 11.4.2.7/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.5 (IAT_REIN); ITU-T G.9701
                clause 11.4.2.7.";

            }

            leaf minimum-rfec-nfec-ratio {
              type uint8 {
                range "0..8";
              }
              units "1/32";
              default "0";
              description
                "Defines the minimal required ratio, RFEC/NFEC, of
Reed-Solomon code parameters. The G.9701 control parameter
rnratio is set to the same value as the Minimum Reed-Solomon
RFEC/NFEC ratio (see clause 11.4.2.8/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.6 (RNRATIO); ITU-T G.9701 clause
                11.4.2.8.";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream retransmission parameters.";
            leaf maximum-delay {
              type uint32 {
                range "4..64";
              }
              units "0.25 millisecond";
              default "40";
              description
                "Defines the maximum allowed delay for retransmission (see
clause 9.8/G.9701). The G.9701 control parameter delay_max
is set to the same value as the maximum delay (see clause
11.4.2.3/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.1 (DELAYMAX); ITU-T G.9701
                clause 11.4.2.3.";

            }

            leaf minimum-inp-against-shine {
              type uint16 {
                range "0..520";
              }
              units "1 symbol period";
              default "0";
              description
                "Defines the minimum impulse noise protection against Single
High Impulse Noise Event (SHINE) (see clause 9.8/G.9701). The
G.9701 control parameter INP_min_shine is set to the same
value as the minimum impulse noise protection against SHINE
(see clause 11.4.2.4/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.2 (INPMIN_SHINE); ITU-T G.9701
                clause 11.4.2.4.";

            }

            leaf shine-ratio {
              type uint8 {
                range "0..100";
              }
              units "0.001";
              default "0";
              description
                "Defines the SHINEratio that is used in the definition of
the expected throughput rate (ETR) (see clause 9.8/G.9701).
The G.9701 control parameter SHINEratio is set to the same
value as the Single High Impulse Noise Event (SHINE) ratio
(see clause 11.4.2.5/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.3 (SHINERATIO); ITU-T G.9701
                clause 11.4.2.5.";

            }

            leaf minimum-inp-against-rein {
              type uint8 {
                range "0..63";
              }
              units "1 symbol period";
              default "0";
              description
                "Defines the minimum impulse noise protection against
Repetitive Electrical Impulse Noise (REIN)
(see clause 9.8/G.9701). The G.9701 control parameter
INP_min_rein is set to the same value as the minimum impulse
noise protection against REIN (see clause
11.4.2.6/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.4 (INPMIN_REIN); ITU-T G.9701
                clause 11.4.2.6.";

            }

            leaf rein-inter-arrival-time {
              type enumeration {
                enum "hz-100" {
                  value 0;
                  description "100 Hz.";
                }
                enum "hz-120" {
                  value 1;
                  description "120 Hz.";
                }
                enum "hz-300" {
                  value 2;
                  description "300 Hz.";
                }
                enum "hz-360" {
                  value 3;
                  description "360 Hz.";
                }
              }
              default "hz-100";
              description
                "Defines the Repetitive Electrical Impulse Noise (REIN)
inter-arrival time (see clause 9.8/G.9701). The G.9701
control parameter iat_rein_flag is set to the same value as
the REIN inter-arrival time (see clause 11.4.2.7/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.5 (IAT_REIN); ITU-T G.9701
                clause 11.4.2.7.";

            }

            leaf minimum-rfec-nfec-ratio {
              type uint8 {
                range "0..8";
              }
              units "1/32";
              default "0";
              description
                "Defines the minimal required ratio, RFEC/NFEC, of
Reed-Solomon code parameters. The G.9701 control parameter
rnratio is set to the same value as the Minimum Reed-Solomon
RFEC/NFEC ratio (see clause 11.4.2.8/G.9701).";
              reference
                "ITU-T G.997.2 clause 7.2.2.6 (RNRATIO); ITU-T G.9701 clause
                11.4.2.8.";

            }
          }  // container upstream
        }  // list retransmission-profile

        list impulse-noise-monitoring-profile {
          if-feature impulse-noise-monitoring;
          key "name";
          description
            "A list of impulse noise monitoring profiles.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "A name that uniquely identifies the profile.";
          }

          leaf inpeq-scaling-factor {
            type uint8 {
              range "4 | 8 | 12";
            }
            default "12";
            description
              "Defines the time unit scaling factor for the line that the
FAST Transceiver Unit (FTU) receivers shall use for reporting
INPEQ.";
            reference
              "ITU-T G.997.2 clause 7.1.11.6;
              ITU-T G.9701 clause 11.4.4.7.2.6";

          }

          leaf iat-scaling-factor {
            type uint8 {
              range "4 | 8 | 12";
            }
            default "12";
            description
              "Defines the time unit scaling factor for the line that the
FAST Transceiver Unit (FTU) receivers shall use for reporting
Inter Arrival Time (IAT).";
            reference
              "ITU-T G.997.2 clause 7.1.11.7;
              ITU-T G.9701 clause 11.4.4.7.2.7";

          }

          leaf inm-enable {
            type boolean;
            default "false";
            description
              "If true, enables Impulse Noise Monitoring (INM) in both
directions. If false, disables Impulse Noise Monitoring (INM)
in both directions.";
            reference
              "ITU-T G.997.2 clause 7.1.11.8";

          }

          container downstream {
            description
              "Downstream impulse noise monitoring configuration.";
            leaf inmiato {
              type uint16 {
                range "3..511";
              }
              units "one IAT time unit";
              default "3";
              description
                "Defines the Inter Arrival Time (IAT) offset per direction
that the FTU receiver shall use to determine in which bin of
the inter arrival time histogram the IAT is reported.";
              reference
                "ITU-T G.997.2 clause 7.1.11.1 (INMIATO).
                ITU-T G.9701 clause 11.4.4.7.2.1.";

            }

            leaf inmiats {
              type uint8 {
                range "0..7";
              }
              units "one IAT time unit";
              default "1";
              description
                "Defines the Inter Arrival Time (IAT) step per direction that
the FAST Transceiver Unit (FTU) receiver shall use to
determine in which bin of the inter arrival time histogram
the IAT is reported.";
              reference
                "ITU-T G.997.2 clause 7.1.11.2 (INMIATS).
                ITU-T G.9701 clause 11.4.4.7.2.2.";

            }

            leaf inmcc {
              type uint8 {
                range "0..255";
              }
              units "One DMT symbol";
              default "1";
              description
                "Defines the cluster continuation value per direction that
the FAST Transceiver Unit (FTU) receiver shall use in the
cluster indication process.";
              reference
                "ITU-T G.997.2 clause 7.1.11.3 (INMCC).
                ITU-T G.9701 clause 11.4.4.7.2.3.";

            }

            leaf inm-inpeq-format {
              type enumeration {
                enum "linear" {
                  value 0;
                  description
                    "Linear scale.";
                }
                enum "logarithmic" {
                  value 1;
                  description
                    "Logarithmic scale.";
                }
              }
              default "linear";
              description
                "Defines the way the scale is configured for the INM_INPEQ
histogram.";
              reference
                "ITU-T G.997.2 clause 7.1.11.4 (INM_INPEQ_FORMAT).
                ITU-T G.9701 clause 11.4.4.7.2.4.";

            }

            leaf dtu-cluster-bridging {
              type boolean;
              default "false";
              description
                "Defines per direction whether the FAST Transceiver Unit (FTU)
receiver shall use bridging in the determination of the Data
Transfer Unit (DTU) cluster size. If 'true', bridging is
enabled. If 'false', bridging is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.11.5 (BRGN).
                ITU-T G.9701 clause 11.4.4.7.2.5.";

            }
          }  // container downstream

          container upstream {
            description
              "Upstream impulse noise monitoring configuration.";
            leaf inmiato {
              type uint16 {
                range "3..511";
              }
              units "one IAT time unit";
              default "3";
              description
                "Defines the Inter Arrival Time (IAT) offset per direction
that the FTU receiver shall use to determine in which bin of
the inter arrival time histogram the IAT is reported.";
              reference
                "ITU-T G.997.2 clause 7.1.11.1 (INMIATO).
                ITU-T G.9701 clause 11.4.4.7.2.1.";

            }

            leaf inmiats {
              type uint8 {
                range "0..7";
              }
              units "one IAT time unit";
              default "1";
              description
                "Defines the Inter Arrival Time (IAT) step per direction that
the FAST Transceiver Unit (FTU) receiver shall use to
determine in which bin of the inter arrival time histogram
the IAT is reported.";
              reference
                "ITU-T G.997.2 clause 7.1.11.2 (INMIATS).
                ITU-T G.9701 clause 11.4.4.7.2.2.";

            }

            leaf inmcc {
              type uint8 {
                range "0..255";
              }
              units "One DMT symbol";
              default "1";
              description
                "Defines the cluster continuation value per direction that
the FAST Transceiver Unit (FTU) receiver shall use in the
cluster indication process.";
              reference
                "ITU-T G.997.2 clause 7.1.11.3 (INMCC).
                ITU-T G.9701 clause 11.4.4.7.2.3.";

            }

            leaf inm-inpeq-format {
              type enumeration {
                enum "linear" {
                  value 0;
                  description
                    "Linear scale.";
                }
                enum "logarithmic" {
                  value 1;
                  description
                    "Logarithmic scale.";
                }
              }
              default "linear";
              description
                "Defines the way the scale is configured for the INM_INPEQ
histogram.";
              reference
                "ITU-T G.997.2 clause 7.1.11.4 (INM_INPEQ_FORMAT).
                ITU-T G.9701 clause 11.4.4.7.2.4.";

            }

            leaf dtu-cluster-bridging {
              type boolean;
              default "false";
              description
                "Defines per direction whether the FAST Transceiver Unit (FTU)
receiver shall use bridging in the determination of the Data
Transfer Unit (DTU) cluster size. If 'true', bridging is
enabled. If 'false', bridging is disabled.";
              reference
                "ITU-T G.997.2 clause 7.1.11.5 (BRGN).
                ITU-T G.9701 clause 11.4.4.7.2.5.";

            }
          }  // container upstream
        }  // list impulse-noise-monitoring-profile
      }  // container quality

      container thresholds {
        description
          "Threshold configuration.";
        list line-threshold-profile {
          key "name";
          description
            "Profile defining thresholds for line specific
performance parameters.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the line threshold profile.";
          }

          leaf errored-seconds-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of errored seconds (ES). A special
value (0) indicates the threshold is disabled. An errored
second (ES) is defined in clause 11.4.4.2/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.7.8 (CURR/PREV_NE/FE_15/24_ES);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_ES)";

          }

          leaf severely-errored-seconds-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of severely errored seconds (SES).
A special value (0) indicates the threshold is disabled.
A severely errored second (SES) is defined in clause
11.4.4.3/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.7.9 (CURR/PREV_NE/FE_15/24_SES);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_SES)";

          }

          leaf loss-of-signal-seconds-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of Loss of Signal (LOS) seconds
(LOSS). A special value (0) indicates the threshold is
disabled. A LOS second (LOSS) is defined in clause
11.4.4.4/G.9701. Support for this threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.10 (CURR/PREV_NE/FE_15/24_LOSS);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_LOSS)";

          }

          leaf loss-of-rmc-seconds-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of Loss of Robust Management Channel
(RMC) (LOR) seconds (LORS). A special value (0) indicates the
threshold is disabled. A LOR second (LORS) is defined in
clause 11.4.4.5/G.9701. Support for this threshold is
optional.";
            reference
              "ITU-T G.997.2 clause 7.7.11 (CURR/PREV_NE/FE_15/24_LORS);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_LORS)";

          }

          leaf unavailable-seconds-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of unavailable seconds (UAS). A
special value (0) indicates the threshold is disabled. An
unavailable second (UAS) is defined in clause
11.4.4.6/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.7.12 (CURR/PREV_NE/FE_15/24_UAS);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_UAS)";

          }

          leaf full-initializations-threshold {
            type uint32;
            default "0";
            description
              "Threshold for a count of the full initialization primitives
(full_init). A special value (0) indicates the threshold is
disabled. The full initialization primitive (full_init)
is defined in clause 11.3.1.5/G.9701. Support for this
threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.13 (CURR/PREV_15/24_FULL_INITS);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_15/24_FULL_INITS)";

          }

          leaf failed-initializations-threshold {
            type uint32;
            default "0";
            description
              "Threshold for a count of the failed full initialization
primitives (failedfull_init). A special value (0) indicates
the threshold is disabled. The failed full initialization
primitive (failedfull_init) is defined in clause
11.3.1.5/G.9701. Support for this threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.14
              (CURR/PREV_15/24_FAILEDFULL_INITS);
              ITU-T G.997.2 clause 8.2
              (THRESHOLD_15/24_FAILEDFULL_INITS)";

          }

          leaf fast-initializations-threshold {
            type uint32;
            default "0";
            description
              "Threshold for a count of the fast initialization primitives
(fast_init). A special value (0) indicates the threshold is
disabled. The fast initialization primitive (fast_init)
is defined in clause 11.3.1.5/G.9701. Support for this
threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.15 (CURR/PREV_15/24_FAST_INITS);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_15/24_FAST_INITS)";

          }

          leaf failed-fast-initializations-threshold {
            type uint32;
            default "0";
            description
              "Threshold for a count of the failed fast initialization
primitives (failedfast_init). A special value (0) indicates
the threshold is disabled. The failed fast initialization
primitive (failedfast_init) is defined in clause
11.3.1.5/G.9701. Support for this threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.16
              (CURR/PREV_15/24_FAILEDFAST_INITS);
              ITU-T G.997.2 clause 8.2
              (THRESHOLD_15/24_FAILEDFAST_INITS)";

          }

          leaf spontaneous-interruptions-threshold {
            type uint32;
            default "0";
            description
              "Threshold for a count of the spontaneous interruption
anomalies (spont_intrpt). A special value (0) indicates the
threshold is disabled. The spontaneous interruption anomaly
(spont_intrpt) is defined in clause 11.3.1.1/G.9701. Support
for this threshold is optional.";
            reference
              "ITU-T G.997.2 clause 7.7.19 (CURR/PREV_24_SPONT_INTRPT);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_24_SPONT_INTRPT)";

          }
        }  // list line-threshold-profile

        list channel-threshold-profile {
          key "name";
          description
            "Profile defining thresholds for bearer channel specific
performance parameters.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the channel threshold profile.";
          }

          leaf code-violations-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of the Cyclic Redundancy Check
anomalies (CRC). A special value (0) indicates the
threshold is disabled. The Cyclic Redundancy Check anomaly
(CRC) is defined in clause 11.3.1.1/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.8.4 (CURR/PREV_NE/FE_15/24_CV);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_CV)";

          }

          leaf uncorrectable-dtus-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of the uncorrected Data Transfer Unit
anomalies (RTX-UC). A special value (0) indicates the
threshold is disabled. The uncorrected DTU anomaly (RTX-UC)
is defined in clause 11.3.1.1/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.8.6 (CURR/PREV_NE/FE_15/24_RTXUC);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_RTXUC)";

          }

          leaf retransmitted-dtus-threshold {
            type uint32;
            units "1 second";
            default "0";
            description
              "Threshold for the count of the retransmitted Data Transfer
Unit (DTU) anomalies (RTC-TX). A special value (0) indicates
the threshold is disabled. The retransmitted DTU anomaly
(RTX-TX) is defined in clause 11.3.1.1/G.9701.";
            reference
              "ITU-T G.997.2 clause 7.8.7 (CURR/PREV_NE/FE_15/24_RTXTX);
              ITU-T G.997.2 clause 8.2 (THRESHOLD_NE/FE_15/24_RTXTX)";

          }
        }  // list channel-threshold-profile

        list threshold-template {
          key "name";
          description
            "A template defining the threshold profiles to apply to
performance parameters of a FAST interface.";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the line configuration vector.";
          }

          leaf ftu-o-15min-line-threshold-profile {
            type line-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a line threshold profile for FTU-O
thresholds related to 15 minute performance
counters.";
          }

          leaf ftu-o-24hr-line-threshold-profile {
            if-feature performance-24hr;
            type line-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a line threshold profile for FTU-O
thresholds related to 24 hour performance
counters.";
          }

          leaf ftu-r-15min-line-threshold-profile {
            type line-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a line threshold profile for FTU-R
thresholds related to 15 minute performance
counters.";
          }

          leaf ftu-r-24hr-line-threshold-profile {
            if-feature performance-24hr;
            type line-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a line threshold profile for FTU-R
thresholds related to 24 hour performance
counters.";
          }

          leaf ftu-o-15min-channel-threshold-profile {
            type channel-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a channel threshold profile for FTU-O
thresholds related to 15 minute performance
counters.";
          }

          leaf ftu-o-24hr-channel-threshold-profile {
            if-feature performance-24hr;
            type channel-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a channel threshold profile for FTU-O
thresholds related to 24 hour performance
counters.";
          }

          leaf ftu-r-15min-channel-threshold-profile {
            type channel-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a channel threshold profile for FTU-R
thresholds related to 15 minute performance
counters.";
          }

          leaf ftu-r-24hr-channel-threshold-profile {
            if-feature performance-24hr;
            type channel-threshold-profile-ref;
            mandatory true;
            description
              "Reference to a channel threshold profile for FTU-R
thresholds related to 24 hour performance
counters.";
          }
        }  // list threshold-template
      }  // container thresholds

      container vectors {
        description "Vectors of profiles.";
        list line-config-vector {
          key "name";
          description
            "A list of line configuration vectors also referred to as a
vector of profiles (VoP).";
          leaf name {
            type bbf-yang:string-ascii64;
            description
              "Uniquely identifies the line configuration vector.";
          }

          leaf time-division-duplexing-profile {
            type time-division-duplexing-profile-ref;
            mandatory true;
            description
              "References a time division duplexing (TDD) profile to be
used to configure the line.";
          }

          leaf downstream-data-rate-profile {
            type downstream-data-rate-profile-ref;
            mandatory true;
            description
              "References a downstream data rate profile to be used to
configure the line.";
          }

          leaf upstream-data-rate-profile {
            type upstream-data-rate-profile-ref;
            mandatory true;
            description
              "References an upstream data rate profile to be used to
configure the line.";
          }

          leaf low-power-data-rate-profile {
            type low-power-data-rate-profile-ref;
            mandatory true;
            description
              "References a low power data rate profile to be used to
configure the line.";
          }

          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 upstream-power-back-off-profile {
            type upstream-power-back-off-profile-ref;
            mandatory true;
            description
              "References an upstream power-back-off profile to be used to
configure the line.";
          }

          leaf radio-frequency-interference-profile {
            type radio-frequency-interference-profile-ref;
            mandatory true;
            description
              "References a Radio Frequency Interference (RFI) profile to be
used to configure the line.";
          }

          leaf noise-margin-profile {
            type noise-margin-profile-ref;
            mandatory true;
            description
              "References a noise margin profile to be used to configure
the line.";
          }

          leaf fast-rate-adaptation-profile {
            type fast-rate-adaptation-profile-ref;
            mandatory true;
            description
              "References a fast rate adaptation profile to be used to
configure the line.";
          }

          leaf retransmission-profile {
            type retransmission-profile-ref;
            mandatory true;
            description
              "References a retransmission profile to be used to configure
the line.";
          }

          leaf fast-retrain-policy-profile {
            type fast-retrain-policy-profile-ref;
            mandatory true;
            description
              "References a fast retrain policy profile to be used to
configure the line.";
          }

          leaf vectoring-profile {
            type vectoring-profile-ref;
            mandatory true;
            description
              "References a vectoring profile to be used to configure the
line.";
          }

          leaf impulse-noise-monitoring-profile {
            if-feature impulse-noise-monitoring;
            type leafref {
              path "/bbf-fast:fast/bbf-fast:quality/bbf-fast:impulse-noise-monitoring-profile/bbf-fast:name";
            }
            mandatory true;
            description
              "References an impulse noise monitoring profile to be used to
configure the line.";
          }
        }  // list line-config-vector
      }  // container vectors
    }  // container fast
  }  // module bbf-fast