This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on software management as ...
Version: 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.