netconfcentral logo

ieee802-dot1cb-frer@2020-04-29



  module ieee802-dot1cb-frer {

    yang-version 1.1;

    namespace
      "urn:ieee:std:802.1Q:yang:ieee802-dot1cb-frer";

    prefix dot1cb-frer;

    import ieee802-dot1cb-frer-types {
      prefix dot1cb-frer-types;
    }
    import ieee802-dot1cb-stream-identification {
      prefix dot1cb-si;
    }
    import ieee802-dot1cb-stream-identification-types {
      prefix sid-types;
    }
    import ietf-interfaces {
      prefix if;
    }

    organization
      "Institute of Electrical and Electronics Engineers";

    contact
      "WG-URL: http://grouper.ieee.org/groups/802/1/
     WG-EMail: stds-802-1@ieee.org

     Contact: IEEE 802.1 Working Group Chair
     Postal: C/O IEEE 802.1 Working Group
            IEEE Standards Association
            445 Hoes Lane
            P.O. Box 1331
            Piscataway
            NJ 08855-1331
            USA

     E-mail: STDS-802-1-L@LISTSERV.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.";

    revision "2020-04-29" {
      description
        "D0.3 revision. Note that this module might change in
       backward incompatible ways until approved as a standard.";
      reference
        "Clause 10 of IEEE Std 802.1CB-2017";

    }

    revision "2019-09-01" {
      description
        "Initial revision. Note that this module might change in
       backward incompatible ways until approved as a standard.";
      reference
        "Clause 10 of IEEE Std 802.1CB-2017";

    }


    container frame-replication-and-elimination {
      description
        "The managed objects that control Stream identification are
       described in Clause 9. The managed objects that control FRER are 
       described in this Clause 10 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 (10.2) to the Stream identity table (9.1)
               required for Autoconfiguration (7.11, 10.7).
            2) The Sequence generation table (10.3) that configures
               instances of the Sequence generation function (7.4.1);
            3) The Sequence recovery table (10.4) that configures
               instances of the Individual recovery function (7.5), the
               Sequence recovery function (7.4.2), and the Latent error
               detection function (7.4.4);
            4) The Sequence identification table (10.5) that configures
               instances of the Sequence encode/decode function (7.6);
               and
            5) The Stream split table (10.6) that configures instances
               of the Stream splitting function (7.7).
       c) The managed objects that support the automatic configuration,
          upon receipt of a packet, of entries in the first four of the 
          preceding tables (10.2 through 10.5), are described in the 
          subclause on Autoconfiguration (10.7).
       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 (7.6) or more than one Sequence generation function 
       (7.4.1) for the same stream_handle subparameter. [The same value
       of stream_handle can be in the frerSeqGenStreamList (10.3.1.1) of
       more than one frerSeqGenEntry (10.3.1) or in the 
       frerSeqRcvyStreamList (10.4.1.1) of more than one 
       frerSeqRcvyEntry (10.4.1).] 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-list {
        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 (7.4.1).";
        reference
          "Clause 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-list {
          type leafref {
            path "/dot1cb-sid:stream-identity-list/dot1cb-sid:handle";
          }
          min-elements 1;
          description
            "A list of stream_handle values, corresponding to the values of
the tsnStreamIdHandle objects (9.1.1.1) in the Stream identity
table (9.1), on which this instance of the Sequence generation
function (7.4.1) 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
            "Clause 10.3.1.1 of IEEE Std 802.1CB-2017";

        }

        leaf direction {
          type sid-types:direction;
          mandatory true;
          description
            "An object indicating whether the Sequence generation function
(7.4.1) is to be placed on the out-facing (True) or
in-facing (False) side of the port (Figure 6-6).";
          reference
            "Clause 10.3.1.2 of IEEE Std 802.1CB-2017";

        }

        leaf reset {
          type boolean;
          description
            "A Boolean object indicating that the Sequence generation
function (7.4.1) is to be reset by calling its corresponding
SequenceGenerationReset function (7.4.1.3). 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
            "Clause 10.3.1.3 of IEEE Std 802.1CB-2017";

        }
      }  // list sequence-generation-list

      list sequence-recovery-list {
        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 (7.4.2) or Individual recovery function (7.5) that can
         also be present. The entry describes a set of managed objects 
         for the single instance of a Base recovery function (7.4.3) 
         and Latent error detection function (7.4.4) included in the 
         Sequence recovery function or Individual recovery function.";
        reference
          "Clause 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-list {
          type leafref {
            path "/dot1cb-sid:stream-identity-list/dot1cb-sid:handle";
          }
          min-elements 1;
          description
            "A list of the stream_handle values, corresponding to the
values of the tsnStreamIdHandle objects (9.1.1.1) in the
Stream identity table (9.1), to which the system is to apply
the instance of the Sequence recovery function (7.4.2) or
Individual recovery function (7.5).";
          reference
            "Clause 10.4.1.1 of IEEE Std 802.1CB-2017";

        }

        leaf-list port-list {
          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 (7.4.2), or from
which received packets are to be fed to a single instance of
the Individual recovery function (7.5).";
          reference
            "Clause 10.4.1.2 of IEEE Std 802.1CB-2017";

        }

        leaf direction {
          type sid-types:direction;
          mandatory true;
          description
            "An object indicating whether the Sequence recovery function
(7.4.2) or Individual recovery function (7.5) is to be placed
on the out-facing (True) or in-facing (False) side of the port
(Figure 6-6).";
          reference
            "Clause 10.4.1.3 of IEEE Std 802.1CB-2017";

        }

        leaf reset {
          type boolean;
          mandatory true;
          description
            "A Boolean object indicating that the Sequence recovery
function (7.4.2) or Individual recovery function (7.5) is to
be reset by calling its corresponding SequenceGenerationReset
function (7.4.1.3). 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
            "Clause 10.4.1.4 of IEEE Std 802.1CB-2017";

        }

        leaf algorithm {
          type sequence-recovery-algorithm;
          default "vector";
          description
            "This object is an enumerated value specifying which sequence
recovery algorithm is to be used for this instance of the
Sequence recovery function (7.4.2). 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
            "Clause 10.4.1.5 of IEEE Std 802.1CB-2017";

        }

        leaf history-length {
          when "../algorithm != 'match'";
          type sequence-history-length;
          default "2";
          description
            "An integer specifying how many bits of the SequenceHistory
variable (7.4.3.2.2) are to be used. The minimum and the
default value is 2, maximum is the maximum allowed by the
implementation. [Not used if
frerSeqRcvyAlgorithm (10.4.1.5) = Match_Alg (00-80-C2, 1).]";
          reference
            "Clause 10.4.1.6 of IEEE Std 802.1CB-2017";

        }

        leaf reset-timeout {
          type uint32;
          mandatory true;
          description
            "An unsigned integer specifying the timeout period in
milliseconds for the RECOVERY_TIMEOUT event (item c in 7.4.3.1).";
          reference
            "Clause 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
(item b in 6.1), i.e., frerSeqRcvyInvalidSequenceValue is
larger than or equal to RecovSeqSpace (7.4.3.2.1).";
          reference
            "Clause 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. See item i in 7.1.1.";
          reference
            "Clause 10.4.1.9 of IEEE Std 802.1CB-2017";

        }

        leaf individual-recovery {
          type boolean;
          mandatory true;
          description
            "A Boolean value specifying whether this entry describes a
Sequence recovery function (7.4.2) or Individual recovery
function (7.5).
a) True:  The entry describes an Individual recovery function
   (7.5). Packets discarded by the SequenceGenerationAlgorithm
   (7.4.1.4) will cause the variable RemainingTicks (7.4.3.2.4)
   to be reset. There is no Latent error detection function
   (7.4.4) associated with this entry, so
   frerSeqRcvyLatentErrorDetection (10.4.1.11) cannot also
   be True.
