module bbf-xpon-onu-types {
  yang-version 1.1;
  namespace "urn:bbf:yang:bbf-xpon-more-types";
  prefix bbf-xpon-onu-types;

  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:help@broadband-forum.org>.

     Editor:      Joey Boyd, ADTRAN

     Editor:      Samuel Chen, Broadcom

     Editor:      Robert Peschi, Nokia

     WA Director: Marta Seda, Calix

     WA Director: Lin Wei, Huawei";
  description
    "This module contains a collection of YANG definitions which
     defines common types used in the xPON YANG models.

     Copyright (c) 2018, Broadband Forum

     Redistribution and use in source and binary forms, with or
     without modification, are permitted provided that the following
     conditions are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above
        copyright notice, this list of conditions and the following
        disclaimer in the documentation and/or other materials
        provided with the distribution.

     3. Neither the name of the copyright holder nor the names of its
        contributors may be used to endorse or promote products
        derived from this software without specific prior written
        permission.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
     CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

     The above license is used as a license under copyright only.
     Please reference the Forum IPR Policy for patent licensing terms
     <https://www.broadband-forum.org/ipr-policy>.

     Any moral rights which are necessary to exercise under the above
     license grant are also deemed granted under this license.

     This version of this YANG module is part of TR-385; see
     the TR itself for full legal notices.";

  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>";
  }

  identity onu-state-base {
    description
      "This identity is used to qualify the state of an ONU."; 
  }

  identity onu-present {
    base onu-state-base;
    description
      "This identity is used to denote that an ONU is currently 
       using the optical signal of one of the channel terminations 
       local to this OLT (Refer to 'inside-olt'). 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).";
  }  

  identity onu-present-and-on-intended-channel-termination {
    base onu-present;
    description
      "This identity is used to denote that an ONU is currently 
       using the optical signal of a channel termination which 
       is local to this OLT (Refer to 'inside-olt') and which 
       is intended for the ONU. 
       In case of G-PON, XG-PON and XGS-PON, this means that the 
       ONU is using a channel-termination belonging to the 
       channel partition where the virtual ANI is configured. 
       In case of NG-PON2 this means that the ONU is using 
       the desired channel-termination which is based on the 
       configured preferred and/or protection channel pair
       or resulted from executing an 'in-service-onu-tune-request' 
       YANG action.";
  }

  identity onu-present-and-in-discovery {     
    base onu-present;
    description
      "This identity is used to denote that an NG-PON2 ONU, has 
       just been detected present on a channel termination which 
       is local to this OLT (Refer to 'inside-olt') but from which
       the ONU potentially still needs to tune away while the OLT 
       is assessing the intended channel termination of the ONU.";
  }

  identity onu-present-and-discovery-tune-fail { 
    base onu-present;
    description
      "This identity is used to denote that an NG-PON2 ONU has just 
       been detected present on a channel termination which is local 
       to this OLT (Refer to 'inside-olt') but is not its intended 
       one and from which the ONU could not be tuned away towards 
       an identified intended channel termination.";
  }

  identity onu-present-and-unexpected {
    base onu-present;
    description
      "This identity is used to denote that a G-PON, XG-PON or 
       XGS-PON ONU is present on a channel termination which is 
       local to this OLT (Refer to 'inside-olt') but for which 
       the OLT has no configured virtual ANI. This identity is 
       also used to denote that an NG-PON2 ONU has just been 
       detected present on a channel termination which is local 
       to this OLT (Refer to 'inside-olt') but is not its intended 
       one and for which no intended channel termination could be 
       identified (for instance because the NGPON2 ONU is not 
       configured on any OLT on the channel group).";
  }

  identity onu-present-and-emergency-stopped {
    base onu-present;
    description
      "This identity is used to denote that a G-PON, XG-PON, 
       XGS-PON or NG-PON2 ONU is present on a channel termination
       which is local to this OLT (Refer to 'inside-olt') and to 
       which the OLT has sent a 'Disable_Serial_Number' DS PLOAM
       message, bringing the ONU in ITU-T 'Emergency Stop state'.";
    reference
      "ITU-T G.984.3 Section 9.2.1
       ITU-T G.987.3 Table 11.2
       ITU-T G.9807.3 Table C.11.2
       ITU-T G.989.3 Table 11.2";
  }

  identity onu-not-present {
    base onu-state-base;
    description
      "This identity is used to denote that the ONU is not present 
       on the OLT, i.e. 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 connected at all to the channel group.";
  }  

  identity onu-not-present-with-v-ani {
    base onu-not-present;
    description
      "This identity is used to denote that an ONU, for which a 
       virtual ANI is configured on the OLT, 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 connected at all to the channel 
       group.";  
  }

  identity onu-not-present-without-v-ani {
    base onu-not-present;
    description
      "This identity is used to denote that an ONU, for which
       no virtual ANI is configured on the OLT, is not using 
       any longer the optical signal of any channel termination 
       local to this OLT. This could mean that the ONU is 
       disconnected from the channel group; in case of NG-PON2
       it could also mean that the ONU is tuned away to a 
       channel termination belonging to another OLT.";
  } 
}

