bbf-xpon-base

This submodule contains a collection of YANG definitions and augmentations to ietf-interfaces for managing the xPON infrastructu...

  • Version: 2024-04-23

    bbf-xpon-base@2024-04-23


    
      submodule bbf-xpon-base {
    
        yang-version 1.1;
    
        belongs-to bbf-xpon {
            prefix bbf-xpon;
        }
    
        import ietf-interfaces {
          prefix if;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import bbf-xpon-types {
          prefix bbf-xpon-types;
        }
        import bbf-xpon-if-type {
          prefix bbf-xponift;
        }
        import bbf-yang-types {
          prefix bbf-yang;
        }
    
        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
    
         PS Leader:   Joey Boyd, Adtran
    
         WA Director: Marta Seda, Calix";
    
        description
          "This submodule contains a collection of YANG definitions and
         augmentations to ietf-interfaces for managing the xPON
         infrastructure.
    
         Copyright (c) 2018-2024, 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-385i3; see
         the TR itself for full legal notices.";
    
        revision "2024-04-23" {
          description
            "Issue 3.
           * Approval Date:    2024-04-23.
           * Publication Date: 2024-04-23.";
          reference
            "TR-385i3: YANG Modules for PON Management
            	<https://www.broadband-forum.org/technical/download/
            		 TR-385_Issue-3.pdf>";
    
        }
    
        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 "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>";
    
        }
    
    
        feature ictp-support {
          description
            "Indicates that the Optical Line Termination (OLT) supports
           Inter Channel Termination Protocol (ICTP).";
        }
    
        feature configurable-ictp-proxy-tcp-port {
          if-feature ictp-support;
          description
            "Indicates support for the configuration of the TCP port
           used by an Inter Channel Termination Protocol (ICTP) proxy.";
        }
    
        container xpon {
          description
            "Configuration associated with managing xPON in a system.";
          container ictp {
            if-feature ictp-support;
            description
              "Configuration data for the support of Inter Channel
             Termination Protocol (ICTP).";
            reference
              "TR-352";
    
            leaf activated {
              type boolean;
              default "false";
              description
                "This is to enable or disable support of Inter Channel
               Termination Protocol (ICTP). When true, the Optical Line
               Termination (OLT) attempts to establish Transmission
               Control Protocol (TCP) connections with all relevant peer
               ICTP proxies and is ready to exchange ICTP messages with
               other channel terminations through those ICTP proxies. When
               false, the OLT does not process nor generate any ICTP
               messages and will not establish nor maintain any TCP
               connection to any ICTP proxy.";
            }
    
            container all-ictp-proxies-all-channel-groups {
              description
                "This container contains all configuration data related to
               TR-352 Inter Channel Termination Protocol (ICTP) transport
               infrastructure for all ICTP proxies, whether they are in
               charge of 'inside-olt' channel terminations or
               'outside-olt' channel terminations, for all channel
               groups.";
              list proxy {
                key "name";
                description
                  "The list of all Inter Channel Termination Protocol (ICTP)
                 proxies, whether they are in charge of 'inside-olt'
                 channel terminations or 'outside-olt' channel
                 terminations, for all channel groups configured in the
                 Optical Line Termination (OLT).";
                leaf name {
                  type bbf-yang:string-ascii64;
                  description
                    "Name of the Inter Channel Termination Protocol (ICTP)
                   Proxy.";
                }
    
                leaf host {
                  type inet:host;
                  mandatory true;
                  description
                    "This is the IP address or the DNS domain name of the
                   Inter Channel Termination Protocol (ICTP) proxy. TCP
                   connections originating from this ICTP proxy will use
                   this IP address (or the one resolved from the DNS
                   domain name) as source IP address. Other ICTP proxies
                   will reach this Proxy using this IP address (or the one
                   resolved from the DNS domain name) as destination
                   address.";
                }
    
                leaf tcp-port {
                  if-feature configurable-ictp-proxy-tcp-port;
                  type inet:port-number;
                  default "7202";
                  description
                    "The TCP port used by the Inter Channel Termination
                   Protocol (ICTP) proxy.";
                }
    
                container all-channel-terminations-proxied-by-this-proxy {
                  description
                    "In the context of a given Inter Channel Termination
                   Protocol (ICTP) proxy, this container contains the list
                   of all channel terminations 'inside' and 'outside' the
                   Optical Line Termination (OLT), for all channel groups,
                   for which this ICTP proxy is playing proxy role.";
                  list channel-termination {
                    key "channel-termination-ref";
                    description
                      "The list of all channel terminations inside and
                     outside the Optical Line Termination (OLT), for all
                     channel groups, for which this Inter Channel
                     Termination Protocol (ICTP) proxy is playing proxy
                     role.";
                    leaf 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')" {
                        error-message
                          "Must reference a channel termination.";
                      }
                      description
                        "Reference to a channel termination for which this
                       Inter Channel Termination Protocol (ICTP) proxy is
                       responsible.";
                    }
    
                    leaf channel-termination-ictp-activated {
                      type boolean;
                      default "false";
                      description
                        "When true, the Inter Channel Termination Protocol
                       (ICTP) proxy is willing to exchange ICTP messages
                       on behalf of this channel termination. When false,
                       the ICTP proxy ignores this channel termination.";
                    }
                  }  // list channel-termination
                }  // container all-channel-terminations-proxied-by-this-proxy
              }  // list proxy
            }  // container all-ictp-proxies-all-channel-groups
          }  // container ictp
        }  // container xpon
    
        container xpon-state {
          config false;
          description
            "State data associated with managing xPON in a system.";
          container ictp {
            if-feature ictp-support;
            description
              "State data for the support of Inter Channel Termination
             Protocol (ICTP).";
            reference
              "TR-352";
    
            container all-ictp-proxies-all-channel-groups {
              description
                "State data related to all Inter Channel Termination
               Protocol (ICTP) proxies across all channel groups.";
              list proxy {
                key "name";
                description
                  "The list of all Inter Channel Termination Protocol (ICTP)
                 proxies for all channel-groups.";
                leaf name {
                  type bbf-yang:string-ascii64;
                  description
                    "Name of the Inter Channel Termination Protocol (ICTP)
                   Proxy.";
                }
    
                leaf proxy-ip-address {
                  type bbf-xpon-types:ip-address-or-unresolved;
                  description
                    "This is the IP address (v4 or v6) of this Inter Channel
                   Termination Protocol (ICTP) proxy as derived from its
                   configured host and as used in the TCP connection when
                   established. It is 'unresolved' if for some reason the
                   system is unable to deduce the IP address from the host
                   name of the ICTP proxy.";
                }
    
                leaf negotiated-ictp-version {
                  type union {
                    type enumeration {
                      enum "unknown" {
                        value 0;
                        description
                          "The proxy is unable to negotiate an Inter Channel
                         Termination Protocol (ICTP) version.";
                      }
                    }
                    type uint8 {
                      range "1..max";
                    }
                  }
                  description
                    "This leaf reflects the negotiated Inter Channel
                   Termination Protocol (ICTP) version of the proxy.";
                }
    
                leaf-list supported-ictp-version {
                  type uint8 {
                    range "1..max";
                  }
                  description
                    "This list of supported Inter Channel Termination
                   Protocol (ICTP) versions of a proxy.";
                }
    
                container known-peered-proxies {
                  description
                    "In the context of an Inter Channel Termination Protocol
                   (ICTP) proxy, this container contains state data about
                   peering relations involving this ICTP proxy. An Optical
                   Line Termination (OLT) must know at least all peering
                   relations involving the ICTP proxies in charge of one
                   or several channel terminations 'inside' the OLT.
                   An OLT may or may not know peering relations between
                   ICTP proxies exclusively involving channel terminations
                   'outside' the OLT.";
                  list proxy {
                    key "name";
                    description
                      "In the context of an Inter Channel Termination
                     Protocol (ICTP) proxy, the list of all ICTP proxies
                     which the Optical Line Termination (OLT) knows to be
                     peered with this ICTP proxy.";
                    leaf name {
                      type bbf-yang:string-ascii64;
                      description
                        "Name of this Inter Channel Termination Protocol
                       (ICTP) peer proxy.";
                    }
    
                    leaf ip-address {
                      type bbf-xpon-types:ip-address-or-unresolved;
                      description
                        "This is the IP address (v4 or v6) of the peer
                       Inter Channel Termination Protocol (ICTP) proxy as
                       derived from its configured host and as used in the
                       TCP connection when established. It is 'unresolved'
                       if for some reason the system is unable to deduce
                       the IP address from the host name of the ICTP
                       proxy.";
                    }
    
                    leaf tcp-connection-state {
                      type identityref {
                        base bbf-xpon-types:tcp-connection-state-base;
                      }
                      description
                        "This leaf reflects the state of the Transmission
                       Control Protocol (TCP) connection with this peer
                       Inter Channel Termination Protocol (ICTP) Proxy.
                       When 'established' the TCP connection is
                       operational and able to transport ICTP messages.
                       When 'not-established', the TCP connection is
                       unable to exchange any ICTP message. When the TCP
                       connection state is 'unknown' the Optical Line
                       Termination (OLT) does not know whether the
                       involved ICTP proxies can exchange ICTP messages or
                       not; typically, this is because the OLT is not
                       involved at all with either of the two related ICTP
                       proxies.";
                    }
    
                    leaf source-tcp-port {
                      type inet:port-number;
                      description
                        "This is the source port number of the Transmission
                       Control Protocol (TCP) connection with the peer
                       Inter Channel Termination Protocol (ICTP) proxy,
                       when established.";
                    }
    
                    leaf destination-tcp-port {
                      type inet:port-number;
                      description
                        "This is the destination port number of the
                       Transmission Control Protocol (TCP) connection with
                       the peer Inter Channel Termination Protocol (ICTP)
                       proxy, when established.";
                    }
                  }  // list proxy
                }  // container known-peered-proxies
              }  // list proxy
            }  // container all-ictp-proxies-all-channel-groups
          }  // container ictp
        }  // container xpon-state
    
        augment /if:interfaces/if:interface {
          when
            "if:type = 'bbf-xponift:channel-group'";
          description
            "Augment interface configuration with xPON channel group
           configuration.";
          container channel-group {
            description
              "Channel group configuration data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-group
        }
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-partition')";
          description
            "Augment interface configuration with xPON channel partition
           configuration.";
          container channel-partition {
            description
              "Channel partition configuration data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-partition
        }
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-pair')";
          description
            "Augment interface configuration with xPON channel pair
           configuration.";
          container channel-pair {
            description
              "Channel pair configuration data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-pair
        }
    
        augment /if:interfaces/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-termination')";
          description
            "Augment interface configuration with xPON channel termination
           configuration.";
          container channel-termination {
            description
              "Channel termination configuration data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-termination
        }
    
        augment /if:interfaces-state/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-group')";
          description
            "Augment interface state data with xPON channel group
           state data.";
          container channel-group {
            description
              "Channel group state data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-group
        }
    
        augment /if:interfaces-state/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-pair')";
          description
            "Augment interface state data with xPON channel pair
           state data.";
          container channel-pair {
            description
              "Channel pair state data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-pair
        }
    
        augment /if:interfaces-state/if:interface {
          when
            "derived-from-or-self"
              + "(if:type, 'bbf-xponift:channel-termination')";
          description
            "Augment interface state data with xPON channel termination
           state data.";
          container channel-termination {
            description
              "Channel termination state data for all xPON variants
             (50G-PON, 25GS-PON, NG-PON2, XGS-PON, XG-PON and G-PON).";
          }  // container channel-termination
        }
      }  // submodule bbf-xpon-base
    

© 2023 YumaWorks, Inc. All rights reserved.