b) False: The entry describes a Sequence recovery function
   (7.4.2). Packets discarded by the
   SequenceGenerationAlgorithm (7.4.1.4) will not cause the
   variable RemainingTicks (7.4.3.2.4) to be reset.";
          reference
            "Clause 10.4.1.10 of IEEE Std 802.1CB-2017";

        }

        leaf latent-error-detection {
          when
            "../individual-recovery = 'false'";
          type boolean;
          mandatory true;
          description
            "A Boolean value indicating whether an instance of the Latent
error detection function (7.4.4) is to be instantiated along
with the Base recovery function (7.4.3) in this Sequence
recovery function (7.4.2) or Individual recovery function
(7.5). frerSeqRcvyLatentErrorDetection cannot be set True if
frerSeqRcvyIndividualRecovery (10.4.1.10) is also True; an
Individual recovery function does not include a Latent error
detection function.";
          reference
            "Clause 10.4.1.11 of IEEE Std 802.1CB-2017";

        }

        container latent-error-detection-parameters {
          when
            "../latent-error-detection = 'false'";
          description
            "The objects in the following subclauses are present if and
only if frerSeqRcvyIndividualRecovery
(10.4.1.10) is False.";
          reference
            "Clause 10.4.1.12 of IEEE Std 802.1CB-2017";

          leaf difference {
            type int32;
            mandatory true;
            description
              "An integer specifying the maximum difference between
frerCpsSeqRcvyDiscardedPackets (10.8.6), and the product of
frerCpsSeqRcvyPassedPackets (10.8.5) and
(frerSeqRcvyLatentErrorPaths – 1) (10.4.1.12.3) that is
allowed. Any larger difference will trigger the detection of
a latent error by the LatentErrorTest function (7.4.4.4).";
            reference
              "Clause 10.4.1.12.1 of IEEE Std 802.1CB-2017";

          }

          leaf period {
            type uint32;
            default "2000";
            description
              "The integer number of milliseconds that are to elapse between
instances of running the LatentErrorTest function (7.4.4.4).
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
              "Clause 10.4.1.12.2 of IEEE Std 802.1CB-2017";

          }

          leaf paths {
            type uint16;
            mandatory true;
            description
              "The integer number of paths over which FRER is operating for
this instance of the Base recovery function (7.4.3) and
Latent error detection function (7.4.4).";
            reference
              "Clause 10.4.1.12.3 of IEEE Std 802.1CB-2017";

          }

          leaf reset-period {
            type uint32;
            default "30000";
            description
              "The integer number of milliseconds that are to elapse between
instances of running the LatentErrorReset function (7.4.4.3).
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
              "Clause 10.4.1.12.4 of IEEE Std 802.1CB-2017";

          }
        }  // container latent-error-detection-parameters
      }  // list sequence-recovery-list

      list sequence-identification-list {
        key "port direction";
        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 (7.6) is to be created.";
        reference
          "Clause 10.5 of IEEE Std 802.1CB-2017";

        leaf-list stream-list {
          type leafref {
            path "/dot1cb-sid:stream-identity-list/dot1cb-sid:handle";
          }
          min-elements 1;
          description
            "A list of stream_handles, corresponding to the values of the
tsnStreamIdHandle objects (9.1.1.1) in the Stream identity
table (9.1), for which the system is to use the same
encapsulation (10.5.1.5) for the Sequence encode/decode
function.";
          reference
            "Clause 10.5.1.1 of IEEE Std 802.1CB-2017";

        }

        leaf port {
          type if:interface-ref;
          mandatory true;
          description
            "The port on which the system is to place an instance of the
Sequence encode/decode function (7.6).";
          reference
            "Clause 10.5.1.2 of IEEE Std 802.1CB-2017";

        }

        leaf direction {
          type sid-types:direction;
          mandatory true;
          description
            "An object indicating whether the Sequence encode/decode
function (7.6) is to be placed on the out-facing (True) or
in-facing (False) side of the port (Figure 6-6).";
          reference
            "Clause 10.5.1.3 of IEEE Std 802.1CB-2017";

        }

        leaf active {
          type boolean;
          mandatory true;
          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
            "Clause 10.5.1.4 of IEEE Std 802.1CB-2017";

        }

        leaf encapsulation {
          type sequence-encode-decode-types;
          description
            "An enumerated value indicating the type of encapsulation used
for this instance of the Sequence encode/decode function (7.6).
The type includes an OUI or CID. The values defined by this
standard are shown in Table 10-2.";
          reference
            "Clause 10.5.1.5 of IEEE Std 802.1CB-2017";

        }

        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 (7.9) or the LanId field of a PRP sequence
trailer (7.10) 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 (10.5.1.5); and
b)  frerSeqEncActive (10.5.1.4) is False (passive)";
          reference
            "Clause 10.5.1.6 of IEEE Std 802.1CB-2017";

        }
      }  // list sequence-identification-list

      list stream-split-list {
        key "port direction";
        description
          "There is one Stream split table per system, with one
         frerSplitEntry (10.6.1) per Stream splitting function (7.7) 
         per set of stream_handle values.";
        reference
          "Clause 10.6 of IEEE Std 802.1CB-2017";

        leaf port {
          type if:interface-ref;
          mandatory true;
          description
            "The port on which the system is to place an instance of the
Stream splitting function (7.7) performing the stream_handle
translations specified by frerSplitInputIdList and
frerSplitOutputIdList (10.6.1.3, 10.6.1.4) is to be placed.";
          reference
            "Clause 10.6.1.1 of IEEE Std 802.1CB-2017";

        }

        leaf direction {
          type sid-types:direction;
          mandatory true;
          description
            "An object indicating whether the instance of the Stream
splitting function (7.7) performing the stream_handle
translations specified by frerSplitInputIdList and
frerSplitOutputIdList (10.6.1.3, 10.6.1.4) is to be placed on
the out-facing (True) or in-facing (False) side of the port
(Figure 6-6).";
          reference
            "Clause 10.6.1.2 of IEEE Std 802.1CB-2017";

        }

        leaf-list input-id-list {
          type leafref {
            path "/dot1cb-sid:stream-identity-list/dot1cb-sid:handle";
          }
          min-elements 1;
          description
            "A list of stream_handles (tsnStreamIdHandle values, 9.1.1.1)
that are to be split.";
          reference
            "Clause 10.6.1.3 of IEEE Std 802.1CB-2017";

        }

        leaf-list output-id-list {
          type leafref {
            path "/dot1cb-sid:stream-identity-list/dot1cb-sid:handle";
          }
          min-elements 1;
          description
            "A list of stream_handles (tsnStreamIdHandle values, 9.1.1.1)
into which the input packet is to be split, one copy per item
in the frerSplitOutputIdList.";
          reference
            "Clause 10.6.1.4 of IEEE Std 802.1CB-2017";

        }
      }  // list stream-split-list

      container autoconfiguration {
        if-feature dot1cb-frer-types:auto-configuration;
        description
          "Container for autoconfiguration managed objects.";
        reference
          "Clause 10.7 of IEEE Std 802.1CB-2017";

        list sequence-list {
          key "index";
          description
            "There is one Sequence autoconfiguration table per system. It
           contains any number of table entries (10.7.1.1). No two 
           (or more) entries in the Sequence autoconfiguration table can
           have the same values for frerAutSeqSeqEncaps (10.7.1.1.1),
           frerAutSeqTagged (10.7.1.1.3), and frerAutSeqVlan 
           (10.7.1.1.4) on any given port (10.7.1.1.2).";
          reference
            "Clause 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.";
          }

          leaf sequence-encapsulation {
            type sequence-encode-decode-types;
            description
              "An enumerated value from Table 10-2, specifying which Sequence
encode/decode function, and therefore, which
type sequence_number encoding, is to be recognized for the
purposes of Autoconfiguration.";
            reference
              "Clause 10.7.1.1.1 of IEEE Std 802.1CB-2017";

          }

          leaf-list receive-port-list {
            type if:interface-ref;
            min-elements 1;
            description
              "The list of ports to which this frerAutSeqEntry applies, and
on which Stream identification functions (6.2), Sequence
encode/decode functions (7.6), and Individual recovery
functions (7.5) are to be autocreated.";
            reference
              "Clause 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.";
              }
            }
            mandatory true;
            description
              "An enumerated value indicating whether packets to be matched
