netconfcentral logo

ieee802-dot1cb-stream-identification-types@2020-08-05



  module ieee802-dot1cb-stream-identification-types {

    yang-version 1.1;

    namespace
      "urn:ieee:std:802.1Q:yang:ieee802-dot1cb-stream-identification-types";

    prefix
      dot1cb-stream-identification-types;

    import ieee802-types {
      prefix ieee;
    }
    import ieee802-dot1q-types {
      prefix dot1qtypes;
    }
    import ietf-inet-types {
      prefix inet;
    }
    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 stream identification from
IEEE Std 802.1CB-2017.
This YANG data model conforms to the Network Management Datastore
Architecture defined in RFC 8342.";

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

    }

    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 9 of IEEE Std 802.1CB-2017";

    }


    typedef vlan-tag-identification-type {
      type enumeration {
        enum "tagged" {
          value 1;
          description
            "A frame must have a VLAN tag to be recognized as belonging
to the Stream.";
        }
        enum "priority" {
          value 2;
          description
            "A frame must be untagged, or have a VLAN tag with a
VLAN ID = 0 to be recognized as belonging to the Stream.";
        }
        enum "all" {
          value 3;
          description
            "A frame is recognized as belonging to the Stream whether
tagged or not.";
        }
      }
      description
        "Enumeration describing how a Stream can be identified using the
VLAN tag.";
    }

    typedef vlan-identifier-type {
      type uint16 {
        range "0 .. 4095";
      }
      description
        "Specifies the vlan_identifier. A value of 0 indicates that the
vlan_identifier parameter is ignored.";
    }

    typedef direction {
      type boolean;
      description
        "A boolean object indicating whether the direction is
out-facing (True) or in-facing (False).";
      reference
        "Clause 10.4.1.3 of IEEE Std 802.1CB-2017";

    }

    identity strid-idty {
      base 
      description
        "Root identitiy for all stream identification types";
    }

    identity null-stream-identification {
      base strid-idty;
      description
        "Null Stream Identification";
    }

    identity smac-vlan-stream-identification {
      base strid-idty;
      description
        "Source MAC and VLAN Stream Identification";
    }

    identity dmac-vlan-stream-identification {
      base strid-idty;
      description
        "Active Destination MAC and VLAN
Stream Identification";
    }

    identity ip-stream-identification {
      base strid-idty;
      description "IP Stream Identification";
    }

    grouping tsn-stream-id-entry-group {
      description
        "A set of managed objects, all applying to the Stream specified
by tsnStreamIdHandle (9.1.1.1), and all using the same Stream
identification types and parameters (9.1.1.6, 9.1.1.7).
See 10.2 for additional managed objects that are present in
the tsnStreamIdEntry only if Autoconfiguration (7.11) is used.";
      reference
        "Clause 9.1.1 of IEEE Std 802.1CB-2017";

      leaf handle {
        type uint32;
        mandatory true;
        description
          "The objects in a given entry of the Stream identity table are
used to control packets whose stream_handle subparameter is
equal to the entry’s tsnStreamIdHandle object. The specific
values used in the tsnStreamIdHandle object are not
necessarily used in the system; they are used only to relate
the various management objects in Clause 9 and Clause 10.";
        reference
          "Clause 9.1.1.1 of IEEE Std 802.1CB-2017";

      }

      container in-facing {
        description
          "Container for in-facing Stream identification functions.";
        leaf-list input-port-list {
          type if:interface-ref;
          description
            "The list of ports on which an in-facing Stream
identification function (6.2) using this identification
method (9.1.1.6, 9.1.1.7) is to be placed for this Stream
(9.1.1.1) in the input (coming from the system forwarding
function) direction. Any number of tsnStreamIdEntry objects
can list the same port for the same tsnStreamIdHandle in
its tsnStreamIdInFacInputPortList.";
          reference
            "Clause 9.1.1.4 of IEEE Std 802.1CB-2017";

        }

        leaf-list output-port-list {
          type if:interface-ref;
          description
            "The list of ports on which an in-facing Stream
identification function (6.2) using this identification
method (9.1.1.6, 9.1.1.7) is to be placed for this Stream
(9.1.1.1) in the output (towards the system forwarding
function) direction. At most one tsnStreamIdEntry can list
a given port for a given tsnStreamIdHandle in its
tsnStreamIdInFacOutputPortList.";
          reference
            "Clause 9.1.1.2 of IEEE Std 802.1CB-2017";

        }
      }  // container in-facing

      container out-facing {
        description
          "Container for out-facing Stream identification functions.";
        leaf-list input-port-list {
          type if:interface-ref;
          description
            "The list of ports on which an out-facing Stream
identification function (6.2) using this identification
method (9.1.1.6, 9.1.1.7) is to be placed for this Stream
(9.1.1.1) in the input (coming from the physical interface)
direction. Any number of tsnStreamIdEntry objects can list
the same port for the same tsnStreamIdHandle in its
tsnStreamIdOutFacInputPortList.";
          reference
            "Clause 9.1.1.5 of IEEE Std 802.1CB-2017";

        }

        leaf-list output-port-list {
          type if:interface-ref;
          description
            "The list of ports on which an out-facing Stream
identification function (6.2) using this identification
method (9.1.1.6, 9.1.1.7) is to be placed for this Stream
(9.1.1.1) in the output (towards the physical interface)
direction. At most one tsnStreamIdEntry can list a given
port for a given tsnStreamIdHandle in its
tsnStreamIdOutFacOutputPortList.";
          reference
            "Clause 9.1.1.3 of IEEE Std 802.1CB-2017";

        }
      }  // container out-facing

      leaf identification-type {
        type identityref {
          base strid-idty;
        }
        mandatory true;
        description
          "An enumerated value indicating the method used to identify
packets belonging to the Stream. The enumeration includes an
Organizationally Unique Identifier (OUI) or Company ID (CID)
to identify the organization defining the enumerated type.";
        reference
          "Clause 9.1.1.6 of IEEE Std 802.1CB-2017";

      }

      choice parameters {
        mandatory true;
        description
          "The number of controlling parameters for a Stream
identification method, their types and values, are specific
to the tsnStreamIdIdentificationType (9.1.1.6) and are
referenced in Table 9-1.";
        reference
          "Clause 9.1.1.7 of IEEE Std 802.1CB-2017";

        container null-stream-identification {
          description
            "When instantiating an instance of the Null Stream
identification function (6.4) for a particular input
Stream, the managed objects in the following subclauses
serve as the tsnStreamIdParameters managed object
(9.1.1.7).";
          reference
            "Clause 9.1.2 of IEEE Std 802.1CB-2017";

          uses null-stream-identification-group;
        }  // container null-stream-identification
        container smac-vlan-stream-identification {
          description
            "When instantiating an instance of the Source MAC and VLAN
Stream identification function (6.5) for a particular input
Stream, the managed objects in the following subclauses
serve as the tsnStreamIdParameters managed object
(9.1.1.7).";
          reference
            "Clause 9.1.3 of IEEE Std 802.1CB-2017";

          uses smac-vlan-stream-identification-group;
        }  // container smac-vlan-stream-identification
        container dmac-vlan-stream-identification {
          description
            "When instantiating an instance of the Active Destination
MAC and VLAN Stream identification function (6.6) for a
particular output Stream, the managed objects in the
following subclauses, along with those listed in 9.1.2,
serve as the tsnStreamIdParameters managed object
(9.1.1.7).";
          reference
            "Clause 9.1.4 of IEEE Std 802.1CB-2017";

          uses dmac-vlan-stream-identification-group;
        }  // container dmac-vlan-stream-identification
        container ip-stream-identification {
          description
            "When instantiating an instance of the IP Stream
identification function (6.7), the parameters in the
following subclauses replace the tsnStreamIdParameters
managed object (9.1.1.7).";
          reference
            "Clause 9.1.5 of IEEE Std 802.1CB-2017";

          uses ip-stream-identification-group;
        }  // container ip-stream-identification
      }  // choice parameters
    }  // grouping tsn-stream-id-entry-group

    grouping per-port-per-stream-stream-identification-counters-group {
      description
        "The following counters are instantiated for each port on which
the Stream identification function (6.2) 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.";
      reference
        "Clause 9.2 of IEEE Std 802.1CB-2017";

      leaf input-packets {
        type uint64;
        config false;
        mandatory true;
        description
          "The tsnCpsSidInputPackets counter is incremented once for
each packet identified by the Stream identification function
(6.2).";
        reference
          "Clause 9.2.1 of IEEE Std 802.1CB-2017";

      }

      leaf output-packets {
        type uint64;
        config false;
        mandatory true;
        description
          "The tsnCpsSidOutputPackets counter is incremented once for
each packet passed down the stack by the Stream
identification function (6.2).";
        reference
          "Clause 9.2.2 of IEEE Std 802.1CB-2017";

      }
    }  // grouping per-port-per-stream-stream-identification-counters-group

    grouping per-port-stream-identification-counters-group {
      description
        "The per-port, per-Stream packet counters that are kept by
Stream identification functions for inspection by network
management entities are described in 9.2, and the per-port
(totaled over all Streams) counters in 9.3";
      reference
        "Clause 9 of IEEE Std 802.1CB-2017";

      leaf input-packets {
        type uint64;
        config false;
        description
          "The tsnCpSidInputPackets counter is incremented once for each
packet identified by any Stream identification function (6.2)
on this port. Its value equals the sum (modulo the size of
the counters) of all of the tsnCpsSidInputPackets (9.2.1)
counters on this same port.";
        reference
          "Clause 9.3.1 of IEEE Std 802.1CB-2017";

      }

      leaf output-packets {
        type uint64;
        config false;
        description
          "The tsnCpSidOutputPackets counter is incremented once for
each packet passed down the stack by any Stream
identification function (6.2) on this port. Its value equals
the sum (modulo the size of the counters) of all of the
tsnCpsSidOutputPackets (9.2.2) counters on this same port.";
        reference
          "Clause 9.3.2 of IEEE Std 802.1CB-2017";

      }
    }  // grouping per-port-stream-identification-counters-group

    grouping null-stream-identification-group {
      description
        "When instantiating an instance of the Null Stream
identification function (6.4) for a particular input Stream,
the managed objects in the following subclauses serve as the
tsnStreamIdParameters managed object (9.1.1.7).";
      reference
        "Clause 9.1.2 of IEEE Std 802.1CB-2017";

      leaf destination-mac {
        type ieee:mac-address;
        mandatory true;
        description
          "Specifies the destination_address that identifies a packet in
an EISS indication primitive, to the Null Stream
identification function";
        reference
          "Clause 9.1.2.1 of IEEE Std 802.1CB-2017";

      }

      leaf tagged {
        type vlan-tag-identification-type;
        mandatory true;
        description
          "An enumerated value indicating whether a packet in an EISS
indication primitive to the Null Stream identification
function is permitted to have a VLAN tag.";
        reference
          "Clause 9.1.2.2 of IEEE Std 802.1CB-2017";

      }

      leaf vlan {
        type vlan-identifier-type;
        mandatory true;
        description
          "Specifies the vlan_identifier parameter that identifies a
packet in an EISS indication primitive to the Null Stream
identification function. A value of 0 indicates that the
vlan_identifier parameter is ignored on EISS indication
primitives.";
        reference
          "Clause 9.1.2.3 of IEEE Std 802.1CB-2017";

      }
    }  // grouping null-stream-identification-group

    grouping smac-vlan-stream-identification-group {
      description
        "When instantiating an instance of the Source MAC and VLAN
Stream identification function (6.5) for a particular input
Stream, the managed objects in the following subclauses serve
as the tsnStreamIdParameters managed object (9.1.1.7).";
      reference
        "Clause 9.1.3 of IEEE Std 802.1CB-2017";

      leaf source-mac {
        type ieee:mac-address;
        mandatory true;
        description
          "Specifies the source_address that identifies a packet in an
EISS indication primitive, to the Source MAC and VLAN Stream
identification function.";
        reference
          "Clause 9.1.3.1 of IEEE Std 802.1CB-2017";

      }

      leaf tagged {
        type vlan-tag-identification-type;
        mandatory true;
        description
          "An enumerated value indicating whether a packet in an EISS
indication primitive to the Source MAC and VLAN Stream
identification function is permitted to have a VLAN tag.";
        reference
          "Clause 9.1.3.2 of IEEE Std 802.1CB-2017";

      }

      leaf vlan {
        type vlan-identifier-type;
        mandatory true;
        description
          "Specifies the vlan_identifier parameter that identifies a
packet in an EISS indication primitive to the Source MAC and
VLAN Stream identification function. A value of 0 indicates
that the vlan_identifier parameter is ignored on EISS
indication primitives.";
        reference
          "Clause 9.1.3.3 of IEEE Std 802.1CB-2017";

      }
    }  // grouping smac-vlan-stream-identification-group

    grouping dmac-vlan-stream-identification-group {
      description
        "When instantiating an instance of the Active Destination MAC
and VLAN Stream identification function (6.6) for a particular
output Stream, the managed objects in the following subclauses,
along with those listed in 9.1.2, serve as the
tsnStreamIdParameters managed object (9.1.1.7).";
      reference
        "Clause 9.1.4 of IEEE Std 802.1CB-2017";

      container down {
        description
          "Container for all parameters which are sent to lower layers.";
        leaf destination-mac {
          type ieee:mac-address;
          mandatory true;
          description
            "Specifies the destination_address parameter to use in the
EISS request primitive for output packets sent to lower
layers by the Active Destination MAC and VLAN Stream
identification function, and the destination_address that
identifies an input packet in an EISS indication primitive
to the Active Destination MAC and VLAN Stream
identification function.";
          reference
            "Clause 9.1.4.1 of IEEE Std 802.1CB-2017";

        }

        leaf tagged {
          type vlan-tag-identification-type;
          mandatory true;
          description
            "An enumerated value indicating whether a packet in an EISS
indication or request primitive between the Active
Destination MAC and VLAN Stream identification function and
the lower layers is to have a VLAN tag. This variable is
not used in an FRER C-component. See 8.4.";
          reference
            "Clause 9.1.4.2 of IEEE Std 802.1CB-2017";

        }

        leaf vlan {
          type vlan-identifier-type;
          mandatory true;
          description
            "Specifies the vlan_identifier parameter to use in the EISS
request primitive for output packets sent to lower layers
by the Active Destination MAC and VLAN Stream
identification function, and the vlan_identifier that
identifies an input packet in an EISS indication primitive
to the Active Destination MAC and VLAN Stream
identification function. A value of 0 indicates that the
vlan_identifier parameter is ignored on EISS indication
primitives.";
          reference
            "Clause 9.1.4.3 of IEEE Std 802.1CB-2017";

        }

        leaf priority {
          type dot1qtypes:priority-type;
          mandatory true;
          description
            "Specifies the priority parameter to use in the EISS request
primitive for output packets sent to lower layers by the
Active Destination MAC and VLAN Stream identification
function for all packets in a particular Stream.";
          reference
            "Clause 9.1.4.4 of IEEE Std 802.1CB-2017";

        }
      }  // container down

      container up {
        description
          "Container for all parameters which are offered to higher
layers.";
        leaf destination-mac {
          type ieee:mac-address;
          mandatory true;
          description
            "Specifies the destination_address parameter to use in the
EISS indication primitive for input packets offered to upper
layers by the Active Destination MAC and VLAN Stream
identification layer. This address replaces the address that
was used to identify the packet (tsnCpeDmacVlanDownDestMac,
9.1.4.1).";
          reference
            "Clause 9.1.4.5 of IEEE Std 802.1CB-2017";

        }

        leaf tagged {
          type vlan-tag-identification-type;
          mandatory true;
          description
            "An enumerated value indicating whether a packet in an EISS
indication or request primitive between the Active
Destination MAC and VLAN Stream identification function and
the upper layers is to have a VLAN
tag. This variable is used only by an end system and not by
a relay system. See 8.4.";
          reference
            "Clause 9.1.4.6 of IEEE Std 802.1CB-2017";

        }

        leaf vlan {
          type vlan-identifier-type;
          mandatory true;
          description
            "Specifies the vlan_identifier parameter to use in the EISS
indication primitive for packets offered to upper layers, or
the VLAN ID field for an IEEE 802.1Q tag in an
ISS mac_service_data_unit. This address replaces the VLAN ID
that was used to identify the packet (tsnCpeDmacVlanDownVlan,
9.1.4.3).";
          reference
            "Clause 9.1.4.7 of IEEE Std 802.1CB-2017";

        }

        leaf priority {
          type dot1qtypes:priority-type;
          mandatory true;
          description
            "Specifies the priority parameter to use in the EISS
indication primitive for packets offered to upper layers.";
          reference
            "Clause 9.1.4.8 of IEEE Std 802.1CB-2017";

        }
      }  // container up
    }  // grouping dmac-vlan-stream-identification-group

    grouping ip-stream-identification-group {
      description
        "When instantiating an instance of the IP Stream identification
function (6.7), the parameters in the following subclauses
replace the tsnStreamIdParameters managed object (9.1.1.7).";
      reference
        "Clause 9.1.5 of IEEE Std 802.1CB-2017";

      leaf destination-mac {
        type ieee:mac-address;
        mandatory true;
        description
          "Specifies the destination_address parameter that identifies a
packet in an EISS indication primitive.";
        reference
          "Clause 9.1.5.1 of IEEE Std 802.1CB-2017";

      }

      leaf tagged {
        type vlan-tag-identification-type;
        mandatory true;
        description
          "An enumerated value indicating whether a packet in an EISS
indication or request primitive to the IP Stream identification
function is to have a VLAN tag.";
        reference
          "Clause 9.1.5.2 of IEEE Std 802.1CB-2017";

      }

      leaf vlan {
        type vlan-identifier-type;
        mandatory true;
        description
          "Specifies the vlan_identifier parameter that identifies a
packet in an EISS indication primitive. A value of 0 indicates
that the frame is not to have a VLAN tag.";
        reference
          "Clause 9.1.5.3 of IEEE Std 802.1CB-2017";

      }

      leaf ip-source {
        type inet:ip-address;
        mandatory true;
        description
          "Specifies the IPv4 (RFC 791) or IPv6 (RFC 2460) source address
parameter that must be matched to identify packets coming up
from lower layers. An address of all 0 indicates that the
IP  source address is to be ignored on packets received from
lower layers.";
        reference
          "Clause 9.1.5.4 of IEEE Std 802.1CB-2017";

      }

      leaf ip-destination {
        type inet:ip-address;
        mandatory true;
        description
          "Specifies the IPv4 (RFC 791) or IPv6 (RFC 2460) destination
address parameter that must be matched to identify packets
coming up from lower layers.";
        reference
          "Clause 9.1.5.5 of IEEE Std 802.1CB-2017";

      }

      leaf dscp {
        type inet:dscp;
        mandatory true;
        description
          "Specifies the IPv4 (RFC 791) or IPv6 (RFC 2460) differentiated
services codepoint (DSCP, RFC 2474) that must be matched to
identify packets coming up from the lower layers. A value of
64 decimal indicates that the DSCP is to be ignored on packets
received from lower layers.";
        reference
          "Clause 9.1.5.6 of IEEE Std 802.1CB-2017";

      }

      leaf next-protocol {
        type enumeration {
          enum "none" {
            value 0;
            description
              "No protocol is specified";
          }
          enum "udp" {
            value 1;
            description
              "UDP is specified as the next protocol.";
            reference
              "RFC 768";

          }
          enum "tcp" {
            value 2;
            description
              "TCP is specified as the next protocol.";
            reference
              "RFC 793";

          }
          enum "sctp" {
            value 3;
            description
              "SCTP is specified as the next protocol.";
            reference
              "RFC 4960";

          }
        }
        mandatory true;
        description
          "Specifies the IP next protocol parameter that must be matched
to identify packets coming up from lower layers. The value of
this parameter must specify either none, UDP (RFC 768),
TCP (RFC 793), or SCTP (RFC 4960). If “none,” then the
tsnCpeIpIdSourcePort (9.1.5.8) and tsnCpeIpIdDestinationPort
(9.1.5.9) managed objects are not used.";
        reference
          "Clause 9.1.5.7 of IEEE Std 802.1CB-2017";

      }

      leaf source-port {
        type inet:port-number;
        mandatory true;
        description
          "Specifies the TCP or UDP Source Port parameter that must be
matched to identify packets coming up from lower layers. A
value of 0 indicates that the Source Port number of the packet
is to be ignored on packets received from lower layers.";
        reference
          "Clause 9.1.5.8 of IEEE Std 802.1CB-2017";

      }

      leaf destination-port {
        type inet:port-number;
        mandatory true;
        description
          "Specifies the TCP or UDP Destination Port parameter that must
be matched to identify packets coming up from lower layers.
A value of 0 indicates that the Destination Port number of the
packet is to be ignored on packets received from
lower layers.";
        reference
          "Clause 9.1.5.9 of IEEE Std 802.1CB-2017";

      }
    }  // grouping ip-stream-identification-group
  }  // module ieee802-dot1cb-stream-identification-types