bbf-software-management

This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on software management as ...

  • Version: 2023-12-15

    bbf-software-management@2023-12-15


    
      module bbf-software-management {
    
        yang-version 1.1;
    
        namespace
          "urn:bbf:yang:bbf-software-management";
    
        prefix bbf-swm;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-hardware {
          prefix hw;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import bbf-yang-types {
          prefix bbf-yang;
        }
    
        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
    
    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 software
    management as applicable to access network equipment. As such,
    this module is specific to access network equipment (e.g.,
    BBF-specified Access Nodes and FTTdp DPUs).
    
    This module augments ietf-hardware.
    
    Copyright (c) 2017-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-383a7; see
    the TR itself for full legal notices.";
    
        revision "2023-12-15" {
          description
            "Amendment 7.
    * Approval Date:    2023-12-15.
    * Publication Date: 2023-12-15.";
          reference
            "TR-383a7: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-7.pdf>";
    
        }
    
        revision "2022-03-01" {
          description
            "Amendment 5.
    * Approval Date:    2022-03-01.
    * Publication Date: 2022-03-01.";
          reference
            "TR-383a5: Common YANG Modules
            	  <https://www.broadband-forum.org/technical/download/
            		   TR-383_Amendment-5.pdf>";
    
        }
    
    
        feature software-management-actions {
          description
            "Indicates that a client may invoke actions on revisions of a
    software to execute activities to manage those revisions.
    
    Note that if a system does not support this feature, this YANG
    data model would nevertheless allow a client to monitor
    software that is managed via an alternative management
    interface.";
        }
    
        feature download-target-selection-by-user {
          description
            "Indicates support for allowing the user to select a specific
    entry in the revision list to use as a target when downloading
    revisions.
    
    If a system supports a capability derived from 'download' for
    software, the system must support at least one of the features
    'download-target-selection-by-user' or
    'download-target-selection-by-system'.";
        }
    
        feature download-target-selection-by-system {
          description
            "Indicates support for allowing the system to select an entry in
    the revision list to use as a target when downloading
    revisions.
    
    If a system supports a capability derived from 'download' for
    software, the system must support at least one of the features
    'download-target-selection-by-user' or
    'download-target-selection-by-system'.";
        }
    
        identity error-tag {
          description
            "Base identity for all error tags defined in this module.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity general-error {
          base error-tag;
          description
            "Base identity for all error tags reporting general errors.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity component-busy {
          base general-error;
          description
            "The associated action could not be processed, because the
    target component is busy.";
        }
    
        identity too-many-requests {
          base general-error;
          description
            "The device has too many requests in progress and cannot
    accept any more.";
        }
    
        identity request-not-supported {
          base general-error;
          description
            "The request is not supported by the component.";
        }
    
        identity unexpected-error {
          base general-error;
          description
            "An unexpected error has occurred that is not covered by the
    other errors.";
        }
    
        identity download-error {
          base error-tag;
          description
            "Base identity for all error tags reporting errors that occur
    during the downloading of a software revision from a file
    server.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity protocol-error {
          base download-error;
          description
            "Base identity for all error tags reporting protocol-related
    errors.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity protocol-not-supported-by-peer {
          base protocol-error;
          description
            "The protocol in the form requested by the device (possibly as
    a result of configuration) is not supported by the peer.";
        }
    
        identity protocol-execution-error {
          base protocol-error;
          description
            "An error was encountered in the execution of the protocol.";
        }
    
        identity connection-error {
          base download-error;
          description
            "Base identity for all error tags reporting errors relating to
    the connection to the remote peer.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity service-unavailable {
          base connection-error;
          description
            "A connection could not be established, because the peer could
    not handle the request, for example, because it may be
    overloaded or down for maintenance.";
        }
    
        identity bad-gateway {
          base connection-error;
          description
            "The peer was acting as a gateway or proxy and received an
    invalid response from the upstream peer.";
        }
    
        identity gateway-timeout {
          base connection-error;
          description
            "The peer was acting as a gateway or proxy and did not receive a
    timely response from the upstream peer.";
        }
    
        identity invalid-inet-address {
          base connection-error;
          description
            "The specified Internet address of the peer is invalid.";
        }
    
        identity network-authentication-required {
          base connection-error;
          description
            "The connection could not be completed, because authentication
    is required to access the network.";
        }
    
        identity remote-peer-not-reachable {
          base connection-error;
          description
            "No response was received from the remote peer.";
        }
    
        identity data-connection-cannot-be-opened {
          base connection-error;
          description
            "Although the peer could be reached, it was not possible to open
    a data connection.";
        }
    
        identity connection-refused-by-peer {
          base connection-error;
          description
            "The remote peer refused the connection.";
        }
    
        identity connection-reset-by-peer {
          base connection-error;
          description
            "The remote peer reset the connection.";
        }
    
        identity request-refused-by-peer {
          base connection-error;
          description
            "The remote peer refused the request made by the local
    device over an existing connection.";
        }
    
        identity request-aborted-by-peer {
          base connection-error;
          description
            "The remote peer has aborted the ongoing request made by the
    local device.";
        }
    
        identity connection-time-out {
          base connection-error;
          description
            "A response from the peer has taken too long and the device
    timed-out the connection.";
        }
    
        identity url-too-long {
          base connection-error;
          description
            "The specified URL is too long.";
        }
    
        identity authentication-error {
          base download-error;
          description
            "Base identity for all error tags reporting authentication
    errors.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity authentication-required {
          base authentication-error;
          description
            "Authentication is required by the peer, but was not
    configured.";
        }
    
        identity authentication-mode-not-supported {
          base authentication-error;
          description
            "The specified authentication mode is not supported by the
    peer.";
        }
    
        identity invalid-username-or-password {
          base authentication-error;
          description
            "The specified user and/or password is not valid.";
        }
    
        identity remote-file-system-error {
          base download-error;
          description
            "Base identity for all error tags reporting file system errors
    at the remote peer.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity access-denied {
          base remote-file-system-error;
          description
            "Access to the file referenced in the request was denied by
    the remote peer.";
        }
    
        identity file-not-found {
          base remote-file-system-error;
          description
            "The file referenced in the request was not found on the
    remote peer.";
        }
    
        identity invalid-file-name {
          base remote-file-system-error;
          description
            "The file name referenced in the request is not valid.";
        }
    
        identity invalid-path {
          base remote-file-system-error;
          description
            "The file path referenced in the request is not valid.";
        }
    
        identity file-locked {
          base remote-file-system-error;
          description
            "The file referenced in the request is locked on the remote
    peer.";
        }
    
        identity invalid-file-size {
          base remote-file-system-error;
          description
            "The size of the file referenced in the request is not valid.";
        }
    
        identity local-file-system-error {
          base download-error;
          description
            "Base identity for all error tags reporting file system errors
    at the device.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity insufficient-storage-space {
          base local-file-system-error;
          description
            "The available local storage is insufficient to download a
    revision.";
        }
    
        identity maximum-number-of-revisions-reached {
          base local-file-system-error;
          description
            "A new revision cannot be downloaded, because the maximum
    number of revisions supported by the device has been reached.";
        }
    
        identity processing-error {
          base error-tag;
          description
            "Base identity for all error tags reporting processing errors
    occurring at a component.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity action-aborted {
          base processing-error;
          description
            "The associated action was aborted by the client.";
        }
    
        identity cannot-overwrite-revision {
          base processing-error;
          description
            "The target revision could not be overwritten.";
        }
    
        identity revision-not-valid {
          base processing-error;
          description
            "Base identity for all error tags reporting that a revision is
    invalid following its download.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity incompatible-version {
          base revision-not-valid;
          description
            "The version of the revision that was downloaded is not
    compatible with the software.";
        }
    
        identity revision-corrupt {
          base revision-not-valid;
          description
            "The downloaded revision is corrupted.";
        }
    
        identity unsupported-format {
          base revision-not-valid;
          description
            "The downloaded revision is in a format the is not supported
    by the device.";
        }
    
        identity revision-cannot-be-extracted-from-archive {
          base revision-not-valid;
          description
            "The downloaded file was an archive, but a revision could not
    be extracted from the archive.";
        }
    
        identity incorrect-hash {
          base revision-not-valid;
          description
            "The hash associated with the revision is incorrect.";
        }
    
        identity unsupported-hash-algorithm {
          base revision-not-valid;
          description
            "The algorithm used to calculate the hash associated with a
    revision is not supported by the device.";
        }
    
        identity cannot-abort {
          base processing-error;
          description
            "The associated ongoing activity cannot be aborted.";
        }
    
        identity already-completed {
          base processing-error;
          description
            "The associated activity had already completed and cannot be
    aborted.";
        }
    
        identity install-error {
          base processing-error;
          description
            "Base identity for all error tags reporting errors during the
    installation of a revision.
    
    This identity is abstract and SHOULD NOT generally be used as a
    value referenced by a leaf when reporting errors. If used to
    define an error that was not known at design time, it SHOULD be
    qualified with a corresponding description provided as
    additional information suitable for human display.";
        }
    
        identity incompatible-upgrade-or-downgrade-path {
          base install-error;
          description
            "The revision cannot be activated or committed, because an
    upgrade or downgrade of the software from the currently
    committed revision is not supported as part of the
    upgrade/downgrade path for the software.";
        }
    
        identity invalid-product-license {
          base install-error;
          description
            "The revision is licensed, but the device does not possess a
    valid license for the revision to activate or commit it.
    
    Note that how the device obtains and manages a license for a
    revision is beyond the scope of this model.";
        }
    
        identity database-conversion-failed {
          base install-error;
          description
            "At an upgrade or downgrade, an existing database required
    conversion to be compatible with the newer or older software,
    but this conversion failed.";
        }
    
        identity cannot-delete-revision {
          base processing-error;
          description
            "The revision could not be deleted.";
        }
    
        identity metadata-mismatch {
          base processing-error;
          description
            "The metadata of the revisions listed for the software in the
    operational state datastore at the time the action was invoked
    by the client is not identical to the metadata retrieved from
    the component immediately prior to execution of the activity
    resulting from the invocation of the action, i.e., the state
    of the revisions on the component has changed.";
        }
    
        identity component-not-responding {
          base processing-error;
          description
            "The component is not responding to requests.";
        }
    
        identity capability {
          description
            "Base identity for defining capabilities available to a client
    to manage a given software.";
        }
    
        identity download {
          base capability;
          description
            "Base identity for defining capabilities indicating support for
    downloading revisions within this YANG data model.
    
    This identity is abstract and MUST NOT be used to advertise
    support for a capability.";
        }
    
        identity download-target-selection-by-user {
          base download;
          description
            "Indicates that for the given software, the specific target
    revision in the list of revisions for that software to be used
    to store the downloaded revision can be selected by the user
    when invoking the action 'download' for that software.";
        }
    
        identity download-target-selection-by-system {
          base download;
          description
            "Indicates that for the given software, the target revision in
    the list of revisions for that software to be used to store the
    downloaded revision can be selected automatically by the system
    based on specific selection criteria when invoking the action
    'download' for that software.";
        }
    
        identity validate {
          base capability;
          description
            "Indicates that the software supports validating revisions.";
        }
    
        identity activate {
          base capability;
          description
            "Indicates that the software supports activating revisions.
    
    Note that a system may advertise the support for activating
    revisions even if the feature 'software-management-actions' is
    not supported by the system. In this case activation may only
    be possible via an alternative management interface.";
        }
    
        identity commit {
          base capability;
          description
            "Indicates that the software supports committing revisions.
    
    Note that a system may advertise the support for committing
    revisions even if the feature 'software-management-actions' is
    not supported by the system. In this case committing a revision
    may only be possible via an alternative management interface.";
        }
    
        identity delete {
          base capability;
          description
            "Indicates that the software supports deleting revisions.";
        }
    
        identity alias {
          base capability;
          description
            "Indicates that the software supports assigning an alias to a
    revision.";
        }
      }  // module bbf-software-management
    

© 2023 YumaWorks, Inc. All rights reserved.