module ieee802-dot1cb-frer { yang-version "1.1"; namespace urn:ieee:std:802.1Q:yang:ieee802-dot1cb-frer; prefix dot1cb-frer; import ieee802-dot1cb-stream-identification { prefix dot1cb-sid; } import ieee802-dot1cb-stream-identification-types { prefix dot1cb-sid-types; } import ieee802-dot1cb-frer-types { prefix dot1cb-frer-types; } import ieee802-dot1q-types { prefix dot1qtypes; } import ietf-interfaces { prefix if; } organization "Institute of Electrical and Electronics Engineers"; contact "WG-URL: http://ieee802.org/1/ WG-EMail: stds-802-1-l@ieee.org Contact: IEEE 802.1 Working Group Chair Postal: C/O IEEE 802.1 Working Group IEEE Standards Association 445 Hoes Lane Piscataway, NJ 08854 USA E-mail: stds-802-1-chairs@ieee.org"; description "Management objects that control the frame replication and elimination from IEEE Std 802.1CB-2017. This YANG data model conforms to the Network Management Datastore Architecture defined in RFC 8342. Copyright (C) IEEE (2021). This version of this YANG module is part of IEEE Std 802.1CBcv; see the standard itself for full legal notices."; revision 2021-12-08 { description "Published as part of IEEE Std 802.1CBcv-2021. Initial version."; reference "IEEE Std 802.1CBcv-2021, Frame Replication and Elimination for Reliability - FRER YANG Data Model and Management Information Base Module."; } feature auto-configuration { description "Autoconfiguration of entries in the tables for Stream identity table, sequence recovery table, and sequence identification table."; reference "7.11 of IEEE Std 802.1CB-2017 10.7 of IEEE Std 802.1CB-2017"; } typedef lan-path-id { type int8; description "An integer specifying a path or LAN. If and only if a packet matches an entry in the Sequence identification table that specifies HSR or PRP in its frerSeqEncEncapsType object, tsnStreamIdLanPathId specifies the LanId or PathId value that must be matched for this tsnStreamIdEntry to apply. A value of –1 indicates that the LanId or PathId are to be ignored."; reference "10.22 of IEEE Std 802.1CB-2017"; } typedef sequence-history-length { type uint32 { range "2..max"; } description "An integer specifying how many bits of the SequenceHistory variable are to be used."; reference "7.4.3.2.2 of IEEE Std 802.1CB-2017"; } grouping sequence-encode-decode { description "The sequence-encode-decode grouping indicates the type of encapsulation used for this instance of the Sequence encode/decode function."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; choice encapsulation { description "This choice indicates the type of encapsulation used for this instance of the Sequence encode/decode function. The encapsulation includes an Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the Sequence encode/decode method."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; container r-tag { presence "true"; description "R-TAG"; reference "7.8 of IEEE Std 802.1CB-2017"; leaf type-number { type dot1cb-frer-types:seq-encaps-method; default "r-tag"; config false; description "The type number used for the R-TAG encode/decode method."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } default "00-80-C2"; config false; description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the encode/decode method. For encode/decode methods defined in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } } container hsr-sequence-tag { presence "true"; description "HSR sequence tag"; reference "7.9 of IEEE Std 802.1CB-2017"; leaf type-number { type dot1cb-frer-types:seq-encaps-method; default "hsr-seq-tag"; config false; description "The type number used for the HSR sequence tag encode/decode method."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } default "00-80-C2"; config false; description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the encode/decode method. For encode/decode methods defined in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } } container prp-sequence-tag { presence "true"; description "PRP sequence trailer"; reference "7.10 of IEEE Std 802.1CB-2017"; leaf type-number { type dot1cb-frer-types:seq-encaps-method; default "prp-seq-trailer"; config false; description "The type number used for the PRP sequence trailer encode/decode method."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } default "00-80-C2"; config false; description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the encode/decode method. For encode/decode methods defined in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } } container organization-specific { presence "true"; description "This container allows to select Sequence encode/decode types that are defined by entities outside of IEEE 802.1."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; leaf type-number { type int32 { range "256..max"; } description "The type number used for an encode/decode method defined by an entity owning the OUI or CID for this encapsulation type."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the encode/decode method."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; } } } } grouping sequence-recovery-algorithm { description "The sequence-recovery-algorithm grouping specifies which sequence recovery algorithm is to be used for this instance of the Sequence recovery function."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; choice algorithm { description "This choice indicates the sequence recovery algorithm used for this instance of the Sequence recovery function. It includes an Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the sequence recovery algorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; container vector { presence "true"; description "Vector Recovery Algorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; leaf type-number { type dot1cb-frer-types:seq-rcvy-algorithm; default "vector"; config false; description "The type number used for the VectorRecoveryAlgorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } default "00-80-C2"; config false; description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the sequence recovery algorithm. For sequence recovery algorithms defined in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } } container match { presence "true"; description "Match Recovery Algorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; leaf type-number { type dot1cb-frer-types:seq-rcvy-algorithm; default "match"; config false; description "The type number used for the MatchRecoveryAlgorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } default "00-80-C2"; config false; description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the sequence recovery algorithm. For sequence recovery algorithms defined in IEEE Std 802.1CB-2017 the OUI/CID is always 00-80-C2."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } } container organization-specific { presence "true"; description "This container allows to select sequence recovery algorithms that are defined by entities outside of IEEE 802.1."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; leaf type-number { type int32 { range "256..max"; } description "The type number used for a sequence recovery algorithm defined by an entity owning the OUI or CID for this algorithm type."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } leaf oui-cid { type string { pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; } description "The Organizationally Unique Identifier (OUI) or Company ID (CID) to identify the organization defining the sequence recovery algorithm."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; } } } } container frer { description "The managed objects that control Stream identification are described in Clause 9 of IEEE Std 802.1CB-2017. The managed objects that control FRER are described in Clause 10 of IEEE Std 802.1CB-2017 as follows: a) General requirements on the behavior of counters are in 10.1. b) The various tables of managed objects that can manage, in detail, each individual Stream, are described in five subclauses, including: 1) Additions to the Stream identity table required for Autoconfiguration. 2) The Sequence generation table that configures instances of the Sequence generation function; 3) The Sequence recovery table that configures instances of the Individual recovery function, the Sequence recovery function, and the Latent error detection function; 4) The Sequence identification table that configures instances of the Sequence encode/decode function; and 5) The Stream split table that configures instances of the Stream splitting function. c) The managed objects that support the automatic configuration, upon receipt of a packet, of entries in the first four of the preceding tables, are described in the subclause on Autoconfiguration. d) The per-port, per-Stream packet counters that are kept by FRER functions for inspection by network management entities are described in 10.8, and the per-port (totaled over all Streams) counters in 10.9. The managed objects in the subclauses under 9.1 make it possible to configure more than one encapsulation for the same stream_handle subparameter on the same port. Similarly, the managed objects in the subclauses under 10.3 and 10.4 make it possible to configure more than one Sequence encode/decode function or more than one Sequence generation function for the same stream_handle subparameter. [The same value of stream_handle can be in the frerSeqGenStreamList of more than one frerSeqGenEntry or in the frerSeqRcvyStreamList of more than one frerSeqRcvyEntry.] A system shall return an error if an attempt is made to configure conflicting requirements upon that system."; reference "Clause 10 of IEEE Std 802.1CB-2017"; list sequence-generation { key "index"; description "There is one Sequence generation table in a system, and one entry in the Sequence generation table for each Sequence generation function. Each frerSeqGenEntry lists the Streams and direction for which a single instance of the Sequence generation function is to be placed."; reference "10.3 of IEEE Std 802.1CB-2017"; leaf index { type uint32; description "Clause 10 of IEEE Std 802.1CB-2017 states that the same Stream handle can be present multiple times in the sequence generation table. Therefore this index leaf is being used to uniquely identify an entry in the sequence generation table."; } leaf-list stream { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } min-elements 1; description "A list of stream_handle values, corresponding to the values of the tsnStreamIdHandle objects in the Stream identity table, on which this instance of the Sequence generation function is to operate. The single instance of the Sequence generation function created by this frerSeqGenEntry operates every packet belonging to this Stream, regardless of the port on which it is received."; reference "10.3.1.1 of IEEE Std 802.1CB-2017"; } leaf direction-out-facing { type dot1cb-sid-types:direction; description "An object indicating whether the Sequence generation function is to be placed on the out-facing (True) or in-facing (False) side of the port."; reference "10.3.1.2 of IEEE Std 802.1CB-2017"; } leaf reset { type boolean; description "A Boolean object indicating that the Sequence generation function is to be reset by calling its corresponding SequenceGenerationReset function. Writing the value True to frerSeqGenReset triggers a reset; writing the value False has no effect. When read, frerSeqGenReset always returns the value False."; reference "10.3.1.3 of IEEE Std 802.1CB-2017"; } } list sequence-recovery { key "index"; description "There is one Sequence recovery table in a system, and one entry in the Sequence recovery table for each Sequence recovery function or Individual recovery function that can also be present. The entry describes a set of managed objects for the single instance of a Base recovery function and Latent error detection function included in the Sequence recovery function or Individual recovery function. Each frerSeqRcvyEntry lists the Streams, ports, and direction for which instances of a Sequence recovery function or Individual recovery function are to be instantiated."; reference "10.4 of IEEE Std 802.1CB-2017"; leaf index { type uint32; description "Clause 10 of IEEE Std 802.1CB-2017 states that the same Stream handle can be present multiple times in the sequence recovery table. Therefore this index leaf is being used to uniquely identify an entry in the sequence recovery table."; } leaf-list stream { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } min-elements 1; description "A list of the stream_handle values, corresponding to the values of the tsnStreamIdHandle objects in the Stream identity table, to which the system is to apply the instance of the Sequence recovery function or Individual recovery function."; reference "10.4.1.1 of IEEE Std 802.1CB-2017"; } leaf-list port { type if:interface-ref; min-elements 1; description "The list of ports on each of which the system is to instantiate the Sequence recovery function, or from which received packets are to be fed to a single instance of the Individual recovery function."; reference "10.4.1.2 of IEEE Std 802.1CB-2017"; } leaf direction-out-facing { type dot1cb-sid-types:direction; description "An object indicating whether the Sequence recovery function or Individual recovery function is to be placed on the out-facing (True) or in-facing (False) side of the port."; reference "10.4.1.3 of IEEE Std 802.1CB-2017"; } leaf reset { type boolean; default "false"; description "A Boolean object indicating that the Sequence recovery function or Individual recovery function is to be reset by calling its corresponding SequenceGenerationReset function. Writing the value True to frerSeqRcvyReset triggers a reset; writing the value False has no effect. When read, frerSeqRcvyReset always returns the value False."; reference "10.4.1.4 of IEEE Std 802.1CB-2017"; } container algorithm { description "This object is an enumerated value specifying which sequence recovery algorithm is to be used for this instance of the Sequence recovery function. The enumeration uses an OUI or CID as shown in Table 10-1. The default value for frerSeqRcvyAlgorithm is Vector_Alg (00-80-C2, 0)."; reference "10.4.1.5 of IEEE Std 802.1CB-2017"; uses sequence-recovery-algorithm; } leaf history-length { type sequence-history-length; default "2"; description "An integer specifying how many bits of the SequenceHistory variable are to be used. The minimum and the default value is 2, maximum is the maximum allowed by the implementation. [Not used if frerSeqRcvyAlgorithm = Match_Alg (00-80-C2, 1).]"; reference "10.4.1.6 of IEEE Std 802.1CB-2017"; } leaf reset-timeout { type uint32; units "ms"; description "An unsigned integer specifying the timeout period in milliseconds for the RECOVERY_TIMEOUT event."; reference "10.4.1.7 of IEEE Std 802.1CB-2017"; } leaf invalid-sequence-value { type uint32; config false; description "A read-only unsigned integer value that cannot be encoded in a packet as a value for the sequence_number subparameter, i.e., frerSeqRcvyInvalidSequenceValue is larger than or equal to RecovSeqSpace."; reference "10.4.1.8 of IEEE Std 802.1CB-2017"; } leaf take-no-sequence { type boolean; default "false"; description "A Boolean value specifying whether packets with no sequence_number subparameter are to be accepted (True) or not (False). Default value False."; reference "10.4.1.9 of IEEE Std 802.1CB-2017"; } leaf individual-recovery { type boolean; description "A Boolean value specifying whether this entry describes a Sequence recovery function or Individual recovery function. a) True: The entry describes an Individual recovery function. Packets discarded by the SequenceGenerationAlgorithm will cause the variable RemainingTicks to be reset. There is no Latent error detection function associated with this entry, so frerSeqRcvyLatentErrorDetection cannot also be True. b) False: The entry describes a Sequence recovery function. Packets discarded by the SequenceGenerationAlgorithm will not cause the variable RemainingTicks to be reset."; reference "10.4.1.10 of IEEE Std 802.1CB-2017"; } leaf latent-error-detection { type boolean; description "A Boolean value indicating whether an instance of the Latent error detection function is to be instantiated along with the Base recovery function in this Sequence recovery function or Individual recovery function. frerSeqRcvyLatentErrorDetection cannot be set True if frerSeqRcvyIndividualRecovery is also True; an Individual recovery function does not include a Latent error detection function."; reference "10.4.1.11 of IEEE Std 802.1CB-2017"; } container latent-error-detection-parameters { description "The objects in the following subclauses are present if and only if frerSeqRcvyIndividualRecovery is False."; reference "10.4.1.12 of IEEE Std 802.1CB-2017"; leaf difference { type int32; description "An integer specifying the maximum difference between frerCpsSeqRcvyDiscardedPackets, and the product of frerCpsSeqRcvyPassedPackets and (frerSeqRcvyLatentErrorPaths – 1) that is allowed. Any larger difference will trigger the detection of a latent error by the LatentErrorTest function."; reference "10.4.1.12.1 of IEEE Std 802.1CB-2017"; } leaf period { type uint32; units "ms"; default "2000"; description "The integer number of milliseconds that are to elapse between instances of running the LatentErrorTest function. An implementation can have a minimum value for frerSeqRcvyLatentErrorPeriod, below which it cannot be set, but this minimum shall be no larger than 1000 ms (1 s). Default value 2000 (2 s)."; reference "10.4.1.12.2 of IEEE Std 802.1CB-2017"; } leaf paths { type uint16; description "The integer number of paths over which FRER is operating for this instance of the Base recovery function and Latent error detection function."; reference "10.4.1.12.3 of IEEE Std 802.1CB-2017"; } leaf reset-period { type uint32; units "ms"; default "30000"; description "The integer number of milliseconds that are to elapse between instances of running the LatentErrorReset function. An implementation can have a minimum value for LatentErrorReset, below which it cannot be set, but this minimum shall be no larger than 1000 ms (1 s). Default value 30000 (30 s)."; reference "10.4.1.12.4 of IEEE Std 802.1CB-2017"; } } } list sequence-identification { key "port direction-out-facing"; description "There is one Sequence identification table per system, and one entry in the Sequence identification table for each port and direction for which an instance of the Sequence encode/decode function is to be created. Each entry in the Sequence identification table specifies a port and direction on which an instance of the Sequence encode/decode function is to be instantiated for a list of Streams."; reference "10.5 of IEEE Std 802.1CB-2017"; leaf-list stream { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } min-elements 1; description "A list of stream_handles, corresponding to the values of the tsnStreamIdHandle objects in the Stream identity table, for which the system is to use the same encapsulation for the Sequence encode/decode function."; reference "10.5.1.1 of IEEE Std 802.1CB-2017"; } leaf port { type if:interface-ref; description "The port on which the system is to place an instance of the Sequence encode/decode function."; reference "10.5.1.2 of IEEE Std 802.1CB-2017"; } leaf direction-out-facing { type dot1cb-sid-types:direction; description "An object indicating whether the Sequence encode/decode function is to be placed on the out-facing (True) or in-facing (False) side of the port."; reference "10.5.1.3 of IEEE Std 802.1CB-2017"; } leaf active { type boolean; description "A Boolean value specifying whether this frerSeqEncEntry is passive (False), and therefore is used only to decode (extract information from) input packets passing up the protocol stack, or active (True), and therefore is used both for recognizing input packets and for encoding output packets being passed down the protocol stack."; reference "10.5.1.4 of IEEE Std 802.1CB-2017"; } container encapsulation { description "An enumerated value indicating the type of encapsulation used for this instance of the Sequence encode/decode function. The type includes an OUI or CID."; reference "10.5.1.5 of IEEE Std 802.1CB-2017"; uses sequence-encode-decode; } leaf path-id-lan-id { type lan-path-id; description "A 4-bit integer value to be placed in the PathId field of an HSR sequence tag or the LanId field of a PRP sequence trailer added to an output packet. This managed object is used only if: a) The HSR sequence tag or the PRP sequence trailer is selected by the frerSeqEncEncapsType object; and b) frerSeqEncActive is False (passive)"; reference "10.5.1.6 of IEEE Std 802.1CB-2017"; } } list stream-split { key "port direction-out-facing"; description "There is one Stream split table per system, with one frerSplitEntry per Stream splitting function per set of stream_handle values. Each entry in the Stream split table specifies a port and direction on which an instance of the Stream splitting function is to be instantiated, and the list of stream_handles specifying its operation."; reference "10.6 of IEEE Std 802.1CB-2017"; leaf port { type if:interface-ref; description "The port on which the system is to place an instance of the Stream splitting function performing the stream_handle translations specified by frerSplitInputIdList and frerSplitOutputIdList is to be placed."; reference "10.6.1.1 of IEEE Std 802.1CB-2017"; } leaf direction-out-facing { type dot1cb-sid-types:direction; description "An object indicating whether the instance of the Stream splitting function performing the stream_handle translations specified by frerSplitInputIdList and frerSplitOutputIdList is to be placed on the out-facing (True) or in-facing (False) side of the port."; reference "10.6.1.2 of IEEE Std 802.1CB-2017"; } leaf-list input-id { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } min-elements 1; description "A list of stream_handles (tsnStreamIdHandle values) that are to be split."; reference "10.6.1.3 of IEEE Std 802.1CB-2017"; } leaf-list output-id { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } min-elements 1; description "A list of stream_handles (tsnStreamIdHandle values) into which the input packet is to be split, one copy per item in the frerSplitOutputIdList."; reference "10.6.1.4 of IEEE Std 802.1CB-2017"; } } container autoconfiguration { if-feature "auto-configuration"; description "Container for autoconfiguration managed objects."; reference "10.7 of IEEE Std 802.1CB-2017"; list sequence { key "index"; description "There is one Sequence autoconfiguration table per system. It contains any number of table entries. No two (or more) entries in the Sequence autoconfiguration table can have the same values for frerAutSeqSeqEncaps, frerAutSeqTagged, and frerAutSeqVlan on any given port. Each frerAutSeqEntry object relates to a single class of Streams, and specifies how entries are created (and destroyed) in the Stream identity table, the Sequence recovery table, and the Sequence identification table."; reference "10.7.1 of IEEE Std 802.1CB-2017"; leaf index { type uint32; description "Entry in the sequence list referencing to a single class of Streams."; } container sequence-encapsulation { description "An enumerated value, specifying which Sequence encode/decode function, and therefore, which type sequence_number encoding, is to be recognized for the purposes of Autoconfiguration."; reference "10.7.1.1.1 of IEEE Std 802.1CB-2017"; uses sequence-encode-decode; } leaf-list receive-port { type if:interface-ref; min-elements 1; description "The list of ports to which this frerAutSeqEntry applies, and on which Stream identification functions, Sequence encode/decode functions, and Individual recovery functions are to be autocreated."; reference "10.7.1.1.2 of IEEE Std 802.1CB-2017"; } leaf tagged { type enumeration { enum tagged { value 1; description "A frame must have a VLAN tag to be matched."; } enum priority { value 2; description "A frame must be untagged, or have a VLAN tag with a VLAN ID = 0 to be matched."; } enum all { value 3; description "A frame is matched whether tagged or not."; } } description "An enumerated value indicating whether packets to be matched by this frerAutSeqEntry are permitted to have a VLAN tag."; reference "10.7.1.1.3 of IEEE Std 802.1CB-2017"; } leaf-list vlan { type dot1qtypes:vlanid; description "A list of vlan_identifiers for the packet to match. A null list matches all vlan_identifiers."; reference "10.7.1.1.4 of IEEE Std 802.1CB-2017"; } leaf-list recovery-port { type if:interface-ref; min-elements 1; description "The list of ports on which Sequence recovery functions are to be autocreated by this frerAutSeqEntry."; reference "10.7.1.1.5 of IEEE Std 802.1CB-2017"; } leaf destruction-interval { type uint64; units "ms"; default "86400000"; description "An integer number of milliseconds after which an idle set of functions created by this frerAutSeqEntry can be destroyed. A value of 0 indicates that idle autoconfigured functions are not to be destroyed. Default value is 86 400 000 decimal (one day)."; reference "10.7.1.1.6 of IEEE Std 802.1CB-2017"; } leaf reset-interval { type uint64; units "ms"; description "The value used to fill frerSeqRcvyResetMSec when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.7 of IEEE Std 802.1CB-2017"; } container algorithm { description "The value used to fill frerSeqRcvyAlgorithm when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.8 of IEEE Std 802.1CB-2017"; uses sequence-recovery-algorithm; } leaf history-length { type sequence-history-length; default "2"; description "The value used to fill frerSeqRcvyHistoryLength when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.9 of IEEE Std 802.1CB-2017"; } leaf create-individual { type boolean; description "A Boolean value. If True, the receipt of a packet that triggers the autoconfiguration of a new tsnStreamIdEntry also triggers the instantiation of a frerSeqRcvyEntry for an Individual recovery function."; reference "10.7.1.1.10 of IEEE Std 802.1CB-2017"; } leaf create-recovery { type boolean; description "A Boolean value. If True, the receipt of a packet that triggers the autoconfiguration of a new tsnStreamIdEntry can also trigger the instantiation of a frerSeqRcvyEntry for a Sequence recovery function."; reference "10.7.1.1.11 of IEEE Std 802.1CB-2017"; } leaf latent-error-detection { type boolean; description "A Boolean value. If True, the autoconfiguration of a new Sequence recovery function also creates an associated Latent Error Detection function."; reference "10.7.1.1.12 of IEEE Std 802.1CB-2017"; } leaf latent-error-difference { type int32; description "The value used to fill frerSeqRcvyLatentErrorDifference when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.13 of IEEE Std 802.1CB-2017"; } leaf latent-error-period { type uint32; units "ms"; default "2000"; description "The value used to fill frerSeqRcvyLatentErrorPeriod when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.14 of IEEE Std 802.1CB-2017"; } leaf latent-error-reset-period { type uint32; units "ms"; default "30000"; description "The value used to fill frerSeqRcvyLatentResetPeriod when autoconfiguring entries in the Sequence recovery table."; reference "10.7.1.1.15 of IEEE Std 802.1CB-2017"; } } list output { key "index"; description "There is one Output autoconfiguration table per system. It contains any number of frerAutOutEntry objects, each relating to a single class of Streams specifying how active entries are created in the Sequence identification table. No two (or more) entries in the Output autoconfiguration table can include the same port in their frerAutSeqReceivePortList objects."; reference "10.7.2 of IEEE Std 802.1CB-2017"; leaf index { type uint32; description "Entry in the output list referencing to a single class of Streams."; } leaf-list port { type if:interface-ref; min-elements 1; description "The list of ports to which this frerAutOutEntry applies, and on which active Sequence encode/decode functions are to be autocreated."; reference "10.7.2.1.1 of IEEE Std 802.1CB-2017"; } container encapsulation { description "An enumerated value, specifying which Sequence encode/decode function, and therefore, which type sequence_number encoding, is to be used for autoconfigured Streams on the ports in frerAutSeqReceivePortList."; reference "10.7.2.1.2 of IEEE Std 802.1CB-2017"; uses sequence-encode-decode; } leaf lan-path-id { type lan-path-id; description "An integer specifying a path or LAN. If and only if frerAutOutEncaps specifies HSR or PRP frerAutOutLanPathId specifies the LanId or PathId value to be inserted into the HSR sequence tag or PRP sequence trailer of autoconfigured packets transmitted on the ports in frerAutSeqReceivePortList."; reference "10.7.2.1.3 of IEEE Std 802.1CB-2017"; } } } } augment "/dot1cb-sid:stream-identity" { if-feature "auto-configuration"; description "Two managed objects augment each tsnStreamIdEntry in the Stream identity table when Managed objects for autoconfiguration is implemented."; reference "10.2 of IEEE Std 802.1CB-2017"; leaf auto-configured { type boolean; config false; description "A read-only Boolean value, supplied by the system, specifying whether this entry was created explicitly (False) or via the Sequence autoconfiguration table."; reference "10.2.1 of IEEE Std 802.1CB-2017"; } leaf lan-path-id { type lan-path-id; description "An integer specifying a path or LAN. If and only if a packet matches an entry in the Sequence identification table that specifies HSR or PRP in its frerSeqEncEncapsType object, tsnStreamIdLanPathId specifies the LanId or PathId value that must be matched for this tsnStreamIdEntry to apply. A value of –1 indicates that the LanId or PathId are to be ignored."; reference "10.2.2 of IEEE Std 802.1CB-2017"; } } augment "/if:interfaces/if:interface/if:statistics" { description "The following counters are the counters for frame replication and elimination for reliability. All counters are unsigned integers. If used on links faster than 650 000 000 bits per second, they shall be 64 bits in length to ensure against excessively short wrap times. A Stream identification component shall implement the first two counters provided in the stream-identification YANG module per-port counters, input-packets and output-packets; the remainder of the counters in the frer YANG module module are optional for such a system."; reference "10.8 of IEEE Std 802.1CB-2017 10.9 of IEEE Std 802.1CB-2017"; container frer { description "This container contains the per-port as well as the per-port-per-stream counters for frame replication and elimination for reliability."; reference "10.8 of IEEE Std 802.1CB-2017 10.9 of IEEE Std 802.1CB-2017"; container per-port-counters { config false; description "Contains the per-port counters for frame replication and elimination for reliability. The following counters are instantiated for each port on which any of the Stream identification function, Sequencing function, or Sequence encode/decode function is configured. The counters are indexed by port number."; leaf rx-passed-pkts { type uint64; config false; description "The frerCpSeqRcvyPassedPackets counter is incremented once for each packet passed up the stack by the VectorRecoveryAlgorithm or MatchRecoveryAlgorithm. Its value equals the sum (modulo the size of the counters) of all of the frerCpsSeqRcvyPassedPackets counters on this same port."; reference "10.9.1 of IEEE Std 802.1CB-2017"; } leaf rx-discarded-pkts { type uint64; config false; description "The frerCpSeqRcvyDiscardPackets counter is incremented once for each packet discarded due to a duplicate sequence number or for being a rogue packet by any VectorRecoveryAlgorithm or MatchRecoveryAlgorithm on this port. Its value equals the sum (modulo the size of the counters) of all of the frerCpsSeqRcvyRoguePackets and frerCpsSeqRcvyDiscardedPackets counters on this same port."; reference "10.9.2 of IEEE Std 802.1CB-2017"; } leaf encode-errored-pkts { type uint64; config false; description "The frerCpSeqEncErroredPackets counter is incremented once each time the Sequence encode/decode function receives a packet that it is unable to decode successfully. Its value equals the sum (modulo the size of the counters) of all of the frerCpsSeqEncErroredPackets counters on this same port."; reference "10.9.2 of IEEE Std 802.1CB-2017"; } } list per-port-per-stream-counters { key "direction-out-facing handle"; config false; description "Contains the per-port-per-stream counters for frame replication and elimination for reliability. The following counters are instantiated for each port on which any of the Stream identification function, Sequencing function, or Sequence encode/decode function is configured. The counters are indexed by port number, facing (in-facing or out-facing), and stream_handle value."; reference "10.8 of IEEE Std 802.1CB-2017"; leaf direction-out-facing { type dot1cb-sid-types:direction; description "An object indicating whether the counters apply to out-facing (True) or in-facing (False)."; } leaf handle { type leafref { path '/dot1cb-sid:stream-identity/dot1cb-sid:handle'; } description "The according tsnStreamIdHandle for the counters."; } leaf generation-reset { type uint64; config false; description "The frerCpsSeqGenResets counter is incremented each time the SequenceGenerationReset function is called."; reference "10.8.2 of IEEE Std 802.1CB-2017"; } leaf rx-out-of-order-pkts { type uint64; config false; description "The frerCpsSeqRcvyOutOfOrderPackets counter is incremented once for each packet accepted out-of-order by the VectorRecoveryAlgorithm or MatchRecoveryAlgorithm. Out-of-order means that the packet’s sequence number is not one more than the previous packet received."; reference "10.8.3 of IEEE Std 802.1CB-2017"; } leaf rx-rogue-pkts { type uint64; config false; description "The frerCpsSeqRcvyRoguePackets counter is incremented once for each packet discarded by the VectorRecoveryAlgorithm because its sequence_number subparameter is more than frerSeqRcvyHistoryLength from RecovSeqNum."; reference "10.8.4 of IEEE Std 802.1CB-2017"; } leaf rx-passed-pkts { type uint64; config false; description "The frerCpsSeqRcvyPassedPackets counter is incremented once for each packet passed up the stack by the VectorRecoveryAlgorithm or MatchRecoveryAlgorithm."; reference "10.8.5 of IEEE Std 802.1CB-2017"; } leaf rx-discarded-pkts { type uint64; config false; description "The frerCpsSeqRcvyDiscardedPackets counter is incremented once for each packet discarded due to a duplicate sequence number by the VectorRecoveryAlgorithm or MatchRecoveryAlgorithm."; reference "10.8.6 of IEEE Std 802.1CB-2017"; } leaf rx-lost-pkts { type uint64; config false; description "The frerCpsSeqRcvyLostPackets counter is incremented once for each packet lost by the VectorRecoveryAlgorithm. A packet is counted as lost if its sequence number is not received on any ingress port. NOTE—If per-source sequence numbering is used, frerCpsSeqRcvyLostPackets can count, as lost, packets that were sent to another destination, but not lost."; reference "10.8.7 of IEEE Std 802.1CB-2017"; } leaf rx-tagless-pkts { type uint64; config false; description "The frerCpsSeqRcvyTaglessPackets counter is incremented once for each packet received by the VectorRecoveryAlgorithm that has no sequence_number subparameter."; reference "10.8.8 of IEEE Std 802.1CB-2017"; } leaf rx-resets { type uint64; config false; description "The frerCpsSeqRcvyResets counter is incremented once each time the SequenceRecoveryReset function is called."; reference "10.8.9 of IEEE Std 802.1CB-2017"; } leaf rx-latent-error-resets { type uint64; config false; description "The frerCpsSeqRcvyLatentErrorResets counter is incremented once each time the LatentErrorReset function is called."; reference "10.8.10 of IEEE Std 802.1CB-2017"; } leaf encode-errored-pkts { type uint64; config false; description "The frerCpsSeqEncErroredPackets counter is incremented once each time the Sequence encode/decode function receives a packet that it is unable to decode successfully."; reference "10.8.11 of IEEE Std 802.1CB-2017"; } } } } }