by this frerAutSeqEntry are permitted to have a VLAN tag.";
            reference
              "Clause 10.7.1.1.3 of IEEE Std 802.1CB-2017";

          }

          leaf-list vlan-list {
            type dot1qtypes:vlanid;
            description
              "A list of vlan_identifiers for the packet to match. A null list
matches all vlan_identifiers.";
            reference
              "Clause 10.7.1.1.4 of IEEE Std 802.1CB-2017";

          }

          leaf-list recovery-port-list {
            type if:interface-ref;
            min-elements 1;
            description
              "The list of ports on which Sequence recovery functions (7.4.2)
are to be autocreated by this frerAutSeqEntry.";
            reference
              "Clause 10.7.1.1.5 of IEEE Std 802.1CB-2017";

          }

          leaf destruction-interval {
            type uint64;
            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
              "Clause 10.7.1.1.6 of IEEE Std 802.1CB-2017";

          }

          leaf reset-interval {
            type uint64;
            mandatory true;
            description
              "The value used to fill frerSeqRcvyResetMSec (10.4.1.7) when
autoconfiguring entries in the Sequence recovery table.";
            reference
              "Clause 10.7.1.1.7 of IEEE Std 802.1CB-2017";

          }

          leaf algorithm {
            type sequence-recovery-algorithm;
            default "vector";
            description
              "The value used to fill frerSeqRcvyAlgorithm (10.4.1.5) when
autoconfiguring entries in the Sequence recovery table.";
            reference
              "Clause 10.7.1.1.8 of IEEE Std 802.1CB-2017";

          }

          leaf history-length {
            when "../algorithm != 'match'";
            type sequence-history-length;
            default "2";
            description
              "The value used to fill frerSeqRcvyHistoryLength (10.4.1.6) when
autoconfiguring entries in the Sequence recovery table.";
            reference
              "Clause 10.7.1.1.9 of IEEE Std 802.1CB-2017";

          }

          leaf create-individual {
            type boolean;
            mandatory true;
            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
              "Clause 10.7.1.1.10 of IEEE Std 802.1CB-2017";

          }

          leaf create-recovery {
            type boolean;
            mandatory true;
            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
              "Clause 10.7.1.1.11 of IEEE Std 802.1CB-2017";

          }

          leaf latent-error-detection {
            type boolean;
            mandatory true;
            description
              "A Boolean value. If True, the autoconfiguration of a new
Sequence recovery function also creates an associated Latent
Error Detection function.";
            reference
              "Clause 10.7.1.1.12 of IEEE Std 802.1CB-2017";

          }

          leaf latent-error-difference {
            type int32;
            mandatory true;
            description
              "The value used to fill frerSeqRcvyLatentErrorDifference
(10.4.1.12.1) when autoconfiguring entries in the Sequence
recovery table.";
            reference
              "Clause 10.7.1.1.13 of IEEE Std 802.1CB-2017";

          }

          leaf latent-error-period {
            type uint32;
            default "2000";
            description
              "The value used to fill frerSeqRcvyLatentErrorPeriod
(10.4.1.12.2) when autoconfiguring entries in the Sequence
recovery table.";
            reference
              "Clause 10.7.1.1.14 of IEEE Std 802.1CB-2017";

          }

          leaf latent-error-reset-period {
            type uint32;
            default "30000";
            description
              "The value used to fill frerSeqRcvyLatentResetPeriod
(10.4.1.12.4) when autoconfiguring entries in the Sequence
recovery table.";
            reference
              "Clause 10.7.1.1.15 of IEEE Std 802.1CB-2017";

          }
        }  // list sequence-list

        list output-list {
          key "index";
          description
            "There is one Output autoconfiguration table per system. It
           contains any number of frerAutOutEntry objects (10.7.2.1), 
           each relating to a single class of Streams specifying how 
           active entries are created in the Sequence identification 
           table (10.5).";
          reference
            "Clause 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-list {
            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 (7.6) are to be
autocreated.";
            reference
              "Clause 10.7.2.1.1 of IEEE Std 802.1CB-2017";

          }

          leaf encapsulation {
            type sequence-encode-decode-types;
            mandatory true;
            description
              "An enumerated value from Table 10-2, 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
(10.7.1.1.2).";
            reference
              "Clause 10.7.2.1.2 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
frerAutOutEncaps (10.7.2.1.2) 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 (10.7.1.1.2).";
            reference
              "Clause 10.7.2.1.3 of IEEE Std 802.1CB-2017";

          }
        }  // list output-list
      }  // container autoconfiguration
    }  // container frame-replication-and-elimination
  }  // module ieee802-dot1cb-frer