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.
1237 lines
38 KiB
1237 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"; |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|