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";

    }


    augment /dot1cb-si:stream-identity-list {
      if-feature dot1cb-frer-types:auto-configuration;
      description
        "Two managed objects augment each tsnStreamIdEntry (9.1.1) in the
       Stream identity table (9.1) when Managed objects for 
       autoconfiguration (7.11, 10.7) is implemented.";
      reference
        "Clause 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 (10.7.1, True).";
        reference
          "Clause 10.2.1 of IEEE Std 802.1CB-2017";

      }

      leaf lan-path-id {
        type dot1cb-frer-types: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 (10.5) 
         that specifies HSR or PRP in its frerSeqEncEncapsType 
         (10.5.1.5) 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
          "Clause 10.2.2 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.";
        }

        uses dot1cb-frer-types:sequence-generation-entry;
      }  // 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.";
        }

        uses dot1cb-frer-types:sequence-recovery-entry;
      }  // 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";

        uses dot1cb-frer-types:sequence-identification-entry;
      }  // 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";

        uses dot1cb-frer-types:stream-split-entry;
      }  // 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.";
          }

          uses dot1cb-frer-types:autoconfiguration-sequence-entry;
        }  // 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.";
          }

          uses dot1cb-frer-types:autoconfiguration-output-entry;
        }  // list output-list
      }  // container autoconfiguration
    }  // container frame-replication-and-elimination

    augment /if:interfaces/if:interface/if:statistics {
      description
        "The following counters are instantiated for each port on which
       any of the Stream identification function (6.2), Sequencing 
       function (7.4), or Sequence encode/decode function (7.6) is 
       configured. The counters are indexed by port number, facing 
       (in-facing or out-facing), and stream_handle value
       (tsnStreamIdHandle, 9.1.1.1). 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 (5.3) shall implement the first
        two counters tsnCpsSidInputPackets (9.2.1) and 
        tsnCpsSidOutputPackets (9.2.2); the remainder of the counters
        in 10.8 are optional for such a system.";
      reference
        "Clause 10.8  of IEEE Std 802.1CB-2017";

      list frame-replication-and-elimination-counters {
        key "direction handle";
        config false;
        description
          "Counters for frame replication and elimination for
         reliability.";
        leaf direction {
          type 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-si:stream-identity-list/dot1cb-si:handle";
          }
          description
            "The according tsnStreamIdHandle for the counters.";
        }

        container per-port-per-stream {
          description
            "Contains the per-port-per-stream counters for frame
           replication and elimination";
          uses dot1cb-frer-types:per-port-per-stream-counters;
        }  // container per-port-per-stream

        container per-port {
          description
            "Contains the per-port counters for frame replication and
           elimination";
          uses dot1cb-frer-types:per-port-counters;
        }  // container per-port
      }  // list frame-replication-and-elimination-counters
    }
  }  // module ieee802-dot1cb-frer