module bbf-device-types {
  yang-version 1.1;
  namespace "urn:bbf:yang:bbf-device-types";
  prefix bbf-dvct;

  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:      Nick Hancock, ADTRAN

     Editor:      Ludwig Pauwels, Nokia

     PS Leader:   Joey Boyd, ADTRAN

     PS Leader:   Sowrirajan Padmanabhan, Nokia

     WA Director: Joey Boyd, ADTRAN

     WA Director: Sven Ooghe, Nokia";
  description
    "This module contains a collection of YANG definitions for
     supporting the Broadband Forum requirements on managing physical
     devices.

     Specifically, this module defines common types associated with
     device management.

     Copyright (c) 2017-2021, 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-383a4; see
     the TR itself for full legal notices.";

  revision 2021-06-02 {
    description
      "Amendment 4.
       * Approval Date:    2021-06-02.
       * Publication Date: 2021-06-02.";
    reference
      "TR-383a4: Common YANG Modules
                 <https://www.broadband-forum.org/technical/download/
                          TR-383_Amendment-4.pdf>";
  }

  // Identities
  // Device types

  identity device-type {
    description
      "Base identity from which specific device node types are
       derived.";
  }

  identity access-device-type {
    base device-type;
    description
      "Base identity from which specific access device node types are
       derived.";
  }

  identity dpu {
    base access-device-type;
    description
      "Distribution Point Unit (DPU).";
  }

  identity msan {
    base access-device-type;
    description
      "Multiservice Access Node (MSAN).";
  }

  identity dslam {
    base access-device-type;
    description
      "Digital Subscriber Line Access Multiplexer (DSLAM).";
  }

  identity olt {
    base access-device-type;
    description
      "Optical Line Terminal (OLT).";
  }

  identity onu {
    base access-device-type;
    description
      "Optical Network Unit (ONU).";
  }

  identity fast-cpe {
    base access-device-type;
    description
      "The G.fast CPE. G.fast is a Digital Subscriber Line (DSL)
       protocol standard.";
  }

  identity vdsl2-cpe {
    base access-device-type;
    description
      "The Very High-speed Digital Subscriber Line 2 (VDSL2) CPE.";
  }

  // Device Subcategory

  identity device-subcategory {
    description
      "Base identity from which specific subcategories of device types
       are derived.";
  }

  identity access-device-subcategory {
    base device-subcategory;
    description
      "Identity from which specific subcategories of access device
       types are derived.";
  }

  identity multi-card {
    base access-device-subcategory;
    description
      "The multi card subcategory.

       An access device of this or a derived identity is a device that
       has the capability to support multiple cards, independent of
       the actual deployment.";
  }

  identity single-card {
    base access-device-subcategory;
    description
      "The single card subcategory.

       An access device of this or a derived identity is a device that
       is a fully self-contained device that does not has the
       capability to plug or unplug cards.";
  }

  identity pluggable-transceiver {
    base access-device-subcategory;
    description
      "The pluggable transceiver subcategory.";
  }
}
