This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on the Access Node Control...
Version: 2023-12-15
module bbf-ancp { yang-version 1.1; namespace "urn:bbf:yang:bbf-ancp"; prefix bbf-ancp; import bbf-yang-types { prefix bbf-yang; } import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix 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 the Access Node Control Protocol (ANCP) as defined in RFC 6320. As such, this module is specific to access network equipment (e.g., BBF-specified Access Nodes and FTTdp DPUs). This data model is designed for the Network Management Datastore Architecture defined in RFC 8342. 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."; reference "RFC 6320"; 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 "2023-03-07" { description "Amendment 6. * Approval Date: 2023-03-07. * Publication Date: 2023-03-07."; reference "TR-383a6: Common YANG Modules <https://www.broadband-forum.org/technical/download/ TR-383_Amendment-6.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>"; } revision "2020-10-13" { description "Amendment 3. * Approval Date: 2020-10-13. * Publication Date: 2020-10-13."; reference "TR-383a3: Common YANG Modules <https://www.broadband-forum.org/technical/download/ TR-383_Amendment-3.pdf>"; } feature protocol-version { description "Indicates support for the configuration of the protocol version of ANCP sessions."; } feature partition-id-negotiation { description "Indicates that the device supports negotiation of the Partition ID to be used to be used by ANCP sessions to associate ANCP messages with the partition of the Access Node managed by a session."; } feature session-statistics { description "Indicates support for statistics for ANCP sessions."; } feature tcp-port { description "Indicates support for the configuration of the TCP port for ANCP."; } feature port-message-dampening { description "Indicates support for the configuration of the dampening mechanism to limit the rate at which Port Up and Port Down messages are sent to the Network Access Server (NAS)."; } feature session-administrative-state { description "Indicates support for administratively enabling or disabling an ANCP session."; } feature session-reset { description "Indicates support for resetting a session."; } feature nas-connection-state { description "Indicates support for the state of the connection to the Network Access Server (NAS)."; } identity capabilities { description "Base identity for defining ANCP capabilities."; } identity topology-discovery { base capabilities; description "The Access Topology Discovery function is intended to allow the NAS to gain knowledge about the topology of the access network, the various lines being used, and their respective rates without having to rely on an integration with an OSS system."; reference "RFC 6320 section 6"; } identity access-line-technology { description "Base identity for defining the technology of access lines managed by a partition."; reference "RFC 6320 section 6.5"; } identity access-line-attribute { description "Base identity for defining access line attributes defined in the ANCP. This is an abstract identity and MUST NOT be used for access line attributes."; reference "RFC 6320 section 6.5"; } identity technology-independent-access-line-attribute { base access-line-attribute; description "Base identity for defining technology-independent access line attributes defined in the ANCP. This is an abstract identity and MUST NOT be used for access line attributes."; reference "RFC 6320 section 6.5"; } identity access-loop-encapsulation { base technology-independent-access-line-attribute; description "The data link protocol and, optionally, the encapsulation overhead on the access loop."; reference "RFC 6320 section 6.5.18"; } identity adjacency-malfunction-cause { description "Base identity for defining causes that resulted in the malfunction of the Adjacency Protocol. This identity is abstract and SHOULD NOT generally be used for malfunction causes. If used to define a cause that was not known at design time, it MUST be qualified with an associated message string. This practice, however, should be generally avoided to ensure all possible causes are known at design time."; } identity message-type-not-supported { base adjacency-malfunction-cause; description "The ANCP agent has received the result code value 0x51 in a response message which indicates that message type of the original request was not supported."; } identity capability-negotiation-failed { base adjacency-malfunction-cause; description "The ANCP session was unable to successfully negotiate a common set of capabilities with its Network Access Server (NAS)."; } typedef protocol-version { type enumeration { enum "rfc6320" { value 0; description "RFC 6320 defines ANCP Version 1 which is identified by version = 50 in protocol messages as defined the joint GSMP / ANCP Version Registry."; reference "RFC 6320 section 10.8"; } } description "Defines the supported protocol versions."; } typedef partition-id { type uint8 { range "1..255"; } description "Defines the Partition ID."; reference "RFC 6320 section 3.5.1"; } typedef entity-name { type union { type enumeration { enum "unknown" { value 0; description "The name of the sending/receiving entity is unknown."; } } type yang:hex-string { length "17"; } } description "An entity name used to identify the sender/receiver of an ANCP message."; reference "RFC 6320 section 3.5.1"; } typedef link-instance { type union { type uint32 { range "1..16777216"; } type enumeration { enum "undefined" { value 0; description "The instance number is undefined."; } } } description "The instance number used to identify the link within the Access Node or NAS."; reference "RFC 6320 section 3.5.1"; } container ancp { description "Management of the Access Node Control Protocol (ANCP)."; container partitions { must "(bbf-ancp:partition/bbf-ancp:partition-id='global' and count(bbf-ancp:partition)=1) or not(bbf-ancp:partition/bbf-ancp:partition-id='global')" { error-message "The device may only be configured for a single global partition or fixed partitions, but not both."; description "Prevent both the global partition and fixed partitions from being configured at the same time."; } description "Management of ANCP partitions on the device."; list partition { key "partition-id"; description "A partition."; leaf partition-id { type union { type enumeration { enum "global" { value 0; description "The partition represents a device that is configured to operate without fixed partitions."; } } type partition-id; } description "Uniquely identifies the partition. If the device is to use fixed partitions, this leaf must be set to a value between 1 and 255; this value will be used to associate ANCP messages with this specific partition. If the device is not to use fixed partitions, i.e., is not partitioned, this leaf must be set to 'global', in which case no other partition may be configured. If the single partition with 'partition-id' set to 'global' is configured, the PType and Partition ID in the Adjacency Message must be being set to 0 (no partition) and 0 respectively."; reference "RFC 6320 section 3.5.2.4.2"; } leaf technology { type identityref { base access-line-technology; } mandatory true; description "The access line technology supported by the partition."; } container sessions { description "Management of ANCP sessions."; list session { key "name"; description "An ANCP session."; leaf name { type string; description "An arbitrary name for the session."; } leaf enable { if-feature session-administrative-state; type boolean; default "true"; description "The desired administrative state of the session."; } leaf protocol-version { if-feature bbf-ancp:protocol-version; type protocol-version; default "rfc6320"; description "The ANCP protocol version to be used by the session."; reference "RFC 6320 section 3.5.1"; } leaf-list capability { type identityref { base capabilities; } min-elements 1; description "The common set of ANCP capabilities supported by this session. At least one capability must be configured. The final negotiated value may be different to the intended value and is to be found by operational data."; reference "RFC 6320 section 3.5.1 (Capability Fields)."; } leaf oper-state { type enumeration { enum "down" { value 0; description "The operational state of the session is down and it is non-operational."; } enum "up" { value 1; description "The operational state of the session is up and it is operational."; } } config false; mandatory true; description "The operational state of the session. A session is deemed to be 'up', only when adjacency is established ('adjacency-state' is set to 'estab')."; } container access-node { description "Configuration relevant to the Access Node side of the ANCP session."; container name-source { presence "Enables selection of the source of the name to use to generate the Sender Name to be used for this ANCP session. If this container is not present, the system will use the a system MAC address to generate the Sender Name."; description "Configuration of the source to use to generate the Sender Name to be used for this ANCP session."; choice which-name-source { mandatory true; description "Configures which source to use to generate the Sender Name to use to identify the session at the Access Node to the NAS."; reference "RFC 6320 section 3.5.1 (Sender Name)."; case use-mac-address { description "Configures the session to use a system MAC address to generate the Sender Name to be inserted into ANCP messages to identify the Access Node."; leaf use-mac-address { type empty; description "Configures the session to use a system MAC address to generate the Sender Name to be inserted into ANCP messages to identify the Access Node."; } } // case use-mac-address } // choice which-name-source } // container name-source leaf name { type entity-name; config false; mandatory true; description "The Name used by the entity (Access Node or NAS) as advertised in the adjacency message. This leaf has value 'unknown', if adjacency state is not ESTAB (established)."; } leaf instance { type link-instance; config false; mandatory true; description "The value for Instance used by the entity (Access Node or NAS) to identify the link to the peer. This leaf has value 'undefined', if adjacency state is not ESTAB (established)."; } leaf address { type inet:ip-address; config false; mandatory true; description "The IP address of the Access Node."; } leaf port { type inet:port-number; config false; mandatory true; description "The IP port of the Access Node."; } } // container access-node container network-access-server { description "Configuration relevant to the Network Access Server (NAS) side of the ANCP session."; leaf name { type entity-name; config false; mandatory true; description "The Name used by the entity (Access Node or NAS) as advertised in the adjacency message. This leaf has value 'unknown', if adjacency state is not ESTAB (established)."; } leaf instance { type link-instance; config false; mandatory true; description "The value for Instance used by the entity (Access Node or NAS) to identify the link to the peer. This leaf has value 'undefined', if adjacency state is not ESTAB (established)."; } choice transport { mandatory true; description "Selects the transport for ANCP."; case tcp { description "Configures TCP as the transport for ANCP."; reference "RFC 6320 section 3.2"; container tcp { description "Contains TCP-specific configuration for ANCP."; leaf address { type inet:host; mandatory true; description "The IP address or the DNS domain name of the NAS."; } leaf port { if-feature tcp-port; type inet:port-number; default "6068"; description "The IP port of the NAS."; reference "RFC 6320 section 3.2"; } } // container tcp } // case tcp } // choice transport leaf connection-state { if-feature nas-connection-state; type enumeration { enum "opening" { value 0; description "The session is attempting to establish a connection to the NAS."; } enum "established" { value 1; description "A connection to the NAS is established."; } enum "closed" { value 2; description "The session to the NAS has been closed by the ANCP Agent on the Access Node, for example, due to a malfunction with the Adjacency Protocol."; } enum "malfunction" { value 3; description "A connection to the configured NAS could not be established. A corresponding alarm will be raised, if supported. A device may continue to periodically attempt to establish the transport connection, but this is implementation-specific. If the transport connection can be established the alarm will be cleared by the instrumentation. To re-attempt to connect to a configured NAS manually either - modify the configuration - reset the session using the action 'reset', if supported - administratively disable and then enable the session."; } enum "disabled" { value 4; description "The session has been administratively disabled."; } } config false; mandatory true; description "The operational state of the transport connection to the Network Access Server (NAS)."; } } // container network-access-server container adjacency-protocol { description "Configuration to manage the adjacency protocol."; leaf liveness-timer { type uint8; units "0.1 seconds"; default "250"; description "The nominal time between periodic adjacency protocol messages. The final negotiated value, which will be constant for the duration of the ANCP session, may be different to the intended value and is to be found by querying state data."; reference "RFC 6320 section 3.5.1 (Timer)."; } leaf adjacency-state { type enumeration { enum "malfunction" { value 0; description "Adjacency could not be established, because of a malfunctioning of the adjacency protocol. This will result in the connection to the NAS being dropped and a corresponding alarm raised, if supported. Further details of the cause of the malfunction will be reported through the data nodes in the container 'malfunction'. To re-attempt to setup adjacency either - modify the configuration - reset the session using the action 'reset', if supported - administratively disable and then enable the session."; reference "RFC 5851 section 4.6.4 R-48."; } enum "synchronization-lost" { value 1; description "Indicates that the Access Node and NAS are no longer synchronized. This may occur, if - no valid ANCP messages are received in any period of time in excess of three times the value of the negotiated liveness timer; or - a mismatch in adjacency state is detected. A corresponding alarm will be raised, if supported."; reference "RFC 6320 section 3.5.2.7"; } enum "estab" { value 2; description "The state ESTAB (established) indicates that the Access Node has established a session."; reference "RFC 6320 section 3.5.2.2.7"; } enum "synrcvd" { value 3; description "The state SYNRCVD (synchronization received) indicates that the Access Node has received a connection request and sent an acknowledgment."; reference "RFC 6320 section 3.5.2.2.1"; } enum "synsent" { value 4; description "The state SYNSENT (synchronization sent) indicates that the Access Node is waiting for an acknowledgment from the NAS after having sent a connection request."; reference "RFC 6320 section 3.5.2.2.1"; } enum "pending" { value 5; description "The setup of an adjacency is pending the establishment of the transport layer."; } enum "disabled" { value 6; description "The session and thus the execution of the Adjacency Protocol has been administratively disabled."; } } config false; mandatory true; description "The operational state of the adjacency protocol."; reference "RFC 6320 section 3.5.2.2"; } leaf partition-id { when "count(/bbf-ancp:ancp/bbf-ancp:partitions/bbf-ancp:partition)>0 and not(boolean(/bbf-ancp:ancp/bbf-ancp:partitions/bbf-ancp:partition[bbf-ancp:partition-id='global']))" { description "The use of a Partition ID is only applicable, if the Access Node has been partitioned."; } if-feature bbf-ancp:partition-id-negotiation; type partition-id; config false; mandatory true; description "The Partition ID used by this session to associate ANCP messages with the partition of the Access Node managed by this session. The final negotiated value, which will be constant for the duration of the ANCP session, may be different to the Partition ID configured for the partition."; reference "RFC 6320 section 3.5.2.4.2"; } container malfunction { when "../adjacency-state='malfunction'" { description "Only applicable when there is a malfunction in the Adjacency Protocol."; } config false; description "Provides additional information regarding a malfunction encountered with the Adjacency Protocol."; leaf cause { type identityref { base adjacency-malfunction-cause; } mandatory true; description "The cause of the malfunction of the Adjacency Protocol."; } leaf message { type string; description "A string suitable for human display that describes the condition causing the malfunction."; } } // container malfunction } // container adjacency-protocol container access-line-identification { description "Configure Access Line Identification for ANCP."; leaf-list access-line-identification { type enumeration { enum "access-loop-circuit-id" { value 0; description "Add the Access Loop Circuit ID TLV in the ANCP message, i.e., the TLV with type value 0x0001. The value inserted in the TLV is the value defined by the data node '/bbf-subprof: subscriber-profiles/bbf-subprof:subscriber- profile/bbf-subprof:circuit-id' that is associated with the interface, if present. If not present, the value inserted will be generated according to the syntax defined in the leaf 'access-loop-circuit-id'. If this leaf is not present or empty, then an empty TLV will be inserted, i.e., a TLV with Length = 0."; reference "RFC 6320 section 5.1.2.1, TR-101i2 Section 3.9.3."; } enum "access-loop-remote-id" { value 1; description "Add the Access Loop Remote ID TLV in the ANCP message, i.e., the TLV with type value 0x0002. The value inserted in the TLV is the value defined by the data node '/bbf-subprof: subscriber-profiles/bbf-subprof:subscriber- profile/bbf-subprof:remote-id' that is associated with the interface, if present. If not present, then an empty TLV will be inserted, i.e., a TLV with Length = 0."; reference "RFC 6320 section 5.1.2.2, TR-101i2 Section 3.9.3."; } enum "access-aggregation-circuit-id-binary" { value 2; description "Add the Access Aggregation Circuit ID Binary TLV in the ANCP message, i.e., the TLV with type value 0x0006. This TLV identifies or partially identifies a specific access line by means of its logical circuit identifier on the NAS side of the AN. It is defined to contain VLAN ID(s). The value of the TLV contains the VLAN IDs of the VLAN tags to be used in data frames sent on a network interface. However, this is not necessarily the same for all data frames coming from a single access line. The selection of which values to use for the VLAN IDs is defined by the value configured via the interface."; reference "RFC 6320 section 5.1.2.3, TR-101i2 Section 3.9.3."; } enum "access-aggregation-circuit-id-ascii" { value 3; description "Add the Access Aggregation Circuit ID ASCII TLV in the ANCP message, i.e., the TLV with type value 0x0003. The value is identified in the same way as the value for the Access Aggregation Circuit ID Binary TLV. The difference for the TLV value is the produced format, i.e., for the Access Aggregation Circuit Id ASCII TLV the format is in ASCII and based on a syntax configured in the leaf 'access-aggregation-circuit-id-ascii'. If this leaf is empty, then an empty TLV will be inserted, i.e., a TLV with Length = 0."; reference "RFC 6320 section 5.1.2.4, TR-101i2 Section 3.9.3."; } } min-elements 1; description "Identifies how to generate / interpret the Access Line Identification TLVs used in ANCP messages."; } leaf access-loop-circuit-id { type bbf-yang:string-ascii63-or-empty; default ""; description "ASCII string identifying the access loop logical port on the user side of the AN. It may contain any characters and variables, e.g., 'Access_Node_ID eth slot/port'."; reference "RFC 6320 section 5.1.2.1 and TR-101 Section 3.9.3."; } leaf access-aggregation-circuit-id-ascii { type bbf-yang:string-ascii63-or-empty; default ""; description "ASCII string identifying or partially identifying a specific access line by means of its logical circuit identifier on the NAS side of the Access Node. As per RFC 6320 it shall contain VLAN IDs similar as the Access Aggregation Circuit ID Binary TLV, but in a format as specified by TR-101. It may contain any characters and variables, e.g., 'S-VID:C-VID'."; reference "RFC 6320 section 5.1.2.4"; } leaf start-numbering-from-zero { type boolean; default "false"; description "In case the leaf 'access-loop-circuit-id' or 'access-aggregation-circuit-id-ascii' indicates the TLV shall contain a slot, a port or another variable for which the numbering is defined by the AN, then this leaf determines if the numbering MUST start from 0 or 1."; reference "TR-178 - R118"; } leaf use-leading-zeroes { type boolean; default "false"; description "In case the leaf 'access-loop-circuit-id' or the 'access-aggregation-circuit-id-ascii' contain variables for which the value can be multiple digits, then this leaf determines if the slot/port/VLAN ID numbering MUST use leading 0's or not, i.e., generate a fixed-length string or a string with only meaningful digits. Note that the number of digits used to form the fixed-length string is device specific. A device may use the number of digits as specified in TR-101 Table 2 / TR-156 Table 1 or a device may determine the number of digits by the maximum value for the Slot or a Port identification applicable to the device, i.e., if the maximum value is less than or equal to 9, one digit may be used; if the maximum value is less than or equal to 99, two digits may be used, etc."; reference "TR-178 - R119 and TR-101i2 - R153; TR-101i2 - Table 2 Circuit ID Syntax; TR-156 - Table 1 Port Identification String Elements."; } } // container access-line-identification container topology-discovery { when "../capability='bbf-ancp:topology-discovery'" { description "Only applicable, if the topology discovery capability has been selected."; } description "Configuration to manage line state reporting for topology discovery."; container port-up { description "Configuration to manage line state reporting for the Port Up message."; container fastdsl { description "Configuration of the DSL-Line-Attributes TLV to be included in the Port Up message for FastDSL access lines."; reference "RFC 6320 section 6.5.1"; leaf-list access-line-attribute { type union { type identityref { base bbf-ancp:technology-independent-access-line-attribute; } type identityref { base vdsl-access-line-attribute; } type identityref { base fast-access-line-attribute; } } min-elements 1; description "An access line attribute to be included in the Port Up and Port Down messages."; reference "RFC 6320 section 6.5.1"; } } // container fastdsl } // container port-up container port-down { description "Configuration to manage line state reporting for the Port Down message."; container fastdsl { presence "The presence of this container enables the inclusion of FastDSL access line attributes in the Port Down message. If this container is not present, no FastDSL access line attributes will be included in the Port Down message."; description "Configuration of the FastDSL Access Line Attributes TLVs to be included in the Port Down message."; choice which-access-line-attributes { mandatory true; description "Selects which FastDSL access line attribute TLVs to include in the Port Down message for FastDSL access lines."; case same-access-line-attributes-as-port-up { description "Selects that the configuration for FastDSL access line attribute TLVs for the Port Up message is to be used for the Port Down message."; leaf same-access-line-attributes-as-port-up { type empty; description "The configuration for FastDSL access line attribute TLVs for the Port Up message is to be used for the Port Down message for FastDSL access lines."; } } // case same-access-line-attributes-as-port-up case access-line-attributes { description "Selects which FastDSL access line attribute TLVs to be included in the Port Down message."; leaf-list access-line-attribute { type union { type identityref { base bbf-ancp:technology-independent-access-line-attribute; } type identityref { base vdsl-access-line-attribute; } type identityref { base fast-access-line-attribute; } } min-elements 1; description "An access line attribute to be included in the Port Up and Port Down messages."; reference "RFC 6320 section 6.5.1"; } } // case access-line-attributes } // choice which-access-line-attributes } // container fastdsl } // container port-down } // container topology-discovery container statistics { if-feature bbf-ancp:session-statistics; config false; description "ANCP statistics for this session."; leaf last-established-timestamp { type yang:date-and-time; mandatory true; description "The date and time the session last entered the established state."; } leaf last-discontinuity-timestamp { type yang:date-and-time; mandatory true; description "The date and time the session last suffered a discontinuity."; } leaf in-valid-messages { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of messages that have been received and processed in this session by the AN. All ANCP messages pertaining to this session shall be counted, also including adjacency protocol messages and failure response messages."; } leaf in-discarded-messages { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of messages that in this session have been received and discarded for whatever reason by the AN. All ANCP messages pertaining to this session shall be counted, also including adjacency protocol messages and failure response messages."; } leaf out-messages { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of messages that have been sent in this session by the AN. All ANCP messages pertaining to this session shall be counted, also including adjacency protocol messages and failure response messages."; } leaf in-syn { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency SYN messages that in this session have been received by the Access Node."; } leaf in-synack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency SYNACK messages that in this session have been received by the Access Node."; } leaf in-ack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency ACK messages that in this session have been received by the Access Node."; } leaf in-rstack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency RSTACK messages that in this session have been received by the Access Node."; } leaf out-syn { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency SYN messages that in this session have been transmitted by the Access Node."; } leaf out-synack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency SYNACK messages that in this session have been transmitted by the Access Node."; } leaf out-rstack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency RSTACK messages that in this session have been transmitted by the Access Node."; } leaf out-ack { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of adjacency ACK messages that in this session have been transmitted by the Access Node."; } container access-lines { presence "Indicates availability of access line port message statistics for the ANCP session."; description "Topology Discovery statistics for access lines managed by this session."; list access-line { key "interface"; description "An access line managed by this session."; leaf interface { type if:interface-ref; description "Identifies the interface representing the access line."; } leaf out-port-up { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of Port Up messages associated with this interface that have been transmitted by the Access Node within this session."; } leaf out-port-down { type yang:zero-based-counter32; units "messages"; mandatory true; description "The number of Port Down messages associated with this interface that have been transmitted by the Access Node within this session."; } } // list access-line } // container access-lines } // container statistics container reset { when "not(boolean(../enable)) or (../enable='true')" { description "If the administrative state of a session is supported, the session must be currently administratively enabled to reset the session."; } if-feature session-reset; description "Provides containment for the action 'reset'."; action reset { description "Reset the session. Resetting the session will close the connection to the NAS, if established, and clear any alarms. The session will then restart and attempt to setup adjacency to the NAS."; } // rpc reset } // container reset } // list session } // container sessions container port-message-control { description "Configuration to control the generation of Port Up and Port Down messages."; choice which-dampening-mechanism { if-feature bbf-ancp:port-message-dampening; default "port-up-port-down-withholding-interval"; description "Selects the dampening mechanism for the sending of Port Up and Port Down event messages."; case port-up-port-down-withholding-interval { description "Configures withholding interval for Port Up and Port Down messages."; leaf port-up-port-down-withholding-interval { type union { type enumeration { enum "disabled" { value 0; description "The withholding interval is disabled and all line state changes will be reported to the NAS."; } } type uint16 { range "1..max"; } } units "0.1 seconds"; default "disabled"; description "Configures the dampening mechanism controlling the rate at which Port Up and Port Down messages are sent to the NAS, applying individually to each access line. Specifically, it defines an interval following the sending of a Port Up or Port Down message for a given access line, during which no further Port Up or Port Down message is to be sent to the NAS for that given access line. If, at the end of the withholding interval, there has been a change in line state of the given line to that when the last Port Up or Port Down message was sent for that line, the new line state of that line is reported to the NAS (with the withholding interval for that line applying again)."; reference "RFC 6320 section 6.4.1"; } } // case port-up-port-down-withholding-interval } // choice which-dampening-mechanism container vdsl { when "../../bbf-ancp:technology = 'bbf-ancp-fastdsl-acc-ext:fastdsl'" { description "To configure port message control specific to VDSL access lines, the technology of the partition must be FastDSL."; } description "Additions for controlling the generation of ANCP Port Up and Port Down messages."; leaf initial-port-up-delay { if-feature bbf-ancp-fastdsl-threshold:delayed-port-up-reporting; type delay; default "no-delay"; description "Sets the delay to be applied for generating an ANCP Port Up message. This delay is applied after the line comes in sync. Meaning, when the line changes from state 'out of sync' to 'in sync', then the line must be continuously 'in sync' for that time in order to send the first ANCP Port Up message."; reference "TR-147 - R60"; } list data-rate-report { if-feature bbf-ancp-fastdsl-threshold:delayed-data-rate-change-reporting; must "derived-from-or-self(access-line-attribute, "bbf-ancp-fastdsl-acc-ext:actual-net-data-rate-upstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:actual-net-data-rate-downstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:attainable-net-data-rate-upstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:attainable-net-data-rate-downstream")" { error-message "The configuration for reporting a data rate change is performed on a line attribute other than one of 'actual-net-data-rate-upstream', 'actual-net-data-rate-downstream', 'attainable-net-data-rate-upstream' or 'attainable-net-data-rate-downstream'"; description "Reporting data rate changes is supported only for a subset of the line attributes."; } key "access-line-attribute"; description "Sets configuration data controlling the reporting of data rate changes via ANCP Port up messages in a data-rate- specific access line attribute."; leaf access-line-attribute { type identityref { base bbf-ancp-fastdsl-acc-ext:vdsl-access-line-attribute; } description "An access line attribute for which changes in the value shall be reported."; reference "RFC 6320 section 6.5.1"; } container shift-up { description "The configuration data to be applied to control the reporting of positive changes of the line attribute in ANCP Port Up messages."; leaf threshold { type bbf-yang:data-rate32 { range "1..max"; } units "kilobits per second"; mandatory true; description "The threshold to be applied to evaluate the difference in the line attribute of the interface, compared to the previously reported value. A Port Up message will be triggered, when the difference in the value of the line attribute is equal to or has crossed the threshold value."; reference "TR-147 - R61"; } leaf qualification-period { type delay; default "no-delay"; description "Sets a qualification period, in which a line attribute value must have persistently crossed the configured threshold, before a Port Up message is sent that reports the threshold crossing. Note that this qualification period controls how long a line attribute must have crossed a threshold before sending a Port Up message, whereas the dampening mechanism configured in the container 'bbf-ancp:port-message-control' controls the rate at which Port Up messages can be sent to the NAS. Therefore, depending on the configuration for the dampening mechanism and when the previous Port Up message was sent for the given line, the dampening mechanism may delay sending the Port Up message reporting the threshold crossing past the expiration of the qualification period."; reference "TR-147 - R60"; } } // container shift-up container shift-down { description "The configuration data to be applied to control the reporting of negative changes of the line attribute in ANCP Port Up messages."; leaf threshold { type bbf-yang:data-rate32 { range "1..max"; } units "kilobits per second"; mandatory true; description "The threshold to be applied to evaluate the difference in the line attribute of the interface, compared to the previously reported value. A Port Up message will be triggered, when the difference in the value of the line attribute is equal to or has crossed the threshold value."; reference "TR-147 - R61"; } leaf qualification-period { type delay; default "no-delay"; description "Sets a qualification period, in which a line attribute value must have persistently crossed the configured threshold, before a Port Up message is sent that reports the threshold crossing. Note that this qualification period controls how long a line attribute must have crossed a threshold before sending a Port Up message, whereas the dampening mechanism configured in the container 'bbf-ancp:port-message-control' controls the rate at which Port Up messages can be sent to the NAS. Therefore, depending on the configuration for the dampening mechanism and when the previous Port Up message was sent for the given line, the dampening mechanism may delay sending the Port Up message reporting the threshold crossing past the expiration of the qualification period."; reference "TR-147 - R60"; } } // container shift-down } // list data-rate-report } // container vdsl container fast { when "../../bbf-ancp:technology = 'bbf-ancp-fastdsl-acc-ext:fastdsl'" { description "To configure port message control specific to FAST access lines, the technology of the partition must be FastDSL."; } description "Additions for controlling the generation of ANCP Port Up and Port Down messages."; leaf initial-port-up-delay { if-feature bbf-ancp-fastdsl-threshold:delayed-port-up-reporting; type delay; default "no-delay"; description "Sets the delay to be applied for generating an ANCP Port Up message. This delay is applied after the line comes in sync. Meaning, when the line changes from state 'out of sync' to 'in sync', then the line must be continuously 'in sync' for that time in order to send the first ANCP Port Up message."; reference "TR-147 - R60"; } list data-rate-report { if-feature bbf-ancp-fastdsl-threshold:delayed-data-rate-change-reporting; must "derived-from-or-self(access-line-attribute, "bbf-ancp-fastdsl-acc-ext:actual-net-data-rate-upstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:actual-net-data-rate-downstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:attainable-net-data-rate-upstream") or derived-from-or-self(access-line-attribute,"bbf-ancp-fastdsl-acc-ext:attainable-net-data-rate-downstream")" { error-message "The configuration for reporting a data rate change is performed on a line attribute other than one of 'actual-net-data-rate-upstream', 'actual-net-data-rate-downstream', 'attainable-net-data-rate-upstream' or 'attainable-net-data-rate-downstream'"; description "Reporting data rate changes is supported only for a subset of the line attributes."; } key "access-line-attribute"; description "Sets configuration data controlling the reporting of data rate changes via ANCP Port up messages in a data-rate- specific access line attribute."; leaf access-line-attribute { type identityref { base bbf-ancp-fastdsl-acc-ext:fast-access-line-attribute; } description "An access line attribute for which changes in the value shall be reported."; reference "RFC 6320 section 6.5.1"; } container shift-up { description "The configuration data to be applied to control the reporting of positive changes of the line attribute in ANCP Port Up messages."; leaf threshold { type bbf-yang:data-rate32 { range "1..max"; } units "kilobits per second"; mandatory true; description "The threshold to be applied to evaluate the difference in the line attribute of the interface, compared to the previously reported value. A Port Up message will be triggered, when the difference in the value of the line attribute is equal to or has crossed the threshold value."; reference "TR-147 - R61"; } leaf qualification-period { type delay; default "no-delay"; description "Sets a qualification period, in which a line attribute value must have persistently crossed the configured threshold, before a Port Up message is sent that reports the threshold crossing. Note that this qualification period controls how long a line attribute must have crossed a threshold before sending a Port Up message, whereas the dampening mechanism configured in the container 'bbf-ancp:port-message-control' controls the rate at which Port Up messages can be sent to the NAS. Therefore, depending on the configuration for the dampening mechanism and when the previous Port Up message was sent for the given line, the dampening mechanism may delay sending the Port Up message reporting the threshold crossing past the expiration of the qualification period."; reference "TR-147 - R60"; } } // container shift-up container shift-down { description "The configuration data to be applied to control the reporting of negative changes of the line attribute in ANCP Port Up messages."; leaf threshold { type bbf-yang:data-rate32 { range "1..max"; } units "kilobits per second"; mandatory true; description "The threshold to be applied to evaluate the difference in the line attribute of the interface, compared to the previously reported value. A Port Up message will be triggered, when the difference in the value of the line attribute is equal to or has crossed the threshold value."; reference "TR-147 - R61"; } leaf qualification-period { type delay; default "no-delay"; description "Sets a qualification period, in which a line attribute value must have persistently crossed the configured threshold, before a Port Up message is sent that reports the threshold crossing. Note that this qualification period controls how long a line attribute must have crossed a threshold before sending a Port Up message, whereas the dampening mechanism configured in the container 'bbf-ancp:port-message-control' controls the rate at which Port Up messages can be sent to the NAS. Therefore, depending on the configuration for the dampening mechanism and when the previous Port Up message was sent for the given line, the dampening mechanism may delay sending the Port Up message reporting the threshold crossing past the expiration of the qualification period."; reference "TR-147 - R60"; } } // container shift-down } // list data-rate-report } // container fast } // container port-message-control } // list partition } // container partitions } // container ancp } // module bbf-ancp
© 2023 YumaWorks, Inc. All rights reserved.