An augmented YANG Ethernet TSN network data model to interface Ethernet TSN network design tools (e.g. simulator, formal analysis) and hardware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1238 lines
38 KiB

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 draft itself for full legal notices.";
revision 2021-05-06 {
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-2017as 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 objects
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";
}
}
}
}
}