bbf-xponvani

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on management of ITU-T Pas...

  • Version: 2023-06-21

    bbf-xponvani@2023-06-21


    
      module bbf-xponvani {
    
        yang-version 1.1;
    
        namespace "urn:bbf:yang:bbf-xponvani";
    
        prefix bbf-xponvani;
    
        include bbf-xponvani-base;
        include bbf-xponvani-v-ani-body;
        include bbf-xponvani-v-enet-body;
    
        organization
          "Broadband Forum <https://www.broadband-forum.org>
    Fiber Access Networks Work Area";
    
        contact
          "Comments or questions about this Broadband Forum YANG module
    should be directed to <mailto:info@broadband-forum.org>.
    
    Editor:      Robert Peschi, Nokia
    
    Editor:      Kevin Noll, Vecima
    
    PS Leader:   Joey Boyd, Adtran
    
    WA Director: Marta Seda, Calix";
    
        description
          "This module contains a collection of YANG definitions for
    supporting the Broadband Forum requirements on management of
    ITU-T Passive Optical Network (PON) interfaces as defined in
    ITU-T G.984.x, G.987.x, ITU-T G.989.x and ITU-T G.9807.x. As
    such, this module is specific to access network equipment (e.g.,
    BBF-specified Access Nodes and FTTdp DPUs).
    
    Specifically, this module defines management of the virtual
    representation of the Access Network Interfaces (vANI) of the
    Optical Network Unit (ONU).
    
    Copyright (c) 2018-2023, 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-385i2a1; see
    the TR itself for full legal notices.";
    
        revision "2023-06-21" {
          description
            "Issue 2 Amendment 1.
    * Approval Date:    2023-06-21.
    * Publication Date: 2023-06-21.";
          reference
            "TR-385i2a1: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-2_Amendment-1.pdf>";
    
        }
    
        revision "2020-10-13" {
          description
            "Issue 2.
    * Approval Date:    2020-10-13.
    * Publication Date: 2020-10-13.";
          reference
            "TR-385i2: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-2.pdf>";
    
        }
    
        revision "2020-01-31" {
          description
            "Corrigendum 1.
    * Approval Date:    2020-01-31.
    * Publication Date: 2020-01-31.";
          reference
            "TR-385c1: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385.pdf>";
    
        }
    
        revision "2019-02-25" {
          description
            "Initial revision.
    * Approval Date:    2019-02-25.
    * Publication Date: 2019-02-25.";
          reference
            "TR-385: ITU-T PON YANG Modules
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385.pdf>";
    
        }
    
    
        // features
    
        feature configurable-v-ani-onu-id {
          description
            "Indicates support for configuration of the Optical Network Unit
    (ONU) ID associated with the virtual Access Network Interface
    (vANI).";
        }
    
        feature configurable-v-ani-management-gem-port-id {
          description
            "Indicates support for configuration of the management
    GPON Encapsulation Method (GEM) port.";
        }
    
        feature v-ani-defect-notifications {
          description
            "Indicates support for reporting state change of the defects
    associated with the virtual Access Network Interface (vANI).";
        }
    
        // groupings
        grouping v-ani-config-data {
          description
            "Configuration data intended for the Optical Line Termination
    (OLT) about the Optical Network Unit (ONU) image.";
          leaf onu-id {
            if-feature bbf-xponvani:configurable-v-ani-onu-id;
            type bbf-xpon-types:onu-id;
            description
              "This is the Transmission Convergence (TC) layer ONU-ID
    identifier. When configured this is the value which the
    Optical Line Termination (OLT) must assign to an Optical
    Network Unit (ONU) during the ONU's activation using the
    Assign_ONU-ID PLOAM message. For GPON the value should
    be in [0..253], for XG-PON it should be in [0..1022] and
    for XGS-PON and NG-PON2 it should be in [0..1020].";
            reference
              "ITU-T G.984.3 clause 5.5.2
              ITU-T G.987.3 clause 6.4.2
              ITU-T G.9807.1 clause C.6.1.5.6
              ITU-T G.989.3 clause 6.1.5.6";
    
          }
    
          leaf channel-partition {
            type if:interface-ref;
            must
              "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:channel-partition')" {
              error-message
                "Must reference a channel partition";
            }
            description
              "Reference to the parent interface of the virtual Access
    Network Interface (vANI).";
          }
    
          leaf expected-serial-number {
            type bbf-xpon-types:onu-serial-number;
            description
              "The serial number the Optical Line Termination (OLT) expects
    to retrieve from the Optical Network Unit (ONU). The serial
    number is unique for each ONU. It contains the vendor ID and
    vendor specific serial number. The first four bytes are an
    ASCII-encoded vendor ID four letter mnemonic. The second four
    bytes are a binary encoded serial number, under the control
    of the ONU vendor.";
            reference
              "ITU-T G.984.3, clause 9.2.4.1
              ITU-T G.987.3, clause 11.3.3.2
              ITU-T G.9807.1, clauses C11.2.6.1, C11.2.6.2 and C11.3.4.1
              ITU-T G.989.3, clauses 11.2.6.1, 11.2.6.2 and 11.3.4.1.";
    
          }
    
          leaf expected-registration-id {
            type bbf-xpon-types:onu-registration-id;
            default "";
            description
              "A string that has been assigned to the subscriber on the
    management level, entered into and stored in non-volatile
    storage at the Optical Network Unit (ONU). Registration ID
    may be useful in identifying a particular ONU installed at a
    particular location. Each octet is represented as 2
    hexadecimal characters, therefore the leaf must contain an
    even number of characters.
    
    For ITU-T G.984.3, the leaf can only be up to 20 characters
    long (refer to 'password' 10 bytes long).
    
    For ITU-T G.987.3, ITU-T G.9807.3 and ITU-T G.989.3 the
    leaf can be up to 72 characters long (refer to
    'registration id' 36 bytes long).";
            reference
              "ITU-T G.984.3 clause 9.2.4.2
              ITU-T G.987.3 clause 11.3.4.2
              ITU-T G.9807.3 clause C.11.3.4.2
              ITU-T G.989.3 clause 11.3.4.2";
    
          }
    
          leaf preferred-channel-pair {
            type if:interface-ref;
            must
              "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:channel-pair') and /if:interfaces/if:interface[if:name=current()]/bbf-xpon:channel-pair/bbf-xpon:channel-partition-ref=../channel-partition and (not(../protection-channel-pair) or (current() != ../protection-channel-pair))" {
              error-message
                "Must reference a channel pair which belongs to the same channel partition. The preferred channel pair cannot be the same as the protection channel pair";
            }
            description
              "The preferred channel pair is the channel pair that an
    activating Optical Network Unit (ONU) is intended to use.
    If the preferred channel pair interface is not available,
    the ONU should use the protection channel pair if it is
    provisioned and available. Modification of the preferred
    channel pair has no effect on the ONU when it is activated
    (e.g., reconfiguration of the preferred channel pair should
    not cause an activated ONU to need to retune its receiver).";
          }
    
          leaf protection-channel-pair {
            type if:interface-ref;
            must
              "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:channel-pair') and /if:interfaces/if:interface[if:name=current()]/bbf-xpon:channel-pair/bbf-xpon:channel-partition-ref=../channel-partition" {
              error-message
                "Must reference a channel pair and the channel pair should belong to same channel partition. The protection channel pair cannot be the same as the preferred channel pair.";
            }
            description
              "The protection channel pair is the channel pair that an
    activating Optical Network Unit (ONU) is intended to use if
    the preferred channel pair is not available. When the ONU is
    activated on a given current channel pair, the protection
    channel pair is also the channel pair which the ONU will tune
    to if the current channel pair becomes not available.
    Modification of the protection channel pair has no effect on
    the ONU when it is activated (e.g., reconfiguration of the
    protection channel pair should not cause an activated ONU to
    need to retune its receiver).";
          }
    
          leaf upstream-channel-speed {
            type yang:gauge64;
            units "bits per second";
            description
              "Upstream channel speed for this interface in bits per
    second.";
          }
    
          leaf upstream-fec {
            type boolean;
            default "false";
            description
              "If 'true', enable Forward Error Correction (FEC) in
    the upstream direction for this specific Optical Network
    Unit (ONU). If 'false', disable FEC in the upstream
    direction for this specific ONU.";
            reference
              "ITU-T G.984.3 clause 13.3.1.1
              ITU-T G.987.3 clause 10.2
              ITU-T G.9807.1 clause C.10.1.3.2.4
              ITU-T G.989.3 clause 10.1.3.2.4";
    
          }
    
          leaf management-gemport-id {
            when
              "derived-from-or-self(/if:interfaces/if:interface[if:name = current()/../preferred-channel-pair]/bbf-xpon:channel-pair/bbf-xpon:channel-pair-type,'bbf-xpon-types:gpon') or derived-from-or-self(/if:interfaces/if:interface[if:name = current()/../protection-channel-pair]/bbf-xpon:channel-pair/bbf-xpon:channel-pair-type, 'bbf-xpon-types:gpon')";
            if-feature bbf-xponvani:configurable-v-ani-management-gem-port-id;
            type uint32;
            description
              "In contrast with other xPON technologies, in the case of
    GPON, there is no requirement that the ITU-T Transmission
    Convergence (TC) ID of the management GPON Encapsulation
    Method (GEM) port for the Optical Network Unit (ONU) is
    numerically equal to the ONU-ID. This leaf provides the
    capability to specify a specific value to the management GEM
    port ID. If this leaf is not configured the management GEM
    port ID must be numerically equal to the ONU-ID.
    
    This configuration is ignored for XG-PON, XGS-PON and
    NG-PON2 as the 'management-gemport-id' is implicitly
    configured to be the same as the ONU-ID.";
            reference
              "ITU-T G.984.3 clause 5.5.5
              ITU-T G.987.3 clause 6.4.4
              ITU-T G.9807.1 clause C.6.1.5.8
              ITU-T G.989.3, clause 6.1.5.8";
    
          }
    
          leaf management-gemport-aes-indicator {
            type boolean;
            default "false";
            description
              "If 'true', enable Advanced Encryption Standard (AES)
    for the management GPON Encapsulation Method (GEM) port
    of this Optical Network Unit (ONU). If 'false', disable
    AES for the management GEM port of this ONU.
    
    For GPON, this applies in the downstream direction. For
    XG-PON, XGS-PON and NG-PON2, this applies to both the
    upstream and downstream directions.";
            reference
              "ITU-T G.984.3 section 12.1
              ITU-T G.987.3 section 15.5.1
              ITU-T G.9807.1 clause C.15.5.1
              ITU-T G.989.3 clause 15.5.1.";
    
          }
    
          action in-service-onu-tune-request {
            description
              "Requests an Optical Network Unit (ONU) which is in
    service on a current channel termination to tune to a
    specific target channel termination. The action must be
    directed to the Optical Line Termination (OLT) currently
    providing service to the ONU. The target channel termination
    must relate to a channel pair which belongs to the specific
    channel partition on which the ONU is configured.
    If the target channel termination is the same as the channel
    ternmination currently used by the ONU, the action will have
    no effect but will nevertheless be reported as successful. If
    the action is sent to an OLT not providing service to the ONU
    (e.g., because the ONU is not activated or is getting service
    from another OLT, the action must be rejected.";
            input {
              leaf target-channel-termination-ref {
                type if:interface-ref;
                must
                  "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type,'bbf-xponift:channel-termination') and (/if:interfaces/if:interface[if:name=/if:interfaces/if:interface[if:name=current()]/bbf-xpon:channel-termination/bbf-xpon:channel-pair-ref]/bbf-xpon:channel-pair/bbf-xpon:channel-partition-ref = ../../bbf-xponvani:channel-partition)" {
                  error-message
                    "Must reference a channel termination which is related to a channel pair which is in the same channel partition as the one which the Optical Network Unit (ONU) is configured on.";
                }
                description
                  "Reference to the channel termination which the Optical
    Network Unit (ONU) should tune to. This channel
    termination must relate to a channel pair belonging to
    the same channel partition as the one which the ONU is
    configured on.";
              }
            }
    
            output {
              leaf onu-tune-request-status {
                type identityref {
                  base bbf-xpon-types:action-request-status;
                }
                description
                  "Indicates what the Optical Line Termination (OLT) is
    doing when receiving the action. The OLT can for instance
    indicate that the action is in progress or has been
    rejected.";
              }
    
              leaf onu-tune-request-reject-string {
                when
                  "not(derived-from-or-self(../onu-tune-request-status,'bbf-xpon-types:request-being-processed'))" {
                  description
                    "Only valid when the Optical Line Termination (OLT) has
    rejected the tune request.";
                }
                type string;
                description
                  "A text string indicating the reason why the Optical Line
    Termination (OLT) rejected the action.";
              }
            }
          }  // rpc in-service-onu-tune-request
    
          leaf-list notifiable-defect {
            if-feature bbf-xponvani:v-ani-defect-notifications;
            type identityref {
              base bbf-xpon-def:items-detected-at-olt-for-v-ani;
            }
            description
              "Optical Line Termination (OLT) is expected to generate a
    'defect-state-change' notification each time defect(s)
    listed in this leaf-list are raised or cleared.
    If 'notifiable-defect' includes an identity which
    is the base value for other defect(s) identity(ies),
    the OLT will generate a single notification when status of
    any defect derived from this base value changes.
    
    In case the leaf-list is empty (as by default) the OLT
    should not generate any 'defect-state-change'
    notification.";
          }
        }  // grouping v-ani-config-data
    
        grouping v-ani-state-data {
          description
            "State data which the Optical Line Termination (OLT) can form
    about its image of the Optical Network Unit (ONU).";
          leaf onu-id {
            type bbf-xpon-types:onu-id;
            description
              "This is the ITU-T Transmission Convergence (TC) layer ONU-ID
    identifier which the Optical Line Termination (OLT) has
    assigned to the Optical Network Unit (ONU) during the ONU's
    activation using the Assign_ONU-ID PLOAM message. It
    identifies an ONU on a channel group and is unique on a
    channel group.";
            reference
              "ITU-T G.984.3 clause 5.5.2
              ITU-T G.987.3 clause 6.4.2
              ITU-T G.9807.1 clause C.6.1.5.6
              ITU-T G.989.3 clause 6.1.5.6";
    
          }
    
          leaf management-tcont-alloc-id {
            type uint32;
            description
              "The ITU-T Transmission Convergence (TC) Allocation ID
    (Alloc-ID) of the management T-CONT for the Optical Network
    Unit (ONU). It has the same numerical value as the ITU-T TC
    ONU-ID.";
            reference
              "Refer to 'Default Alloc-ID' in
              ITU-T G.987.3 clause 6.1.5.7
              ITU-T G.9807.1 clause C.6.1.5.7
              ITU-T G.987.3 clause 6.4.3
              ITU-T G.984.3 clause 5.5.3";
    
          }
    
          leaf management-gemport-id {
            type uint32;
            description
              "The ITU-T Transmission Convergence (TC) Id of the management
    GPON Encapsulation Methiod (GEM) port for the Optical
    Network Unit (ONU). For NG-PON2, XGS-PON and XG-PON, it has
    the same numerical value as the ITU-T TC ONU-ID. For GPON,
    its value is not necessarily numerically equal to the
    ONU-ID.";
            reference
              "Refer to 'OMCC Port-ID' in
              ITU-T G.987.3 clause 6.1.5.8
              ITU-T G.9807.1 clause C.6.1.5.8
              ITU-T G.987.3 clause 6.4.4
              ITU-T G.984.3 clause 5.5.5";
    
          }
    
          leaf onu-presence-state {
            type identityref {
              base bbf-xpon-onu-types:onu-presence-state-base;
            }
            description
              "Presence state data which the Optical Line Termination
    (OLT) can form about an Optical Network Unit (ONU) for
    which a virtual Access Network Interface (vANI) is
    configured. The most specific applicable identity should be
    reported.";
          }
    
          leaf-list active-defects {
            type identityref {
              base bbf-xpon-def:items-detected-at-olt-for-v-ani;
            }
            description
              "Defects detected by Optical Line Termination (OLT) for
    given Optical Network Unit (ONU) for which a virtual Access
    Network Interface (vANI) is configured. All applicable
    identities should be reported.";
            reference
              "ITU-T G.984.3 (01/2014) 11.1.1
              ITU-T G.987.3 (01/2014) 14.2.1
              ITU-T G.989.3 (2015)/Amd.2 (11/2018) Table 14-2
              ITU-T G.9807.1 (2016)/Amd.1 (10/2017) Table C.14.2";
    
          }
    
          container onu-present-on-this-olt {
            presence
              "If present, this container indicates that the Optical Network
    Unit (ONU) is using the optical signal of one of the channel
    terminations local to this Optical Line Termination (OLT)
    (Refer to 'inside-olt'). If the container is not present it
    means that the ONU is not using the optical signal of any
    channel termination local to this OLT; this could mean that
    the ONU is using the optical signal of a channel termination
    belonging to another OLT, or that the ONU is not using any
    optical signal at all. An OLT considers that an ONU is using
    the optical signal of one of its local channel terminations
    as early as it receives from the ONU a PLOAM
    Serial_Number_ONU message or as early as it receives a PLOAM
    Tuning_Resp(Complete_u) message and as long as the channel
    termination is not in LOBi state for this ONU (i.e in
    practice the ONU keeps responding to downstream OLT bandwidth
    map messages).";
            description
              "When an Optical Network Unit (ONU) is using the optical
    signal of one of the channel terminations local to this
    Optical Line Termination (OLT) (Refer to 'inside-olt'), this
    container contains state data such as which channel pair
    and which channel termination the ONU is using.";
            reference
              "ITU-T G.989.3 clause 11.3.2, 12.2.2.1 and 14.2.1";
    
            leaf onu-present-on-this-channel-pair {
              type if:interface-ref;
              mandatory true;
              description
                "This leaf indicates the channel pair on which the Optical
    Network Unit (ONU) is currently present in case the ONU is
    using optical signal from this Optical Line Termination
    (OLT).";
            }
    
            leaf onu-present-on-this-channel-termination {
              type if:interface-ref;
              mandatory true;
              description
                "This leaf indicates the channel termination on which the
    Optical Network Unit (ONU) is currently present in case
    the ONU is using optical signal from this Optical Line
    Termination (OLT).";
            }
    
            leaf onu-fiber-distance {
              type uint32;
              units "meters";
              description
                "This optional leaf reports Optical Network Unit (ONU) fiber
    distance in meters. The measurement method is
    implementation-specific. ITU-T recommendated method allows
    fiber distance measurement with 1% precision.";
              reference
                "ITU-T G.9807.1 clause C.13.1.8, G.989.3,
                G.987.3 clause 13.1.8 and G.984.3 clause 10.3.6.";
    
            }
    
            leaf detected-serial-number {
              type bbf-xpon-types:onu-serial-number;
              description
                "The serial number of the Optical Network Unit (ONU).";
              reference
                "ITU-T G.984.3, clause 9.2.4.1
                ITU-T G.987.3, clause 11.3.3.2
                ITU-T G.9807.1, clauses C11.2.6.1, C11.2.6.2 and
                C11.3.4.1
                ITU-T G.989.3, clauses 11.2.6.1, 11.2.6.2 and 11.3.4.1.";
    
            }
    
            leaf detected-registration-id {
              type bbf-xpon-types:onu-registration-id;
              description
                "The registration ID value which the Optical Line
    Termination (OLT) has received from the Optical Network
    Unit (ONU). This leaf is not present if the ONU has not
    provided any registration ID to the OLT. Registration ID
    may be useful in identifying a particular ONU installed
    at a particular location. Each octet is represented as 2
    hexadecimal characters, therefore the leaf must contain an
    even number of characters. For ITU-T G.984.3, the leaf
    can only be up to 20 octets long (refer to 'password'),
    for ITU-T G.987.3, ITU-T G.9807.3 and ITU-T G.989.3
    the leaf can be up to 72 octets long.";
              reference
                "ITU-T G.984.3 clause 9.2.4.2
                ITU-T G.987.3 clause 11.3.4.2
                ITU-T G.9807.3 clause C.11.3.4.2
                ITU-T G.989.3 clause 11.3.4.2";
    
            }
          }  // container onu-present-on-this-olt
    
          container onu-wl-protected {
            presence
              "If present, this container indicates that the Optical Network
    Unit (ONU) is effectively wavelength protected, i.e., that it
    has been told by the Optical Line Termination (OLT) about the
    'protecting' channel termination it should autonomously tune
    to in case the channel termination currently used would fail.
    This container can only be present in case that the ONU uses
    a multi-wavelength xPON technology such as for instance
    NG-PON2. If the container is not present it means that the
    ONU is not wavelength protected.";
            description
              "When the Optical Network Unit (ONU) is wavelength protected,
    this container contains state data related to its wavelength
    protection, such as the protecting channel-termination it has
    been told by the Optical Line Termination (OLT).";
            reference
              "ITU-T G.989.3 clause 11.3.2, 12.2.2.1 and 14.2.1";
    
            leaf wl-protecting-ct-announced-to-onu {
              type if:interface-ref;
              description
                "This leaf is relevant when wavelength protection is
    provided to the Optical Network Unit (ONU). It indicates
    the channel termination which the ONU can tune to in case
    the current channel termination would fail. This
    information is announced to the ONU via the
    'Protection_Control' downstream PLOAM message.";
              reference
                "ITU-T G.989.3 clause 11.3.1 and 11.3.3.15";
    
            }
          }  // container onu-wl-protected
    
          notification defect-state-change {
            if-feature bbf-xponvani:v-ani-defect-notifications;
            description
              "A notification traceable to a virtual Access Network
    Interface (vANI) which signifies that defect(s) detected
    by an Optical Line Termination (OLT) have been raised and/or
    cleared. Such notification is only generated for defects
    listed in the 'notifiable-defect' leaf list.";
            list defect {
              key "type";
              description
                "A notifiable defect that has changed state since
    the previous 'defect-state-change' notification.";
              leaf type {
                type identityref {
                  base bbf-xpon-def:items-detected-at-olt-for-v-ani;
                }
                description "Defect type.";
              }
    
              leaf state {
                type bbf-xpon-def:defect-state;
                mandatory true;
                description
                  "The current defect state.";
              }
    
              leaf last-change {
                type yang:date-and-time;
                mandatory true;
                description
                  "The Optical Line Termination (OLT) system date and
    time when the OLT has declared that the defect
    state has changed.";
              }
            }  // list defect
          }  // notification defect-state-change
        }  // grouping v-ani-state-data
    
        grouping olt-v-enet-config-data {
          description
            "Config data intended for the OLT-vENET interface.";
          leaf lower-layer-interface {
            type if:interface-ref;
            must
              "derived-from-or-self(/if:interfaces/if:interface[if:name = current()]/if:type,'bbf-xponift:v-ani')" {
              error-message
                "The referenced interface is not of type or derived from type 'bbf-xponift:v-ani'.";
              description
                "The referenced interface must be of or derived from type
    'bbf-xponift:v-ani'.";
            }
            mandatory true;
            description
              "References the virtual Access Network Interface (vANI) which
    is the lower-layer interface under the OLT-vENET.";
          }
        }  // grouping olt-v-enet-config-data
    
        // objects
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self(if:type, 'bbf-xponift:v-ani')";
          description
            "Augment interface configuration with xPON virtual Access
    Network Interface (vANI) configuration. The vANI represents the
    Optical Network Unit (ONU) as seen by the Optical Line
    Termination (OLT).";
          container v-ani {
            description
              "Virtual Access Network Interface (vANI) configuration.";
          }  // container v-ani
        }
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self(if:type, 'bbf-xponift:olt-v-enet')";
          description
            "Augment interface configuration with xPON Optical Line
    Termination (OLT) virtual Ethernet (ENET) interface
    configuration.";
          container olt-v-enet {
            description
              "OLT virtual Ethernet (ENET) configuration.";
          }  // container olt-v-enet
        }
    
        augment /if:interfaces-state/if:interface {
          when
            "derived-from-or-self(if:type, 'bbf-xponift:v-ani')";
          description
            "Augment interface state data with xPON virtual Access Network
    Interface (vANI) state data. The vANI represents the Optical
    Network Unit (ONU) as seen by the Optical Line Termination
    (OLT).";
          container v-ani {
            description
              "State data for virtual Access Network Interface (vANI).";
          }  // container v-ani
        }
    
        augment /if:interfaces/if:interface/bbf-xponvani:v-ani {
          description
            "Configuration of an xPON virtual Access Network Interface
    (vANI), i.e., an Optical Network Unit (ONU) as seen by the
    Optical Line Termination (OLT).";
          uses v-ani-config-data;
        }
    
        augment /if:interfaces-state/if:interface/bbf-xponvani:v-ani {
          description
            "State data of an xPON virtual Access Network Interface (vANI),
    i.e., an Optical Network Unit (ONU) as seen by the Optical Line
    Termination (OLT).";
          uses v-ani-state-data;
        }
    
        augment /if:interfaces/if:interface/bbf-xponvani:olt-v-enet {
          description
            "Configuration of an xPON virtual Optical Line Termination (OLT)
    virtual ENET interface.";
          uses olt-v-enet-config-data;
        }
      }  // module bbf-xponvani
    

© 2023 YumaWorks, Inc. All rights reserved.